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: tools to make non-conservative GC feasible.



> To use it, all programmers had to do was remember to declare stack
> variables as "ObjectVar" instead of "Object *".  Sounds simple.
> [...]
> But boy oh boy, if you ever forgot an ObjectVar were you *did*
> need it, you had a bug that could lurk literally for *years*,
> waiting for a GC to get triggered at exactly the right (or wrong)
> moment.
> [...]
> We switched to conservative stack scanning (precise everywhere
> else) about 2 years ago and never looked back.

Right.  My experience with Emacs is similar (up until the point about
"We switched ...").  Add that to the results presented in the Usenix
paper (Boehm, I think?), and that's my argument.


If someone implemented exact GC, and wrote a checker that we could
distribute with Guile (so folks could check their Guile extensions),
and performance was decent, I'd distribute it.

I'm more comfortable with a checker than a transformer (i.e. something
which inserts the GC protection for you), because I don't want to
introduce yet another step into Guile's already complex build process.
Those things always seem to be rickety.

As far as the discussion of modified BSD lints, C++ constructors,
incremental thread-safe GC's and so on is concerned, well, you know
how these things go:

		     Those With Running Code Win.

:)