Argh, sorry to spam. It seems Carbon is a red herring. poly/CInterface
seems to crash when the code is linking *any* framework via the
"-framework XXX" option to gcc.

On 2 July 2012 17:25, Aleks Kissinger <[email protected]> wrote:
> Okay, I've gotten poly to crash for a simpler example (as reproducing
> my exact gtk build would a pain...). It seems that the process
> receives a SIGKILL whenever it tries to load code linking Carbon,
> which GTK-OSX has the misfortune of doing. Here's how to reproduce the
> bug on OS X:
>
> /* diff.c */
> int difference (int x, int y) {
>     return x > y ? x - y : y - x;
> }
>
> # test.ML
> open CInterface;
> val lib = load_lib "libdiff.so";
> val diff = call2 (load_sym lib "difference") (INT,INT) INT;
> val d = diff (2,3);
>
>
> Now, running these commands works as expected:
> $ gcc -c diff.c
> $ gcc -shared diff.o -o libdiff.so
> $ poly --use test.ML
>
>
> But these cause poly to receive a SIGKILL:
> $ gcc -c diff.c
> $ gcc -framework Carbon -shared diff.o -o libdiff.so
> $ poly --use test.ML
> ...
> val lib = ?: dylib
> val diff = fn: int * int -> int
> [1]    64760 killed     poly --use test.ML
>
> Any ideas? Since Carbon is deprecated, I suspect it is coming in to
> conflict with something used by poly, but I haven't been able to track
> it down.
>
>
> On 24 June 2012 01:47, Aleks Kissinger <[email protected]> wrote:
>> Any idea why calling symbols from certain shared libraries would cause
>> poly/ML to crash on OS X? Example:
>>
>>> val gtk = load_lib "libgtk-quartz-2.0.dylib";
>> val gtk = ?: dylib
>>> val gtk_init = call2 (load_sym gtk "gtk_init") (INT,INT) VOID;
>> val gtk_init = fn: int * int -> unit
>>> gtk_init(0,0);
>> [1]    96630 killed     rlwrap -z  poly
>>
>> This (or rather, the equivalent) code works fine on linux, and
>> "libgtk-quartz-2.0.dylib" will link with C code in OS X with no
>> problems. It seems to only do this for some libraries. For instance,
>> the "difference" example from the poly docs
>> (http://www.polyml.org/docs/CInterface.html) also works fine on OS X.
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to