[gclist] working with 64 bit ints/pointers

Hans Boehm boehm@hoh.mti.sgi.com
Thu, 11 Dec 1997 20:52:06 -0800

On Dec 11,  1:00pm, Stuart Yeates wrote:
> Subject: RE: [gclist] working with 64 bit ints/pointers
> > Mike exagerates a bit here, bit just a bit. Theoretically
> > it is not precise, but practically speaking it is.
> >
> There are three flaws in the argument:
> (a) things aren't uniformly distributed
Pointers can be for all intents and purposes, since the starting address of the
heap can be chosen to be a uniformly distributed random number.  That's good
enough here, I think.

> (b) a pointer can be data too (consider especially programs such as
> debuggers/tracers where much data is pointers. Depending on the memory
> model in use, some pointers could be valid in both the client and the
> debuggers address space but point to separate copies of
> libraries/globals/etc)
That argument goes away if the heaps are in different parts of the address
space, as they would be nearly all the time if the starting address is random.

> (c) type-safe garbage collectors often make optimizations (i.e. no
> black-listing) that mean a single int/pointer confusion would have a
> more drastic effect than in a well designed conservative collector
True enough.  But I'm not sure that the original claim was that you should
drop such techniques.


Hans-Juergen Boehm