#10963: More functorial constructions
-------------------------------------------------------------------------+--
Reporter: nthiery |
Owner: stumpc5
Type: enhancement |
Status: needs_work
Priority: major |
Milestone:
Component: categories |
Resolution:
Keywords: |
Work issues: Reduce startup time by 5%. Avoid "recursion depth exceeded
(ignored)". Trivial doctest fixes.
Report Upstream: N/A |
Reviewers: Simon King
Authors: Nicolas M. Thiéry |
Merged in:
Dependencies: #11224, #8327, #10193, #12895, #14516, #14722, #13589 |
Stopgaps:
-------------------------------------------------------------------------+--
Comment (by SimonKing):
I try to summarize how I understand how the patch works---so, please
correct me if I misunderstood.
Generally, adding an axiom A to a category C means: Forming the join of C
with `C._with_axiom_categories(A)`, unless there is a class
`getattr(C,A)`, for example: `Magmas().Associative` is `Semigroups`. The
categories returned by `C._with_axiom_categories(A)` would, for example,
provide new parent and element methods (such as: `prod()` only makes sense
in an associative magma, `_test_one()` only makes sense for unital
magmas).
If I understand correctly, the same "axiom category" (here:
`Magmas.Associative`) is available to all subcategories of `Magmas()`,
because it is defined in `Magmas.SubcategoryMethods`. Or am I mistaken and
it is ''not'' the same? Is another dynamic class involved here? This could
also give rise to slowness.
Apart from hard-coded cases, the rôle of `JoinCategory` has generally
increased, and this indicates it might make sense to spend some
optimization there. A highly significant increase of at least 5% of
startup time is rather much. I don't know if `JoinCategory` is the only
problem here.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10963#comment:43>
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.