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
_______________________________________________
Scons-dev mailing list
[email protected]
http://two.pairlist.net/mailman/listinfo/scons-dev

Reply via email to