tests/test-demandimport.py.out
author Martin von Zweigbergk <martinvonz@google.com>
Fri, 24 Aug 2018 08:45:18 -0700
changeset 39318 9f097214fbf3
parent 38008 1d0610fdd63b
permissions -rw-r--r--
index: embed nodetree in index object to avoid reference cycle Since the index has a reference to a nodetree and the nodetree has a reference back to the index, there is a reference cycle, so the index (and its nodetree) can never be freed. This patch fixes that by making "nodetree" a plan C struct that the index can embed, and also introduces a new "nodetreeObject" that is a Python type wrapping the nodetree struct. Thanks to Yuya for noticing this and for suggesting the solution. All tests passed on the first attempt once it compiled (I guess C is like Haskell in this regard?). Differential Revision: https://phab.mercurial-scm.org/D4372

node = <module 'mercurial.node' from '?'>
errorproxy = <unloaded module 'error'>
errorproxy.__doc__ = 'Mercurial exceptions. This ...'
errorproxy.__name__ = 'mercurial.error'
errorproxy.__dict__['__name__'] = 'mercurial.error'
errorproxy = <proxied module 'error'>
os = <unloaded module 'os'>
os.system = <built-in function system>
os = <module 'os' from '?'>
procutil = <unloaded module 'procutil'>
procutil.system = <function system at 0x?>
procutil = <module 'mercurial.utils.procutil' from '?'>
procutil.system = <function system at 0x?>
hgweb = <unloaded module 'hgweb'>
hgweb_mod = <unloaded module 'hgweb_mod'>
hgweb = <module 'mercurial.hgweb' from '?'>
fred = <unloaded module 're'>
remod = <unloaded module 're'>
re = <unloaded module 'sys'>
fred = <unloaded module 're'>
fred.sub = <function sub at 0x?>
fred = <proxied module 're'>
remod = <module 're' from '?'>
re = <unloaded module 'sys'>
re.stderr = <open file '<whatever>', mode 'w' at 0x?>
re = <proxied module 'sys'>
contextlib = <unloaded module 'contextlib'>
contextlib.unknownattr = ImportError: cannot import name unknownattr
__import__('contextlib', ..., ['unknownattr']) = <module 'contextlib' from '?'>
hasattr(contextlibimp, 'unknownattr') = False