[m-users.] Mercury with Guile (was Re: installation failure (Mercury 14.01))

Tomas By tomas at basun.net
Wed Aug 13 02:24:40 AEST 2014


Hi,

Yes, like the example I posted two years ago. I have some largish Mercury
data structures defined as Guile SMOBs, and then various Scheme access
procedures, all in a Mercury library.

I tried to copy the "register_displacements" from "t.m", and call that
just before "mercury_init", but it made no difference (my app crashes
quickly).

(The top level is C, so I initalise both Guile & Mercury, in that order I
believe)

/Tomas



On Tue, August 12, 2014 06:49, Julien Fischer wrote:
>
> On Mon, 11 Aug 2014, Tomas By wrote:
>
>> On Sun, August 3, 2014 09:51, Peter Wang wrote:
>>> The following program works for me, though it's not very comprehensive.
>>>
>>> I built Guile against Mercury's par_gc library by setting BDW_GC_CFLAGS
>>> and BDW_GC_LIBS when configuring Guile.  I needed to comment out a call
>>> to GC_dump as it does not exist in Mercury's build.
>>
>> I'm trying to understand this, and I was able to compile and run t.m
>> without any modifications to environment variables (which is what I
>> assume
>> BDW_GC_FLAGS and BDW_GC_LIBS are) or commenting out stuff in Guile
>> source
>> code.
>>
>> Can the problem be that I am compiling the Mercury stuff into a library?
>
> For use by Guile extensions presumably?  So in your case, Guile would be
> performing its GC initialisation before Mercury I guess.  (Which is the
> oppposite of Peter's example.)
>
> If Guile and Mercury set up the collector in a similar fashion, maybe we
> could provide a mechanism for bypassing Mercury's initialisation of the
> GC.  (You would probably still need to link against Mercury's modified
> collector though.)
>
> Cheers,
> Julien.
>





More information about the users mailing list