This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: gc notes available


Christian Lynbech <chl@tbit.dk> writes:

> I have browsed through the text and found the following (wrt. write
> barriers):
> 
> > This will likely depend upon memory protection services in the host
> > os, but any os that doesn't provide this probably isn't running
> > guile in the first place. 
> 
> This is bad news for us, if it catches on.
>  
> We are putting guile to work in our router product, and that has no
> fancy memory protection. Don't forget embedded systems, even if we are
> only a few (one?) currently.

I felt a bit iffy about the all or nothing approach, because I had a
feeling it would burn someone (plus, it shot down all hopes of porting
guile to the c64 ;).  What I'm thinking is that a variation on the
current gc (as well as the full thing) will be available as a compile
time option. I can see a few waus that might cut the current sweep
time down, so it could still be a win. It might also be possible as a
runtime option, but that probably wouldn't help in your case, since
I'd think you'd want to keep the memory requirements for guile itself
as small as possible.

It is possible for the full generational gc to get by without the mem
protection, but that will lead to a slow down in evaluation, require
me to become intimate with eval.c (which is kind of scary >;), require
a trek all over the code, changing bits, and likely add some
requirements for c code, though nothing as drastic as refcounting or
keeping track of roots. This is something I'd like to look at after
the gengc is working.

-- 
Greg