[Scons-dev] Parts 0.10.2 is out

Kenny, Jason L jason.l.kenny at intel.com
Fri Dec 7 18:40:01 EST 2012



Hi guys,

I have release Parts 0.10.2.

You can see the details on the parts sites.
http://parts.tigris.org/

However I wanted to share a few notes that I thought might be useful.

This drop I was able to improve the logic for how parts deals with speeding up the build. The end result I have so far is that given a few product we build at work ( ie over a 100K nodes ) the time for SCons to tell you everything is up to date after you built it looks like this:

Raw SCons load or parts 0.9 ( in Parts 0.10 this would be not having any cache data, or using --load-logic=all switch) ~600 sec
Parts 0.10.0 ~120 second
Parts 0.10.2 ~14 seconds

I should note that give certain checks I believe we can do to check if the data files defining the context of the build is unchanged. We could store in SCons the actions command as string ( minus the python based actions) and run then without loading and build files. This would be very fast compared to what we have today and given common development work, would be ideal as most of the time you are changing source files, building, testing/debugging, repeat.

Known bug in the drop that I did not address yet with the load logic are:
I did not finish the logic to correctly check the **KW information that can be passed to a Part() call for changes
Did not finish logic to allow Parts Pattern() and Scons Glob() call to be correctly checked for new or missing files. This should prompt a reload as it would require getting a different set of nodes to the SCons tree to have processed and built
There is a bug with scons 2.2 as there is an exception being thrown on builders being copied. I find this annoying and not sure what it really fixes. I have not looked if there is a bug in the way I clone and cache environment in Parts, of it the code is just broken in SCons.

The code for symlinks I talked about is in this drop. I believe there might still be a bug to work out on it ( at least the windows side I think could be cleaned up a bit) However for the components we have here that needed it, it has been a wonderful.

I going on vacations for a month, I hope to have time to look at the SCons subst engine as this code was a major pain for me as it breaks in unwanted ways which are at time difficult to correct in Parts. A simple example:

Env['foo']=['a','b','c']
Env.append(CPPDEFINES=['$FOO'])

Results in :
"/Da b c"
not
/Da /Db /Dc

I hope to propose an improved version of this code that can be added to SCons as is.

Let me know if you have any thoughts

Jason
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://two.pairlist.net/pipermail/scons-dev/attachments/20121207/187f161c/attachment.html>


More information about the Scons-dev mailing list