[Scons-dev] scons daemon

Dirk Bächle tshortik at gmx.de
Sun Dec 27 09:02:48 EST 2015


Hi,

On 25.12.2015 00:57, Schleimer, Ben via Scons-dev wrote:
> Hi,
>     I was wondering if anyone else was interested in such a feature.
> I found on google that it was discussed before (gmane.org seems to be down right now) but that nothing was actually implemented.
>
> The reason to have a build daemon is to keep the dependency tree in memory for rebuilds and to try to keep the builds up to date as
> quickly as possible. Build systems like gradle and bazel seem to rely on a daemon (and VS C# and Eclipse uses background compiles
> extensively)
>
> My tentative thoughts about how to design this are as follows:
> 1) Build a wrapper py script that peers with scons.py to make it a bit simpler at first
> 2) when the daemon starts, it builds the dependency tree and extracts a list of all source files. It uses watchdog (or some other
> inotify-like library) to watch for changes in all of the source files.

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?
To me it looks like a massive amount of communication between your daemon and the SCons core would be required...which probably 
drags down performance by a high percentage.

Best regards,

Dirk



More information about the Scons-dev mailing list