[Scons-users] Question about binfo

Tom Tanner (BLOOMBERG/ LONDON) ttanner2 at bloomberg.net
Thu Feb 25 10:55:45 EST 2016


In the Node/__init__.py, in the clear() method, it says this:

        # The del_binfo() call here isn't necessary for normal execution,
        # but is for interactive mode, where we might rebuild the same
        # target and need to start from scratch.
        self.del_binfo()

This is causing me some interesting problems. I'm trying to stash the *ENTIRE* command line used to build an object (partly for rerunning commands, partly for getting better details of actual command line changes rather than the rather brief summary produced currently).

Actually calculating the command line seems to be somewhat expensive (you would not believe the length of one of ours) so I wanted to only calculate it on an as needed basis and then stick it in the nodes binfo so it gets saved the the .scons.dblite file.

But that line above stops this working. And I'm not sure I see the point of it. If 'interactive' should repeatedly build an object even if nothing has changed, wouldn't it be better to delete the object instead?

For reference - expensive is - if I make this happen as needed, it saves about 2 minutes in a 12 minute build.

Incidentally, I was going to put the stashing of the command line in prepare, but it seems that 'prepare' is being called for every node in the tree, which means I need to put the generator into 'build' or 'built' and 'explain', probably the latter as I really can't tell offhand how thread safe the code is.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20160225/703abe6c/attachment.html>


More information about the Scons-users mailing list