[squeak-dev] 64Bit image on Squeak Cocoa 5.7.4 VM

David T. Lewis lewis at mail.msen.com
Wed Apr 13 20:58:37 UTC 2011


On Wed, Apr 13, 2011 at 10:35:30PM +0200, Tobias Pape wrote:
> Hi ?
> 
> I've just traced my first 64bit image
> using the SystemTracer.
> 
> The ckformat utility reports the Version 
> number as 68002 (i.e. really a 64bit image).
> 
> As far as I know, the 5.7.4 Cocoa Vm is 
> a Combined (or how to call it) 32bit/64bit vm,
> but it tells me:
> 
> This interpreter (vers. 0) cannot read image file (vers. 68002).
> Press CR to quit...
> 
> which is a bit dissapointing. Did I misinterpret
> the line in the Menu bar that says 
> ?Squeak VM Host 64/32bits??
> 
> So Long,
> 	-Tobias

The terminology for this is a bit confusing, but hopefully is
clarified a little bit here:

  http://squeakvm.org/squeak64/faq.html

The 64bit VM in the 32bit/64bit bundle refers to a VM that is
compiled in 64 bit mode such that all the C pointers are 64 bits,
as opposed to a 32 bit VM for which pointer size is the same
as an int (i.e. 32 bits). Both of these VMs are intended to
interpret a normal 32 bit object memory.

The image that you traced will now be a 64 bit image, which
means that all of the "slots" in the object memory are 64 bits
in size, as opposed to the normal 32 bit words and OOPs used
in a 32 bit image. What you are looking for now is a VM that
understands that object memory format. (As a side note, it
is entirely possible to compile that VM in 32 bit mode and
still have it interpret the 64 bit image, although I would
expect that anyone working with a 64 bit image is going to
prefer the 64 bit VM for its effectively unlimited address
space.)

Are you interested in compiling your own VM from unix sources?
If so it is merely a matter of setting one C preprocessor
variable (SQ_VI_BYTES_PER_WORD=8) to produce the VM you need.

Dave




More information about the Squeak-dev mailing list