[Mono-devel-list] Nant / OJB.NET / Maverick.NET / NVelocity

Ian MacLean ianm at ActiveState.com
Sun Oct 5 01:31:38 EDT 2003

Ben Maurer wrote:

>>Sounds like it would be better to fix the regex engine. If thats not 
>>feasible then we're definately open to mono specific workaround if this 
>>is making it unusable.
>Our regex engine is slow, we admit it. It does not compile, it probably
>has bugs. However, there are much, much important parts of the framework
>to work on.
sure whatever, as I said I don't have a problem with working around it.

>When I looked at this with Todd, he said that the problem was the
>regex's in your globbing code. It is probably best to replace that with
>good old for loops and conditionals.
which globbing code ? Patches welcome as always.

>>I don't think CodeDOM would help - even if you could you would only find 
>>the runtime that you are running NAnt against which might not be the 
>>same as the framework you are targetting.
>>ie NAnt could be running against a 1.0 runtime but compiling an app 
>>using the 1.1 version of csc. What part of it is a pain in the ass to 
>>deal with ? You set the defaultframework to the one you're using and 
>>you're done. If you have any suggestiong for making it simpler we'd like 
>>to hear them.
>Ok, so in order to make a script that compiles vs both 1.0 and 1.1 I
>have it alter the config file... thats just the same as altering the
>runtime version... Honestly, it will be a bigger problem for people on
>linux to fool around with their config path than it will be for a
>windows user who wants to compile with both versions (why would i want
>that anyways?).
No that is not correct. You can use the following inside a build file:

<property name="nant.settings.currentframework" value="net-1.0" />
<!-- do some compilation against 1.0 -->

<property name="nant.settings.currentframework" value="net-1.1" />
<!-- do some compilation against 1.1 -->

you can also use the -k:net-1.0 commandline option to specify a default  
framework for that build run. You only need to set it in the config file 
once to somthing reasonable for your installation. This is analagous to 
Ant using the JAVA_HOME environment variable to find a jdk.

If you don't ever need to target multiple frameworks then its a 
non-issue - just make sure the default is correct at install time and 
you'll never have to worry about it again. However if you do need the 
ability - its there.

>>It would be a great help if you could identify where the slow down is 
>>occurring ( just on mono right ? ) and submit a bug report at 
>>This is the first I've heard of it. Its hard for us to fix bugs that no 
>>one has told us about.
>Just pretend that there is a Thread.Sleep (100) call on every regex
>evaulation. Wherever it is sleeping alot is the slow down.
So basically "don't use regex's" right ?


More information about the Mono-devel-list mailing list