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

Ben Maurer bmaurer at users.sourceforge.net
Sun Oct 5 00:51:14 EDT 2003

On Sun, 2003-10-05 at 00:40, Ian MacLean wrote:
> Hi Todd,
> >1) The compiles take *too* long. The fault seems to lie in Mono's Regex
> >engine, however, there has to be a way to use something different on
> >Mono to prevent something like: on MS.NET a full build of my app with
> >NAnt takes 10 seconds. On Mono, the same build with the same source
> >takes between 600 and 800 seconds. It makes linux basically an unusable
> >development platform.
> >
> 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.

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.

> >3) What is the deal with the framework section of the NAnt config file?
> >Is it not just possible to use CodeDOM or some other mechanism to
> >find/use csc or similar? This section is a real pain in the ass to deal
> >with.
> >
> >  
> >
> 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?).

> >So, somewhat in conclusion, although NAnt works on linux, I do not
> >recommend using it unless you are ready to spend a lot of time watching
> >it compile and a fair amount of time making it work.
> >
> 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 
> http://sourceforge.net/tracker/?group_id=31650&atid=402868.
> 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.

More information about the Mono-devel-list mailing list