Hi Dirk,

About those new interfaces for accessing node attributes that may get 
initialized lazily, do I understand here the consequences properly?

- Using directly a_node.path or a_node.abspath *must* be replaced in all 
SConstructs/SConscripts by the new interfaces if we wan’t them to keep working 
properly
- This lets us with 2 solutions:
   1- Do these changes in all our product maintenance branches, and even each 
time we need to checkout again an old tag we want to compile again.
   2- Keep an old Scons 2.3 to build our old code, and change our build 
infrastructure to be able to have different SCons paths, so we can chose the 
proper one.



Kind Regards


> Le 28 févr. 2015 à 13:03, Dirk Bächle <tshor...@gmx.de> a écrit :
> 
> Appendix: Short list of changes to the Node* classes
> ====================================================
> 
> - Introduction of decorators for memoizer debugging/counting (we can't
> use metaclasses anymore).
> - Adding interface for accessing node attributes that may get
> initialized lazily:
>     t.abspath -> t.get_abspath()
>     t.labspath -> t.get_labspath()
>     t.tpath -> t.get_tpath()
>     t.path_elements -> t.get_path_elements()
>     t.path -> t.get_internal_path()
> 
> - Methods like t.exists(), t.rexists() and t.get_contents() can't be
> re-assigned directly anymore. They'll be realized via function maps
> internally ( {int : func} ).
> 
> - NodeInfo and BuildInfo will also get switched to __slots__, and get a
> new internal version number (1.0 -> 2.0). This means that after the
> switch *all* targets are regarded to be out-of-date on the first build.

_______________________________________________
Scons-dev mailing list
Scons-dev@scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to