Thank you for the constructive comments.

The much higher times for Aqualid in the parallel build (-j 4) come from the processing order, which queues all library archiving to the end of the build. This sent my machine thrashing/swapping, even though it has 8GB RAM...SCons is better balanced in this case, it creates each lib as soon as all its sources are compiled.
I changed TaskManager to use priority queues. Now more heavy tasks (like archiving/linking) are executed sooner than lightweight tasks.


You should definitely have a look at this. It seems to get worse when the number of total files for the build increases.
I fixed this issue. Clean time of 10k files reduced from 10 minutes to 15 seconds on my system.

By the way, do you support custom commands and generated files in Aqualid? Like, let's say:

 - "foo.c" is compiled to the "foo" executable
 - "foo" is then used to create the header "bar.h"
 - "bar.h" is an implicit dependency of "bar.c"
 - "bar.c" is compiled to "bar"
Yes. I added a new example: https://github.com/aqualid/aqualid/blob/master/examples/cpp_generator/make.aql

It would also be interesting to see how well Aqualid is doing in the build system shootout:

  https://github.com/ndmitchell/build-shootout

by Neil Mitchell. Have a look at it, if you find the time.
Thank you for the interesting site. There are some build systems I never heard about.

I added examples for Aqualid: https://github.com/aqualid/aqualid/tree/master/examples/build-shoutout But I have not pulled the changes to the master branch of build-shootout yet.

Results:

|$ runhaskell Main aql||
||## basic aql ... Success||
||## parallel aql ... Success||
||## include aql ... Success||
||## wildcard aql ... Success||
||## spaces aql ... Success||
||## monad1 aql ... Success||
||## monad2 aql ... Success||
||## monad3 aql ... Success||
||## unchanged aql ... Success||
||## multiple aql ... Success||
||## system1 aql ... Success||
||## system2 aql ... Success||
||## digest aql ... Success||
||## nofileout aql ... Success

It's interesting that SCons and Aqualid examples look more or less similar.
SCons doesn't support "nofileout" example.
But implementation of "monad3" example for Aqualid is not 100% fair.
I will try to fix this example later.

|||
Thank you.
Best regards,
Constantine.



_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to