[Vm-dev] build64 in squeakvm classic

David T. Lewis lewis at mail.msen.com
Sun Mar 29 19:36:43 UTC 2020


Hi stes,

If I understand correctly, you have successfully built a 32-bit VM
that runs a 64-bit V3 image. I have not actually tested that combination
in quite a few years, so I am happy to hear that it still works.

The 64-bit V3 image was created by Dan Ingalls and Ian Piumarta. A home
page based on the original release is at http://squeakvm.org/squeak64/
The image format for this was intentially simple, and was (I think)
intended as a proof of concept for later work.

I did later work to provide better support in the VM for the 64-bit
V3 image, notably including the ability to use a single code base to
produce VM executables for either the 32-bit V3 image or the 64-bit
image, and to be able to compile the VM as native 32 or 64 bit
executables in either case. That is what you are seeing now when you
use the Makefile.example, which builds VM executables for the 32-bit
and 64-bit VM images on whatever runtime platform you have (32-bits
in your case).

The 64-bit Spur images that we use today were developed by Eliot
Miranda. This image format was designed from the beginning with
64-bit object addressing in mind, and it provides a number of other
design advantages as well.

No 64-bit V3 images were ever released on squeak.org, and it has
never been part of an official release.

If you are interested in making a 64-bit version of one of your
existing 32-bit V3 images (image format 6504 or 6505), it can
be done using the SystemTracer64, which can be found in
http://www.squeaksource.com/SystemTracing 

Some explanation is at http://wiki.squeak.org/squeak/2315

Dave


On Sun, Mar 29, 2020 at 10:59:41AM -0500, stes wrote:
>  
> 
> I've build a squeakvm64 but I don't know how to test it
> 
> The latest Squeak 4.6 on files.squeak.org has
> 
> bash-4.4$ ./lib/squeak/4.16.7-3775/ckformat Squeak4.6-14191.image
> 6505
>

If you wanted to convert that image into the 64-bit V3 format, you
would do this:

1) Open the image with a classic interpreter VM, and save it. This will
save it as image format 6504.

2) Open the image again, and load the SystemTracing package





> 
> so the format is 6505 and the bin/squeak shell script seems to launch 64 bit
> only for 
> 
>     case "${format}" in
>         6502)   vms="${squeakvm}";;
>         6504)   vms="${cogvm} ${squeakvm}";;
>         6505)   vms="${cogvm} ${squeakvm}";;
>         68000)  vms="${squeakvm64}"; plgdir="${plgd64}";;
>         68002)  vms="${squeakvm64}"; plgdir="${plgd64}";;
>         68003)  vms="${squeakvm64}"; plgdir="${plgd64}";;
> 
> so those are the 68000 range formats that are for 64 bit but they are not on
> files.squeak.org it seems.
> 
> on squeakvm.org there is a 64 bit which seems to work:
> 
> ./lib/squeak/4.16.7-3775/ckformat
> bash-4.4$ ./lib/squeak/4.16.7-3775/ckformat sq64-20101106-dtl.image 
> 68000
> 
> bash-4.4$ bin/squeak sq64-20101106-dtl.image 
> failed loading module
> ./squeak/lib/squeak/4.16.7-3775_64bit/so.SqueakFFIPrims due to ld.so.1:
> squeakvm64: fatal: relocation error: file
> ./squeak/lib/squeak/4.16.7-3775_64bit/so.SqueakFFIPrims: symbol
> ffiLogFileNameOfLength: referenced symbol not found
> 
> there is a warning for one module 
> 
> but the bin/squeak launches in that case
> 
> squeak/lib/squeak/4.16.7-3775_64bit/squeakvm64 sq64-20101106-dtl.image
> 
> 
> this seems to work (I can browse the objects)
> 
> but because there is no images on files.squeak.org for this version, it does
> not make sense to pursue 64bit in the "classic vm" I guess
> 
> 
> 
> 
> --
> Sent from: http://forum.world.st/Squeak-VM-f104410.html


More information about the Vm-dev mailing list