users-prolog
[Top][All Lists]
Advanced

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

Re: [PPL-devel] Re: Raising Prolog exceptions from C code (2nd attempt)


From: Fergus Henderson
Subject: Re: [PPL-devel] Re: Raising Prolog exceptions from C code (2nd attempt)
Date: Tue, 11 Jun 2002 20:43:26 +1000
User-agent: Mutt/1.2.5i

On 11-Jun-2002, Manuel Carro <address@hidden> wrote:
> Roberto Bagnara writes:
> 
> >> Right.  However, I believe here the point is another one: do GNU and
> >> Ciao Prolog require all foreign code they interoperate with to be compiled
> >> with -fomit-frame-pointer for proper operation?  And: to interoperate
> >> with foreign code compiled without -fomit-frame-pointer, is it necessary
> >> to recompile GNU and Ciao Prolog without -fomit-frame-pointer?
> >> 
> >> For GNU Prolog, the experiments conducted by Daniele and myself would
> >> seem to indicate two positive answers.  Should that be confirmed, it would
> >> constitute a serious drawback of GNU Prolog, since proper behavior should
> >> not depend on how foreign code is compiled, provided the calling
> >> conventions 
> >> of the platform at hand are respected (and compiling with or without
> >> -fomit-frame-pointer has no influence, AFAICT, on the calling conventions
> >> used in the platforms we are talking about).
> 
>     It is possible that omiting the frame pointer (whose exact effect
> on the assembler output I really do not know) somehow affects the
> proper behavior of {long,set}jump.  Note that this behavior is anyway
> not documented in the GCC manual --- maybe this kind of conduct is
> part of the lore in the C compiler arena.

Omitting the frame pointer should not have any effect on the behaviour
of setjmp() and longjmp().  If it does, then that is a bug in GCC,
which should be reported.  But would be surprised by the existence of
such a bug, since I have for quite some time been using setjmp() and
longjmp() with GCC in code compiled with `-fomit-frame-pointer',
without any problems.

The problem is more likely related to GNU Prolog's use of registers, IMHO.

-- 
Fergus Henderson <address@hidden>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]