[Scons-dev] please try latest default branch

Dirk Bächle tshortik at gmx.de
Tue Feb 11 18:29:42 EST 2014


Hi Gary,

On 02.02.2014 23:13, Gary Oberbrunner wrote:

> HA -- got a small repro testcase!

>

> [...]

>

> Run that twice as "scons all-defuns.obj". The second time _shouldn't_

> rebuild anything, but it will re-run the Copy command. SCons 2.3.0

> correctly doesn't do anything the second time.

>


looks like I found a solution. The problem is that "changed()" gets
called in different contexts: not only within
make_ready_current/release_target_info after building a target, but also
during scanning with a call stack like this:

changed [FS.py:3052]
is_up_to_date [FS.py:3121]
current_check [__init__.py:309]
__call__ [__init__.py:203]
get_found_includes [FS.py:2684]
get_implicit_deps [__init__.py:586]
scan [Executor.py:474]
scan_sources [Executor.py:455]

Please find a patch attached and try it on your large build if you find
the time. I've added an "allowcache" argument to the "changed()" method,
that gets only set in the release_target_info path.
This let's your simple testcase pass on my side...

If you can confirm that this brings your build back to working properly,
I'd create a pull request for this fix.

Regards,

Dirk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: defuns_rebuild.patch
Type: text/x-patch
Size: 1759 bytes
Desc: not available
Url : <http://two.pairlist.net/pipermail/scons-dev/attachments/20140212/cfc0e28e/attachment-0001.bin>


More information about the Scons-dev mailing list