[Scons-users] Scons none-deterministic behavior for incremental build

Hua Yanghao huayanghao at gmail.com
Wed Dec 5 08:30:37 EST 2018


> I guess that's an implementation detail... cpython 3 doing something
> different than 2.7. there has never been any promise: "A set object is
> an unordered collection of distinct hashable objects."

Indeed. But it is so easy to overlook it.
I still think if now dict() starts to track ordering, so should set() too.
Basically all iterables in python should track orders when they are
created and when new items are added.
But I guess this should be discussed in python community instead.

Scons runs our production SW build since quite some time and I am
still very impressed by its power and flexibility.
I think there is room for people who doesn't want too much flexibility
to have something less flexible but more easy to get right, and yet
provides all the old age makefile based features. I am going through
company internal process to have the build system (plus the core
firmware infrastructure) open sourced as soon as possible ... but it
is going to take a while.

Our build system build on top of scons merely using python as the
software configuration system, and from a single configuration factory
(e.g. a single python class) we are able to create dozens of SW
builds, each are different (across many different CPU architectures)
yet the common part is shared, and the final customized image is
created out of the same source code tree. (exactly like how Linux
builds with kbuild but now everything, the build system and the
configuration system, are all in the same language - python, there is
no need for another domain-specific-language to be invented for
build/config system).


More information about the Scons-users mailing list