[mercury-users] GC / Guile

Julien Fischer juliensf at csse.unimelb.edu.au
Sun Jun 12 17:53:47 AEST 2011

On Sun, 12 Jun 2011, Tomas By wrote:

> On Sun, June 12, 2011 08:42, Julien Fischer wrote:
>> The issue here is: will Guile work with the modified version of Boehm GC
>> that is supplied with Mercury**?  I don't think Mercury specific
>> modifications should cause trouble per se -- they are additions to the
>> existing API rather than modifications of it.
> Well, clearly the GC seems to be the problem, but I have been using
> this setup for a year or so, and this particular problem appeared after
> going to Guile 2.0  (I think). It did actually work for a while with
> 2.0 also, but that was with earlier object files (I believe).
> As my minimal example shows, there is a problem with Mercury + Guile 2.0

Which version of Mercury is this?

>> Based on a quick browse of the Guile mailing list I note that the above
>> error has occurred before with Guile.  The things I suggest checking
>> here are: [...]
> Ok, thanks.

The following information might help.

Mercury uses a modified version of Boehm GC 7.2alpha4.

The collector is compiled with -DLARGE_CONFIG in all grades.

In .par grades the collector is also compiled with

For Mercury 11.01 (but not the trunk) on Linux (only) in .par grades it
is also compiled with -DHBLKSIZE=32768 -DCPP_LOG_HBLKSIZE=15.
(This is known to be broken on some machines which is why it is no
longer present on the trunk.)

Note also that the name of the GC library is different in .par grades,
lib_pargc.{a,so,dylib,dll} vs. libgc,{a,so,dylib,dll} in non .par

At program startup the Mercury runtime will call
GC_REGISTER_DISPLACEMENT in order tell the collector to ignore the tag

mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au

More information about the users mailing list