This is the mail archive of the
guile@cygnus.com
mailing list for the Guile project.
Re: Smob documentation
> In the discussion it turned out that conservative gc is completely at the
> mercy of the compiler: If you have a local SCM value that points to the
> heap, the compiler can, in principle, do anything with it, like adding
> some offset, xoring it with something and so on. Obviously, the compiler
> has to undo this modifications as soon as you access that value, but
> nothing tells you about the way the value is stored on the stack.
That's right. But the experience of Hans Boehm and friends is that
this hasn't been a problem in practice. After many years of working
on conservative GC, he's found one case (on the PPC) where the
compiler might obscure an object pointer.
> The problem with conservative gc is, that the stack is somehow 'volatile',
> because you have other processes that can access it, other than the
> current one. Maybe a solution to this problem would be to declare all
> local SCM variables volatile, but it might be overkill.
I want to see an actual real-life optimization-related problem before
I recommend this. Jost's original problem was an ordinary coding bug,
not a killer optimization.
This is definitely a FAQ.