[Scons-dev] scons daemon

Schleimer, Ben bensch128 at yahoo.com
Mon Dec 28 18:49:48 EST 2015


Hi Dirk,

>for which targets exactly would you build the list of source files? All of them? Regard, that "." is not always the default 
>target...so you'd have to parse the SConstructs/SConscripts first anyway.
>In it's current form, the Taskmaster never builds the full DAG beforehand (a common misconception among people that suggest a 
>seemingly simple performance "hack", like yours ;) ), but simply expands the list of given Targets until all build prerequisites are 
>met. This allows you to shorten compile/update times in large builds by specifying a single library/program on the command-line 

>only. How would your daemon handle this?

I am taking Bill Deegan's advice and starting by modifying Iteractive.py. I think that the standard behavior is great, I just want to tweak it a bit to avoid the heaviest scons-induced overhead of the code-run-debug cycle, the building of the DAG.


My project has 5 SConscript files and 2 SConstruct files and just by using:
$ scons.py -j4 --interactive
scons: Reading SConscript files ...
Building Debug-x86-none/libholo.so in Debug configuration
Building Debug-x86-none/HoloProcess in Debug configuration
scons: done reading SConscript files.
scons>>> build


it drops the incremental build time by 0.2 secs.

I'm very curious about what kind of time savings occur on much larger projects. I submitted a pull request on bitbucket to automate the build inside interactive mode:
https://bitbucket.org/scons/scons/pull-requests/287/added-usr1-signal-handling-to-interactive/diff

Next, inside interactive mode, I'm planning on pulling all of the Nodes and watching them and then trying to do background compiles whenever a file is changed. 

Sincerely
Ben


More information about the Scons-dev mailing list