#10963: More functorial constructions
-------------------------------------+-------------------------------------
Reporter: nthiery | Owner: stumpc5
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-6.1
Component: categories | Resolution:
Keywords: days54 | Merged in:
Authors: Nicolas M. Thiéry | Reviewers: Simon King, Frédéric
Report Upstream: N/A | Chapoton
Branch: | Work issues: Detect and fix
public/ticket/10963 | Heisenbugs
Dependencies: #11224, #8327, | Commit:
#10193, #12895, #14516, #14722, | 8eaf51a82c4e2194769db13457979ae601ebbc04
#13589, #14471, #15069, #15094, | Stopgaps:
#11688, #13394, #15150, #15506 |
-------------------------------------+-------------------------------------
Comment (by SimonKing):
I tried to trace at what point redundant calls are happening, and I can
confirm what others have stated: They occur in the assert statement. More
precisely: They occur when doing `getattr(base_category_class, axiom,
None)`.
So, we have several options:
- Temporarily fill the cache with `(None, None)`, as I have suggested. The
lazy attribute raises a `TypeError` when encountering that `(None, None)`,
and this error seems to result in an import error, which then is caught.
- Remove the assertion. However, I believe that it is reasonable to have
an assertion, so that future errors with categories and axioms will be
found more easily.
- Change how the axiom binds to the `base_category_class`. I guess this
involves a `__classget__`: Apparently this `__classget__` somehow requests
the value of the lazy class attribute ''while it is computed''.
Probably the third approach is the cleanest, but so far I am not sure if
we really have a `__classget__` that we can blame.
--
Ticket URL: <http://trac.sagemath.org/ticket/10963#comment:262>
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.
For more options, visit https://groups.google.com/groups/opt_out.