[Scons-dev] SCons-like build system

Constantine voidmb at gmail.com
Sat Feb 14 14:50:01 EST 2015


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.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20150214/eefb8543/attachment.html>


More information about the Scons-dev mailing list