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: Manuel Carro
Subject: Re: [PPL-devel] Re: Raising Prolog exceptions from C code (2nd attempt)
Date: Tue, 11 Jun 2002 11:32:59 +0200

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.

    Yes, we have interfaced with libraries (most probably) compiled
without -fomit-frame-pointer, but as far as I remember we did not have
to raise exceptions.

        MCL
-- 
+--------------------------------------------------------------------------+
|Manuel Carro -- Facultad de Informática -- U. Politécnica de Madrid (UPM) |
|  Email: address@hidden --- Ph: +34-91336-7455 --- FAX: +34-91336-7412  |
|http://lml.ls.fi.upm.es/~boris --- http://clip.dia.fi.upm.es/Software/Ciao|



reply via email to

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