| Dirk Laurie on Wed, 06 Apr 2011 12:34:51 +0200 | 
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Trapping errors in library mode | 
When calling the Pari library from C, I don't want my program
to exit when I do something silly like dividing by zero.  So
I initialize not by pari_init but by pari_init_opts, omitting
INIT_JMPm from the list of options.  This works, in the sense
that I no longer get 
  ***   division by zero
  ***   Error in the PARI system. End of program.
Instead, I get (under Linux)
  ***   division by zero
Segmentation fault
which not everybody will agree is much nicer.  
The libpari documentation has nothing else on INIT_JMPm.
So I peeked in the source code.  I _think_ I should write
a routine headed 
    int my_exception_handler(long numerr)
using gp_exception_handler as a model, and say 
    default_exception_handler = my_exception_handler;
However, exploiting undocumented features by reverse-engineering
code is a _bad_ idea, so I'm asking here whether this is the
canonical way.
Dirk Laurie