Jason, The code I have is still a work in progress. Putting it in parts first doesn't make sense to me as when it's ready I'll be dropping it into SCons itself, though likely as a switchable alternative initially.
I'll be back to working on it in about a month I expect. Maybe sooner. -Bill On Mon, Feb 18, 2019 at 11:18 AM Jason Kenny <[email protected]> wrote: > Hi Bill, > > I know in the past we have talked about various things to do to fix up > Scons. One of the items was the subst engine we have. Currently for me the > issue with Parts is that I use the Subst engine to pass data around between > different components in a automated way. This works well minus two issues: > > 1) it can take time. However I have various tweaks in the object I pass to > the subst call to help cache a number of cases. > 2) stack depth. This is the major issue for me at the moment. > > The issue with with 2) is seen with -j based builds which can lead to seg > faults. Depending on the build, it is common to have some depth of 10-20+ > components. This can lead to a stack of depth per thread of 250 to 300+. > When doing a -j based build this blows the stack in a bad way. > > one can easily get stack with this pattern: > > ... > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 543, in substitute > return self.expand(args, lvars) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 495, in expand > return list(map(func, s)) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 494, in func > return conv(substitute(l, lvars)) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 526, in substitute > result = _dollar_exps.sub(sub_match, args) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 525, in sub_match > return self.conv(self.expand(match.group(1), lvars)) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 491, in expand > return self.substitute(s, lv) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 543, in substitute > return self.expand(args, lvars) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 509, in expand > return self.substitute(s, lvars) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 543, in substitute > return self.expand(args, lvars) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 495, in expand > return list(map(func, s)) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 494, in func > return conv(substitute(l, lvars)) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 543, in substitute > return self.expand(args, lvars) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 495, in expand > return list(map(func, s)) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 494, in func > return conv(substitute(l, lvars)) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 526, in substitute > result = _dollar_exps.sub(sub_match, args) > File "/build-env/lib/python3.6/site-packages/scons/SCons/Subst.py", line > 525, in sub_match > ... > > I had mentioned in the past I want to not use the subst call as much, but > change this with something else is non trivial at the moment. I do recall > you had done some work on this. I am looking at trying to fix the subst > logic in Scons . What I propose to do it to override the subst module in > SCons with Parts. The goal would to be to show a better version we could > the move in to Scons with minimum effort as well as allow me to move > forward with out having to block on a new SCons drop. > > I believe you had done work on this already. I was hoping I could try to > start with that with hope this can be used to reduce the recursion issues > in SCons. This seemed to be better than start from scratch. > > Oh course if you have a better idea I am > > Jason > > > _______________________________________________ > Scons-dev mailing list > [email protected] > https://pairlist2.pair.net/mailman/listinfo/scons-dev >
_______________________________________________ Scons-dev mailing list [email protected] https://pairlist2.pair.net/mailman/listinfo/scons-dev
