#11339: Illegal use of __deallocate__ in cython (pyx) code
-----------------------------------------------+----------------------------
Reporter: gagern | Owner: drkirkby
Type: defect | Status: needs_work
Priority: major | Milestone: sage-4.7.1
Component: porting | Keywords: sd31
Work_issues: | Upstream: N/A
Reviewer: François Bissey, Steven Trogdon | Author: Volker Braun,
Martin von Gagern
Merged: | Dependencies:
-----------------------------------------------+----------------------------
Changes (by vbraun):
* status: needs_review => needs_work
Comment:
By immutable I meant that the ring of the Parent object can't change. But
I wasn't aware that the parent is part of the cycle that the garbage
collector is trying to break, then it won't work of course.
Actually, if the cycle is Parent <-> GroebnerStrategy then I don't
understand Martin's orginal patch. By manually increasing the refcount of
Parent by one, the garbage collector should conclude that an external
reference is keeping the cycle alive, right? Hence `__dealloc__` would
never be run. This fixes the crash, of course, but at the cost of leaking
memory?
I'm leaning towards refcounting the libsingular rings in C. This would be
rather easy to implement, I think.
Also, Burcin told me that the need to explicitly reset the ring after the
groebner strategy is going to go away in the future. But I would wager
that Sage is going to transition to Python 3 first ;-)
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11339#comment:21>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.