[Vm-dev] I think I've found a bug in the 64-bit Squeak VM memory
compactor
David T. Lewis
lewis at mail.msen.com
Wed Jun 16 03:52:24 UTC 2010
On Tue, Jun 15, 2010 at 11:17:48AM -0700, ungar at mac.com wrote:
>
> On Jun 15, 2010, at 1:02 AM, John M McIntosh wrote:
> >
> > PS the reason why David thundered into this is because
> >
> > (a) on a 32bit system with 32bit image the oops start address is never zero, base is constant 0
> > (b) on a 64bit system with 64bit image the oops start address is never zero, base is zero
> > (c) on a 64bit system with 32bit image the oops start address is zero, offset by the mmap as the base
> > (d) on a 32bit system with 64bit image the oops start address is never zero (and the image size would be less than the 32bit address range), base is constant zero
> >
>
> Exactly!
John,
Change set attached to the Mantis report, hopefully implementing the
change as you proposed. I think all that is needed is to use the
value -1 to represent an invalid object memory pointer, rather than 0.
This should work for 32-bit and 64-bit object word size. It limits
32 bit address range to 32 bits, but this restriction exists already
in many places and should cause no additional problems here.
Dave
More information about the Vm-dev
mailing list