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: 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.

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