Re: [Scons-dev] [scons-dev] fix for 2903 breaks LIBPATH.py test..

2013-10-27 Thread alexandre . feblot
Yes,
that was my initial conclusion. This commit changed:

ShLibAction = SCons.Defaults.ShLinkAction(target, source, envlink)
to:

def VersionedSharedLibrary(target = None, source= None, env=None):
...
result = SCons.Defaults.ShLinkAction(target, source, envlink)
...
return result
ShLibAction = SCons.Action.Action(VersionedSharedLibrary, None)

--
SCons.Defaults.ShLinkAction is a string action, the string being SHLINKCOM, and 
this is why I re-added it with:
ShLibAction = SCons.Action.Action(VersionedSharedLibrary, None, 
varlist=['SHLINKCOM'])

So, except strange side effects that I could not imagine because I'm a real 
Scons code newbie, I would have thought that the final behavior is the same 
than the one before the versionned libraries addition.

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [scons-dev] fix for 2903 breaks LIBPATH.py test..

2013-10-27 Thread Gary Oberbrunner
I just pushed a fix which I think is now correct.  Alexandre's original fix
was the right way to do it, because we do want to depend on all the link
args.  But the varlist code itself was broken, and wasn't ignoring $(...$)
parts of variables, which broke the LINKPATH test.  I fixed the varlist
code to work the same way regular command actions do and now all the tests
pass.  I updated the test as well.


On Sun, Oct 27, 2013 at 4:29 AM, alexandre.feb...@gmail.com wrote:

 Yes,
 that was my initial conclusion. This commit changed:

 ShLibAction = SCons.Defaults.ShLinkAction(target, source, envlink)
 to:

 def VersionedSharedLibrary(target = None, source= None, env=None):
 ...
 result = SCons.Defaults.ShLinkAction(target, source, envlink)
 ...
 return result
 ShLibAction = SCons.Action.Action(VersionedSharedLibrary, None)

 --
 SCons.Defaults.ShLinkAction is a string action, the string being
 SHLINKCOM, and this is why I re-added it with:
 ShLibAction = SCons.Action.Action(VersionedSharedLibrary, None,
 varlist=['SHLINKCOM'])

 So, except strange side effects that I could not imagine because I'm a
 real Scons code newbie, I would have thought that the final behavior is the
 same than the one before the versionned libraries addition.

 ___
 Scons-dev mailing list
 Scons-dev@scons.org
 http://two.pairlist.net/mailman/listinfo/scons-dev




-- 
Gary
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [scons-dev] fix for 2903 breaks LIBPATH.py test..

2013-10-26 Thread Gary Oberbrunner
So this is a little more interesting than I'd thought.  I can fix the
current issue (spurious rebuilds when LIBPATH changes) by using LIBS in the
varlist rather than SHLINKCOM, which initially makes sense.  But as I added
a test for this, along the way thought I'd make sure that changing other
random linker options does cause a rebuild as it's supposed to; it doesn't!
 It didn't in 2.3.0 either.  But 2.2.0 is OK in that way, so I bisected
that: that problem was introduced in abded0675444, which added versioned
shared libs.

I'll keep looking into this and plan to submit a fix for both bugs.  With
tests.

-- Gary


On Fri, Oct 25, 2013 at 8:24 AM, Gary Oberbrunner ga...@oberbrunner.comwrote:

 [this was sent to the old obsolete SCons dev list, btw.  Forwarding to the
 new one.]



 On Thu, Oct 24, 2013 at 11:22 PM, William Deegan 
 b...@baddogconsulting.com wrote:

 Gary,

 I see this merge:

 https://bitbucket.org/scons/scons/pull-request/86/fix-http-sconstigrisorg-issues/diff

 I did a hg bisect on failure of test/Libs/LIBPATH.py and it tracks down
 to that checkin.

 The failing test in LIBPATH changes the LIBPATH and expects that no
 rebuild will be caused by it.
 Prior build was same library with same library sources.
 So it shouldn't have been rebuilt.

 I think:
 a) no new test was added with the merge.
 b) Likely using SHLINKCOM was too broad to resolve the problem in
 question, and is thus causing this rebuild.

 Or am I misunderstanding the issue?


 No, you're exactly right.  I noticed the same thing you did; SHLINKCOM is
 too broad.  I agree that's the commit that causes the test failure. I've
 got some code on my machine at home that does better, but it still not
 perfect.  (I don't have full access here but I thought I did add a test
 after the merge?)

 --
 Gary




-- 
Gary
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [scons-dev] fix for 2903 breaks LIBPATH.py test..

2013-10-25 Thread Gary Oberbrunner
[this was sent to the old obsolete SCons dev list, btw.  Forwarding to the
new one.]



On Thu, Oct 24, 2013 at 11:22 PM, William Deegan
b...@baddogconsulting.comwrote:

 Gary,

 I see this merge:

 https://bitbucket.org/scons/scons/pull-request/86/fix-http-sconstigrisorg-issues/diff

 I did a hg bisect on failure of test/Libs/LIBPATH.py and it tracks down to
 that checkin.

 The failing test in LIBPATH changes the LIBPATH and expects that no
 rebuild will be caused by it.
 Prior build was same library with same library sources.
 So it shouldn't have been rebuilt.

 I think:
 a) no new test was added with the merge.
 b) Likely using SHLINKCOM was too broad to resolve the problem in
 question, and is thus causing this rebuild.

 Or am I misunderstanding the issue?


No, you're exactly right.  I noticed the same thing you did; SHLINKCOM is
too broad.  I agree that's the commit that causes the test failure. I've
got some code on my machine at home that does better, but it still not
perfect.  (I don't have full access here but I thought I did add a test
after the merge?)

-- 
Gary
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev