#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.

Reply via email to