Bernard Parisse on Fri, 23 Jun 2006 10:25:15 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

PARI_stack_limit


Hello,

I have a problem when using flisexpr inside a threaded program 
(more precisely I'm adding a pari command to xcas that should be able
to execute any PARI command inside xcas, e.g. pari(Euler)),
it seems related to the PARI_stack_limit check in src/language/anal.c,
line 1959. The &ptr (in a thread call) is (much) lower than PARI_stack_limit
and PARI dies with a Deep recursion error (the same code inside
the readline non-threaded interface icas works correctly). I guess
this check is here to avoid user recursive calls that end with
a SEGFAULT (stack capacity exceeded).
My current fix was to
  1/ declare PARI_stack_limit in src/headers/paridecl.h
  2/ set PARI_stack_limit to 0 in xcas code before calling flisexpr
  (more precisely in the file src/pari.cc from giac-0.6.0.tar.gz)
It works but it requires modification in the pari library to build
xcas. Is there another way to do it?

Thanks!
Bernard Parisse
http://www-fourier.ujf-grenoble.fr/~parisse/giac.html