Hi,

Le 04/03/2015 00:53, Bill Allombert a écrit :

I expect they should do something like
if (setjmp(&iferr_env))
{
   GEN E = pari_err_last();
   char *s = GSTR(GENtoGENstr(E));
   fprintf(stderr,s);
   ...
}
before the point they are recovering using cb_pari_err_recover() at this time.

I had a look at their code, and in fact, what they do is:
- detect there has been an error (cb_pari_err_handle is used here) ;
- if it's a normal error, raise a python exception ;
- if it's a stack overflow, double the stack ;
- in case of any error, apparently pari always tries to recover (cb_pari_err_recover is used here) : if there is a python exception, they decide it's a real error and don't recover -- if there isn't (doubling the stack succeeded), they restart the computation.

I see there is also a cb_pari_err_pre_recover... could it be used instead of cb_pari_err_handle, given their use-case?

Thanks,

Snark on #debian-science


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to