> On 5 Jan 2015, at 14:18, Chris Vine <ch...@cvine.freeserve.co.uk> wrote:
> 
> On Mon, 5 Jan 2015 11:05:31 +0100
> Hans Aberg <haber...@telia.com> wrote:

>> There is an issue when using C++ global objects having initializers
>> doing allocations, on platforms (as on OS X) where the GC initializer
>> must run first.
> 
> Does this include guile-2.0?  That uses the gc library, which seems to
> require some precautions to be taken on Darwin as regards the loading
> of dynamic libraries, but I have not heard of problems interfacing with
> static global objects where those static objects are conventionally
> allocated rather than GC’ed.

Guile is written entirely in C, so there is no problem.

> In any event, I have not had problems getting guile to work as an
> optional extension language for a C++ program with linux, from the
> memory allocation point of view.  

On GNU/Linux, GC_INIT() is not required, so there is no issue there.

> There are however issues with
> accommodating guile exceptions, which are basically long jumps, to
> C++ objects with non-trivial destructors.  You have to organize the
> code so that no guile exception can take such a C++ object out of
> scope, and no C++ exception can propagate out of a guile dynwind block.

If you want to pass C++ exceptions through C-code, there is a gcc option for 
that.



Reply via email to