[Vm-dev] 64bit FFI?

Bert Freudenberg bert at freudenbergs.de
Thu Feb 12 19:25:39 UTC 2009


On 12.02.2009, at 19:29, Eliot Miranda wrote:
> Um, I have (studied my Agrippa), and I quote:
>
> Does my 64-bit VM run both 32-bit and 64-bit images? No. Any VM will  
> run either 32-bit or 64-bit images

Read it like this:

Does my 64-bit VM run *both* 32-bit and 64-bit images? No. Any VM will  
run *either* 32-bit *or* 64-bit images

> Apologies for being so persistent :)

Well everyone has a thick day once in a while.

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

You still fail to see the crucial distinction the FAQ makes between 64- 
bit *images* and 64-bit *VMs*:

What is a 64-bit image?
A 64-bit image is an image in which the object memory uses a 64-bit  
word size for object pointers

What is a 64-bit VM?
A 64-bit VM is one which is compiled with the LP64 or ILP64 data  
model. This means, in C terms, that pointers and longs are 64-bits wide.

These two are independent. There are four kinds of VMs:

1) a 32-bit VM compiled to run 32-bit images
2) a 32-bit VM compiled to run 64-bit images
3) a 64-bit VM compiled to run 32-bit images
4) a 64-bit VM compiled to run 64-bit images

Wether the VM can run 32 or 64 bit *images* is governed by the  
checkbox in VMMaker.
Wether the VM can run on a 32 or 64 bit host is governed by the C  
compiler.

Also, nobody uses 64 bit images yet.

Please suggest how the FAQ could make this more clear (assuming you  
actually studied the whole thing and not just skimmed it).

- Bert -




More information about the Vm-dev mailing list