guile-user
[Top][All Lists]
Advanced

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

Re: How to add Guile support to a package


From: Hans Aberg
Subject: Re: How to add Guile support to a package
Date: Mon, 5 Jan 2015 15:44:16 +0100

> On 5 Jan 2015, at 14:18, Chris Vine <address@hidden> wrote:
> 
> On Mon, 5 Jan 2015 11:05:31 +0100
> Hans Aberg <address@hidden> 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

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