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! 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.
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!
Thank you for your time
cordially,
tty.
Thanks for your time.
tty.
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
David,
You sent a reply outlining how to build native 64 bit StackInterpreter which I accidently deleted. If you have it handy, and not a waste of your time, could you please repost it?
"No" is a good answer if you are not inclined.
thx.
tty
On Wed, Mar 12, 2014 at 08:30:41AM -0700, gettimothy wrote:
David,
You sent a reply outlining how to build native 64 bit StackInterpreter which I accidently deleted. If you have it handy, and not a waste of your time, could you please repost it?
Hi tty,
The slightly out of date instructions are at: http://squeakvm.org/unix/devel.html
You can follow those instructions, but use the latest versions of Squeak, VMMaker, Subversion sources, etc rather than the older versions cited in those instuctions.
An overview of 64-bit VM and image terminology is at: http://squeakvm.org/squeak64/
You can find an automated build here which may be helpful to illustrate the process: http://build.squeak.org/job/InterpreterVM/
The script that does the work is: http://build.squeak.org/job/InterpreterVM/ws/VMUnixBuild.st
If you use the script, edit it at the place marked "EDIT HERE".
Note that this is for the standard interpreter VM. StackInterpreter is currently limited to 32-bit executables.
Dave
Hi David,
Thank you. I already have the standard interpreter running nativilly on 64 bit and want to port the StackInterpreter as well. I thought you had posted a a different reply than the one below, but I must have misread.
Thanks for your time.
tty
---- On Wed, 12 Mar 2014 08:46:28 -0700 David T. Lewis<lewis@mail.msen.com> wrote ----
On Wed, Mar 12, 2014 at 08:30:41AM -0700, gettimothy wrote: > > David, > > You sent a reply outlining how to build native 64 bit StackInterpreter which I accidently deleted. If you have it handy, and not a waste of your time, could you please repost it? >
Hi tty,
The slightly out of date instructions are at: http://squeakvm.org/unix/devel.html
You can follow those instructions, but use the latest versions of Squeak, VMMaker, Subversion sources, etc rather than the older versions cited in those instuctions.
An overview of 64-bit VM and image terminology is at: http://squeakvm.org/squeak64/
You can find an automated build here which may be helpful to illustrate the process: http://build.squeak.org/job/InterpreterVM/
The script that does the work is: http://build.squeak.org/job/InterpreterVM/ws/VMUnixBuild.st
If you use the script, edit it at the place marked "EDIT HERE".
Note that this is for the standard interpreter VM. StackInterpreter is currently limited to 32-bit executables.
Dave
David.
Gmane has the thread--sorry for the noise, I have been doing PHP work for the past week and it has induced brain-rot.
You gave the outline on creating a 64x64 squeak4.x standardVM..
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 :)
So, I will do that before turning my attention to the StackInterpreter issues.
thx.
tty
---- On Wed, 12 Mar 2014 08:30:41 -0700 gettimothy<gettimothy@zoho.com> wrote ----
David,
You sent a reply outlining how to build native 64 bit StackInterpreter which I accidently deleted. If you have it handy, and not a waste of your time, could you please repost it?
"No" is a good answer if you are not inclined.
thx.
tty
vm-dev@lists.squeakfoundation.org