[racket-dev] Questions about the GC code

From: Juan Francisco Cantero Hurtado (iam at juanfra.info)
Date: Tue Jul 15 10:32:00 EDT 2014

On 07/15/14 07:00, Matthew Flatt wrote:
> The "gc" directory is Boehm's GC. We've modified it a little (grep for
> "PLTSCHEME"), but we try not to maintain the GC itself, except to
> upgrade every once in a while.

Sorry, I should to look the code before of to ask :) . I thought the 
boehm gc version included with racket was pretty modified. My bad.

>
> See
>
>    http://www.hboehm.info/gc/
>
> for the latest version, the mailing list, etc.
>
> I should look again at making Racket work with a stock build of Boehm's
> GC, so we can get out of the business of upgrading and modifying it. So
> far, it has been easier to upgrade occasionally than to sort that out.

It is a great idea!. Boehm GC on OpenBSD is maintained by competent 
programmers and they can deal better with bugs than me.

>
> Meanwhile, Racket includes a slower and more portable "SGC" for
> building the conservative-GC variant of Racket. You can enable it with
> `--enable-sgc` as a flag to `configure`. Probably we should switch to
> SGC as the default, since RacketCGC is now mainly used just to build
> normal Racket.

I've not enabled Senora by default because I tried to build racket on 
hppa and I had the same problem than with boehm. I've asked to another 
OpenBSD dev to test Racket with Senora on mips64el.

>
> At Tue, 15 Jul 2014 04:37:45 +0200, Juan Francisco Cantero Hurtado wrote:
>> I've been reading the code of the files gc/os_dep.c and
>> gc/include/private/gcconfig.h. I've some questions related to OpenBSD.
>>
>> ---
>>
>> In the X86_64 config, the file defines STACKBOTTOM and HEURISTIC2
>> (unused because racket picks STACKBOTTOM). What's the preferred?. I'm
>> asking because I don't know if the adding of HEURISTIC2 was an error or
>> really there a good reason to select one or other.
>>
>> ---
>>
>> There is some recommended benchmark to test the performance of MMAP vs
>> sbrk? I've tried both with generic code and I don't see the difference.
>>
>> ---
>>
>> OpenBSD only supports MIPS64. Should I add ELFCLASS64 to the MIPS block
>> within gcconfig.h?
>>
>>



Posted on the dev mailing list.