Iwao KIMURA on Thu, 12 Sep 2002 04:09:41 +0900 (JST)


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

Re: error recovery


Hi

From: Karim BELABAS <Karim.Belabas@math.u-psud.fr>
Subject: Re: error recovery (was Re: gp: series bug)
Date: Wed, 11 Sep 2002 04:56:14 +0200 (MEST)

> This does not work well. Assume f1 and f2 use this mechanism,
> 
>   f1()
>   {
>     if (!setjmp(buf))
>     {
> 
>     } else {
>       f2();
>       ...;
>     }
>   }
> 
> f2() overwrites 'buf', returns, and now 'buf' refers to an invalid stack
> environment. At this point, calling pariErrdie crashes the program.

Right. The method I proposed fails miserablly in general
situation. But what I am writing is an another language binding of
Pari library (I wrote small script which generates stub files from
paridecl.h, and found some declared but exit functions because linker
failed).
So I `wrap' the Pari library functions like above, and
never call another function using that mechanism after longjmp()ed.

Anyway thank you very much for detailed description of Error recovery
code. I hope this feature provides generic & robust error recovery,
and documented in Users' manual :-)

Well, it's somewhat off-topic but one more documentation request.
It's nice if binary I/O related functions are documented.

Regards.
	;#	Iwao KIMURA			;#
	;#	Faculty. Math, Dept. of Sciece	;#
	;#	Toyama University, Toyama, Japan;#