#4740: avoid creating unneeded homsets when coercing
-------------------------------+---------------------------
       Reporter:  mabshoff     |         Owner:  robertwb
           Type:  defect       |        Status:  needs_work
       Priority:  major        |     Milestone:  sage-5.11
      Component:  memleak      |    Resolution:
       Keywords:               |     Merged in:
        Authors:  Mike Hansen  |     Reviewers:
Report Upstream:  N/A          |   Work issues:
         Branch:               |  Dependencies:
       Stopgaps:               |
-------------------------------+---------------------------
Changes (by SimonKing):

 * status:  needs_review => needs_work


Comment:

 Replying to [comment:9 mhansen]:
 > Simon -- see any issues here?

 Yes, and a quite severe issue.

 The problem is, as often, unique versus non-unique parent structures. For
 coercion, we need that the domain and codomain of a coercion from A to B
 are not just equal but identical to A and B. But with
 `UniqueRepresentation`, the given input arguments are compared by
 equality, not by identity. That's why it was a conscious decision to use
 `TripleDict` for caching homsets.

 The cache is provided by the `Hom()` function in sage.categories.homset.
 If homsets are really created over and over again, then there seems to be
 a rogue call to `Homset(...)`. The solution is not to make `Homset` a
 cached class, but to call the `Hom()` function instead.

--
Ticket URL: <http://trac.sagemath.org/ticket/4740#comment:12>
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