Missing clockwork

Fred Wright fw at fwright.net
Thu Dec 21 09:34:11 UTC 2023


On Mon, 18 Dec 2023, Hal Murray via devel wrote:
> James said:
>> It sounds like a race condition in our wscript files or waf. How willing are
>> you to sink time into this, I think it's a losing proposition.
>
> I've got a --jobs=1 in my script.  That was added to make sure the printout
> was easy to read when there were compiler errors.

It's usually best not to do that unconditionally, since it makes things a 
lot slower.  Better to use the usual parallelism initially, then repeat 
with "-j1" if it's determined to be needed.  For example, here the 
parallel build from "git clean -dxf" takes ~12.1 seconds, while -j1 makes 
it take ~47.7 seconds.

Note that -j1 doesn't guarantee correctness; it only guarantees 
consistency.  The typical issue with problems of this form is missing 
dependencies.  With -j1 there's a consistent build order, which may or may 
not be accidentally correct if dependencies are missing.  With the default
parallel builds, the build order becomes variable, but should still 
respect declared dependencies.

If you build with -j1 and -v, you may be able to see what's expecting 
clockwork to exist without depending on it.

It's possible to use pdb in waf if you're sufficiently masochistic. :-)

Fred Wright


More information about the devel mailing list