[Scons-dev] A new architecture...

anatoly techtonik techtonik at gmail.com
Mon Dec 28 09:24:00 EST 2015


On Sun, Dec 27, 2015 at 3:58 PM, Dirk Bächle <tshortik at gmx.de> wrote:
>
> the discussions about new features in SCons during the last weeks, have led
> me to start working on some architectural changes
> for SCons. They aim at refactoring the module/package structure, such that
> it's possible to better support customized
>
> - Taskmasters
> - File signature calculation (currently fixed to MD5 hash sums)
> - Node factories (and connected with that custom Nodes)
> - Build and Node Info (and connected with that custom signature DBs, like a
> JSON implementation for easier debugging)

I am afraid I don't understand architectures without a visual representation.
In ideal world d3.js and Inkscape skills are taught in school, but maybe we
could at least try?

"refactoring module/package structure" is not a useful activity for me without
rationale, and "to better support" is not a good one.

1. problem
2. solution
3. action

Right now it is:

1. problem: some not good enough support
2. solution: refactoring and moving files
3. action: start working

Sorry for the harsh tome. Just want to be more constructive and extract a little
bit more value for those scarce bits of time that we here have.

> .
> Please note that my pull request doesn't directly implement and provide
> these functionalities (well, some of it), but simply tries to lay out the
> foundation for them. There is definitely more work ahead...

Where is the link to PR?

> Once we have this in place, it should be much easier to support e.g.
> additional Taskmasters like an
>
>   EspeciallyParanoidTaskmaster
>
> (see Tom Tanner's proposal at
> https://pairlist4.pair.net/pipermail/scons-users/2015-December/004320.html
> and following), or a
>
>   DebuggingTaskmaster

Where is it?
https://www.google.com/search?q=DebuggingTaskmaster

Looks like Bitbucket doesn't work for us.

> where you get a lot of additional info about the current "machine state",
> and can walk through a complete build in single steps.

What are the classes / objects that store the build state?

1. class FS (filesystem tree that is known to SCons)

Q. How to dump FS state?

2. class Node (a pointer to a Graph of build nodes)

Q. How to dump graph of build nodes?
A. Find one node, and fetch it's child, parent and discover the whole graph
this way.
Q. How?

3. Any other objects?

> I don't know when this PR will be ready, but just wanted to inform you all
> that someone is working on this somewhere. :)
> Your comments and suggestions are welcome.

I miss the "EventBuffer" for SCons to be able to review any architecture
refactoring. See Twisted logging to get the idea:

https://twistedmatrix.com/documents/15.2.1/core/howto/logger.html

A buffer with about 1000 events that could be dumped at any time during
SCons processing. It should at least include those type of events:

 - SCons state initialization phases
 - SCons state processing phase
 - Target building phase

It would be better to share your prototypes in small chunks and as
early as possible.
-- 
anatoly t.


More information about the Scons-dev mailing list