[Vm-dev] What I would like to do is get a 64 bit VM compiled to native 64 powering a 64 bit image.

David T. Lewis lewis at mail.msen.com
Thu Feb 27 02:18:40 UTC 2014


On Wed, Feb 26, 2014 at 01:32:37PM -0800, gettimothy wrote:
>  
> Hi All.
> 
> Please excuse any mistakes in terminology as I wrap my feeble mind around this stuff.
> 
> To my happy surprise, building a VM per http://wiki.squeak.org/squeak/6177 
> 
>      1. builds a standard 32 bit VM
>      2. The 32 bit VM compiles to native 64 on linux: (ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped)
>      3. and powers a 32 bit Squeak4.x image.
> 
> (I think I stated that correctly)
> 
> The above runs perfectly on my pure-64 boot partition with no 32 bit compat libs..its a wonderful feeling.
> 
> What I would like to do next is get a 64 bit VM compiled to native 64 powering a 64 bit image (64x64x64) as that is my goal for StackInterpreter and then Cog going forward. (and then kernel mode, multi-processor ala roarVM...VAX...)
> 
> With the Squeak4.x build, cmake's configure --help provides a    --image64  option that  builds a VM for running 64-bit images.
> That vm builds just fine, but I have not been able to find a compatible 64 bit image that it will run!

For an up to date 64-bit image, download from http://build.squeak.org/job/Squeak%2064-bit%20image/

This is from a Jenkins CI job that grabs the latest Squeak trunk image and traces it to 64 bits.

If you have a VM compiled on a 64-bit platform with --image64 in the configure step, then
you have the 64x64x64 combination that you are looking for.


> The instructions to create a 64 bit image using SystemTracer did not pan out (the instructions to file-in System-Tracing.1.cs and All64BitChanges.1.cs don't apply as there is no All64BitChanges.1.cs to file in. I flailed a bit with the other files there, but gave up temporarily 
> ) and scouring the bowels of the internet yielded no appropriate ready made image. I will return to this, but being lazy by nature--I turned to  David's work at http://squeakvm.org/squeak64/sq64-20101106-dtl-sources-and-image.zip hoping for an easy way out of this.
> 

Sorry, those instructions are out of date. Use the latest SystemTracer from the
http://www.squeaksource.com/SystemTracing repository and use an interpreter VM
to do the trace (otherwise the 64-bit image will be confused when it wakes up
from a deep sleep after the trace).

> David's zip runs a Squeak3.8-gamma 64 bit image, but it is powered by a 32 bit VM (?) that is compiled to a native 64 bit executable. So, at this point we are 64x64x32--32 short of the goal.
> So, I think, ok, compile a 64 bit VM to run the 64 bit image from the 64 bit image--easy-peasy,right?The build worked just fine, but I got the  error from the FAQ that states 
> 
> 
>  If you try to run a 64-bit image with a VM built for 32-bit images, you will get an error message such as this: 
>  This interpreter (vers. 6502) cannot read image file (vers. 68000). 
>  where (vers. 6502) displayed as  (vers. 0) when I tried to launch the original 64 bit image from which I had just created the vm.
> 
> The VMMakerTool on the 3.8 gamma does not have the 64 bit vm check box--or if it does, it is well hidden.
> The CMake configure script for the 3.8 gamma does not support the --image64 option either.
> 
> So, I am thinking now, to "port" the Squeak3.8-gamma source tree to the squeak4.x Cmake configuration, but I really don't know if this is a valid approach.
> 
> If there is anything obvious that you see that I am missing, I would appreciate your advice on how to proceed. If not, I will keep poking away!
> 

Apologies for those outdated docs, but if you use the latest Squeak trunk image along
with the latest VMMaker (trunk interpreter) and the latest SystemTracing tracer, then
all the pieces should play together nicely. There is no need to go back to a Squeak 3.8
time frame, although Squeak 3.8 was a nice and very solid release, and worth revisiting
on its own merits :)

Dave



More information about the Vm-dev mailing list