This is the mail archive of the
guile@sources.redhat.com
mailing list for the Guile project.
Re: boehm & guile, success report.
mlivshin@bigfoot.com writes:
> > most home-brew GC's aren't as sophisticated as Boehm's. Perhaps
> > GUILE's is.
>
> for Scheme, yes. it may be that the Boehm GC is more efficient in
> what it does (in some areas, certainly), but the Guile GC simply has
> to do much less, as it's mostly precise. but let's see where you get
> with tuning BGC and making it not just scan everything.
I don't quite understand. Isn't BGC also mostly precise if you mark
strings & floats as being atomic? (Assuming that most memory is in
the form of Scheme data, and not auxiliary data structs).
The bad news: i looked some more, and I can't find any tuning, except
for allocing atomic and stubborn (permanent) objects.
And there is a ratio specifier..that sets the ratio between wasting CPU
and wasting memory, meaning that my previous benchmarks are worthless
(sigh.)
BTW, I am going to do some real work now, so if you people in other
timezones feel challenged by Boehm GC , go ahead.
> > [going into separate discussion]
> >
> > That does seem to make C-integration for normal applications hard ,
> > doesn't it?
>
> not really harder than it's now.
>
> now, if you don't want to go the `main'-capturing route, you *have* to
> know where the C stack begins. but if the Scheme evaluator doesn't
> use the C stack, all you have to guarrantee is that your C procedures
> are called from Scheme
that means you can't call C-procs from C. I think that is a loss.
> -- the evaluator would keep notes of where the
> C stack frames begin.
BTW, I looked at Boehm briefly. It finds the stack using a big
#ifdef. For linux it simply is 0xc0000000
> also, it'll be hard to support the current API where you can setup an
> exception-catching context in C code. no great loss, I think.
no, especially since you can set this catch up yourself when you need
it. (that's possible, isn't it?)
--
Han-Wen Nienhuys | hanwen@cs.uu.nl | http://www.cs.uu.nl/~hanwen/