#14894: Fix PARI error handling (needed for future upgrade to PARI 2.6)
--------------------------------------+------------------------------
Reporter: vbraun | Owner: jdemeyer
Type: defect | Status: needs_work
Priority: major | Milestone: sage-5.12
Component: packages: standard | Resolution:
Keywords: pari error signal | Merged in:
Authors: Peter Bruin | Reviewers: Jeroen Demeyer
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: #12142, #14873 | Stopgaps:
--------------------------------------+------------------------------
Comment (by jdemeyer):
Replying to [comment:27 pbruin]:
> - either find out how (in)efficient context managers (the `with`
statement) are in Cython; I still think being able to say `with
pari_catch: code` would be ideal
Of course this would be ideal. But as I said, this needs Cython patches. I
recently looked into this for implementing `sig_on()` and it currently
cannot be done in Cython.
> What you suggest seems to require a new set of macros, merging
sig_on()/sig_off() and PARI's error handling macros, that only do one
sigsetjmp() but then have to distinguish within the error-handling code
whether a signal or a PARI error occurred.
Exactly. I know it's far from trivial, otherwise I would have done it
already in the past. But I can say that I '''thought''' a lot about
signal/error handling.
> I would hope that setjmp() is very fast on most systems
It's not. I remember it being particularly slow on BSD (and therefore OS
X) systems.
--
Ticket URL: <http://trac.sagemath.org/ticket/14894#comment:28>
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.