[gclist] Boehm collector vs lazy allocation with demand

Fergus Henderson fjh@cs.mu.oz.au
Wed, 9 Apr 1997 13:20:57 +1000 (EST)


David Chase, you wrote:
> 
> If you're not (over-)allocating through the garbage collector,
> then it ought to suffice to modify its scan of the root set.
> Also, are you certain it is really doing this?  In the case of
> stacks, I thought that the B-W collector was really quite careful
> to only scan the currently active portion of the stack (because
> scanning dead stack frames is a likely source of "spurious" pointers).
> Or, are these stacks that you obtain via mmap from /dev/zero, or
> some similar device?

The Boehm (et al) collector is careful to only scan the currently
active portion of the C stack, but the Mercury runtime engine
uses two other stacks.  These are currently allocated through the
garbage collector, using GC_malloc_uncollectable(), though it would be
easy to allocate them using malloc() instead, or using mmap() from /dev/zero.

-- 
Fergus Henderson <fjh@cs.mu.oz.au>   |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>   |  of excellence is a lethal habit"
PGP: finger fjh@128.250.37.3         |     -- the last words of T. S. Garp.