#14187: Check that lazy imports are not resolved during startup
--------------------------------+-------------------------------------------
Reporter: vbraun | Owner: tbd
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.8
Component: performance | Resolution:
Keywords: | Work issues:
Report Upstream: N/A | Reviewers: Nicolas M. ThiƩry
Authors: Volker Braun | Merged in:
Dependencies: | Stopgaps:
--------------------------------+-------------------------------------------
Comment (by nbruin):
See [http://bugs.python.org/issue793822 this python bug]. The following
code segfaults:
{{{
from gc import get_referrers
def iter():
tag = object()
yield tag # 'tag' gets stored in the result tuple
lst = [x for x in get_referrers(tag)
if isinstance(x, tuple)]
t = lst[0] # this *is* the result tuple
print t[3] # full of nulls !
tuple(iter())
}}}
Before we use `get_referrers` in production code you'd need to understand
what goes wrong in the above example and guarantee this won't happen for
the dictionaries we do replacements on.
I'd think that looming segfaults are a high price to pay for the
convenience of writing `NN=module.NN` rather than
`lazy_import("other_module",NN)`.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14187#comment:28>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.