What is worse than things not working is when things start working and I don't know why.
After a hiatus in PHP land, I am back to Squeak Land and lo and behold, the Stack Interpreter 32 bit compiled and runs the 4.6 image.
That is if what you see below is in fact the Stack Interpreter.
Please let me know if it is not
Image ----- /home/tty/usr/src/smalltalk/runStackVM32/Squeak4.6-13700.image Squeak4.6 latest update: #13700 Current Change Set: Unnamed1 Image format 6505 (32 bit)
Virtual Machine --------------- /home/wm/usr/local/stackVM32/lib/squeak/4.0-2881/squeak Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.641] Unix built on Mar 28 2014 12:22:20 Compiler: 4.8.2 platform sources revision VM: r2881 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-13 20:45:37 -0400 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014 StackToRegisterMappingCogit VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014
If so, then we have a second data point of building a Stack Interpreter on a 64 bit machine with 32 bit compat libs.
file squeak squeak: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
An interesting point of note is of note is that I was getting ready to debug a vm that would not run. It was built with this configure command.
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
and the result was a vm that built, but would hang waiting on what I believed was a signal.
Setting out to debug this non-running vm, I changed to -O2 flag to -Og which rhymes with 'd' and that spells "debugging".
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -Og -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
And, lo and behold, no more trouble in River City. It ran.
On Fri, Mar 28, 2014 at 2:56 PM, gettimothy gettimothy@zoho.com wrote:
What is worse than things not working is when things start working and I don't know why.
After a hiatus in PHP land, I am back to Squeak Land and lo and behold, the Stack Interpreter 32 bit compiled and runs the 4.6 image.
You've compiled a Cog VM. Let me take you through the version output:
That is if what you see below is in fact the Stack Interpreter.
Please let me know if it is not
Image
/home/tty/usr/src/smalltalk/runStackVM32/Squeak4.6-13700.image Squeak4.6 latest update: #13700 Current Change Set: Unnamed1 Image format 6505 (32 bit)
Virtual Machine
/home/wm/usr/local/stackVM32/lib/squeak/4.0-2881/squeak Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.641]
^^ the CoInterpreter in the above is the interpreter class. If it was a Stack VM it would say StackInterpreter.
Unix built on Mar 28 2014 12:22:20 Compiler: 4.8.2
platform sources revision VM: r2881 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-13 20:45:37 -0400 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014 StackToRegisterMappingCogit VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014
Likewise these two are the names and package version for the interpreter and JIT classes.
Here's what a (Spur) Stack VM looks like on the Mac:
/Users/eliot/Cog/oscogvm/spurstackbuild/macbuild/Fast.app/Contents/MacOS/Squeak 4.0 4.0.2885 Mac OS X built on Mar 28 2014 12:25:04 Compiler: 4.2.1 (Apple Inc. build 5666) (dot 3) [Production Spur VM] StackInterpreter VMMaker.oscog-eem.658 uuid: e40c5fd5-9990-433f-bd76-2f8d0324e24f Mar 28 2014 VM: r2885 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-28 12:19:16 -0700 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins
The above gets printed by supplying the -version option to the VM.
If so, then we have a second data point of building a Stack Interpreter on
a 64 bit machine with 32 bit compat libs.
file squeak squeak: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
An interesting point of note is of note is that I was getting ready to debug a vm that would not run. It was built with this configure command.
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
and the result was a vm that built, but would hang waiting on what I believed was a signal.
Setting out to debug this non-running vm, I changed to -O2 flag to -Og which rhymes with 'd' and that spells "debugging".
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -Og -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
And, lo and behold, no more trouble in River City. It ran.
Thank you Eliot.
Live and learn. Althought I have yet to generate new Cog source from VMMaker, it is good to know I can compile and run it when I get that figured out. (:
It appears I was building existing source code for the Cog VM that came with the svn checkout.
I guess the next thing is to tell the configure script to use the Stack VM src that I did generate with VMMaker in oscogvm/stacksrc/
ok..I added these two flags to the configure --with-src=stacksrc --enable-cogit=false
and got a build error..
/home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10108: undefined reference to `minLargeHeaderSize' /home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10109: undefined reference to `sizeHeaderputBodySize' /home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10180: undefined reference to `sizeHeaderputBodySize
Which tells me it is looking in the correct place to build.
Sound about right?
cordially,
tty
---- On Fri, 28 Mar 2014 15:33:23 -0700 Eliot Miranda<eliot.miranda@gmail.com> wrote ----
On Fri, Mar 28, 2014 at 2:56 PM, gettimothy <gettimothy@zoho.com> wrote:
What is worse than things not working is when things start working and I don't know why.
After a hiatus in PHP land, I am back to Squeak Land and lo and behold, the Stack Interpreter 32 bit compiled and runs the 4.6 image.
You've compiled a Cog VM. Let me take you through the version output:
That is if what you see below is in fact the Stack Interpreter.
Please let me know if it is not
Image ----- /home/tty/usr/src/smalltalk/runStackVM32/Squeak4.6-13700.image Squeak4.6 latest update: #13700 Current Change Set: Unnamed1 Image format 6505 (32 bit)
Virtual Machine --------------- /home/wm/usr/local/stackVM32/lib/squeak/4.0-2881/squeak Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.641]
^^ the CoInterpreter in the above is the interpreter class. If it was a Stack VM it would say StackInterpreter.
Unix built on Mar 28 2014 12:22:20 Compiler: 4.8.2 platform sources revision VM: r2881 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-13 20:45:37 -0400 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014 StackToRegisterMappingCogit VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014
Likewise these two are the names and package version for the interpreter and JIT classes.
Here's what a (Spur) Stack VM looks like on the Mac:
/Users/eliot/Cog/oscogvm/spurstackbuild/macbuild/Fast.app/Contents/MacOS/Squeak 4.0 4.0.2885 Mac OS X built on Mar 28 2014 12:25:04 Compiler: 4.2.1 (Apple Inc. build 5666) (dot 3) [Production Spur VM] StackInterpreter VMMaker.oscog-eem.658 uuid: e40c5fd5-9990-433f-bd76-2f8d0324e24f Mar 28 2014 VM: r2885 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-28 12:19:16 -0700 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins
The above gets printed by supplying the -version option to the VM.
If so, then we have a second data point of building a Stack Interpreter on a 64 bit machine with 32 bit compat libs.
file squeak squeak: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
An interesting point of note is of note is that I was getting ready to debug a vm that would not run. It was built with this configure command.
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
and the result was a vm that built, but would hang waiting on what I believed was a signal.
Setting out to debug this non-running vm, I changed to -O2 flag to -Og which rhymes with 'd' and that spells "debugging".
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -Og -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
And, lo and behold, no more trouble in River City. It ran.
On Fri, Mar 28, 2014 at 4:02 PM, gettimothy gettimothy@zoho.com wrote:
Thank you Eliot.
Live and learn. Althought I have yet to generate new Cog source from VMMaker, it is good to know I can compile and run it when I get that figured out. (:
It appears I was building existing source code for the Cog VM that came with the svn checkout.
I guess the next thing is to tell the configure script to use the Stack VM src that I did generate with VMMaker in oscogvm/stacksrc/
ok..I added these two flags to the configure --with-src=stacksrc --enable-cogit=false
that's right. I would construct stackbuild/unixbuild and clone the various bld subdirectories and then edit their mvms so you don't have to run configure manually.
and got a build error..
/home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10108: undefined reference to `minLargeHeaderSize' /home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10109: undefined reference to `sizeHeaderputBodySize' /home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10180: undefined reference to `sizeHeaderputBodySize
Which tells me it is looking in the correct place to build.
right.
Sound about right?
yes, looks like you're on your way.
cordially,
tty
---- On Fri, 28 Mar 2014 15:33:23 -0700 *Eliot Miranda<eliot.miranda@gmail.com eliot.miranda@gmail.com>* wrote ----
On Fri, Mar 28, 2014 at 2:56 PM, gettimothy gettimothy@zoho.com wrote:
What is worse than things not working is when things start working and I don't know why.
After a hiatus in PHP land, I am back to Squeak Land and lo and behold, the Stack Interpreter 32 bit compiled and runs the 4.6 image.
You've compiled a Cog VM. Let me take you through the version output:
That is if what you see below is in fact the Stack Interpreter.
Please let me know if it is not
Image
/home/tty/usr/src/smalltalk/runStackVM32/Squeak4.6-13700.image Squeak4.6 latest update: #13700 Current Change Set: Unnamed1 Image format 6505 (32 bit)
Virtual Machine
/home/wm/usr/local/stackVM32/lib/squeak/4.0-2881/squeak Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.641]
^^ the CoInterpreter in the above is the interpreter class. If it was a Stack VM it would say StackInterpreter.
Unix built on Mar 28 2014 12:22:20 Compiler: 4.8.2 platform sources revision VM: r2881 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-13 20:45:37 -0400 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014 StackToRegisterMappingCogit VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014
Likewise these two are the names and package version for the interpreter and JIT classes.
Here's what a (Spur) Stack VM looks like on the Mac:
/Users/eliot/Cog/oscogvm/spurstackbuild/macbuild/Fast.app/Contents/MacOS/Squeak 4.0 4.0.2885 Mac OS X built on Mar 28 2014 12:25:04 Compiler: 4.2.1 (Apple Inc. build 5666) (dot 3) [Production Spur VM] StackInterpreter VMMaker.oscog-eem.658 uuid: e40c5fd5-9990-433f-bd76-2f8d0324e24f Mar 28 2014 VM: r2885 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-28 12:19:16 -0700 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins
The above gets printed by supplying the -version option to the VM.
If so, then we have a second data point of building a Stack Interpreter on a 64 bit machine with 32 bit compat libs.
file squeak squeak: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
An interesting point of note is of note is that I was getting ready to debug a vm that would not run. It was built with this configure command.
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
and the result was a vm that built, but would hang waiting on what I believed was a signal.
Setting out to debug this non-running vm, I changed to -O2 flag to -Og which rhymes with 'd' and that spells "debugging".
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -Og -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
And, lo and behold, no more trouble in River City. It ran.
-- best, Eliot
Thank you Eliot.
---- On Fri, 28 Mar 2014 16:07:37 -0700 Eliot Miranda<eliot.miranda@gmail.com> wrote ----
On Fri, Mar 28, 2014 at 4:02 PM, gettimothy <gettimothy@zoho.com> wrote:
Thank you Eliot.
Live and learn. Althought I have yet to generate new Cog source from VMMaker, it is good to know I can compile and run it when I get that figured out. (:
It appears I was building existing source code for the Cog VM that came with the svn checkout.
I guess the next thing is to tell the configure script to use the Stack VM src that I did generate with VMMaker in oscogvm/stacksrc/
ok..I added these two flags to the configure --with-src=stacksrc --enable-cogit=false
that's right. I would construct stackbuild/unixbuild and clone the various bld subdirectories and then edit their mvms so you don't have to run configure manually.
and got a build error..
/home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10108: undefined reference to `minLargeHeaderSize' /home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10109: undefined reference to `sizeHeaderputBodySize' /home/wm/usr/src/smalltalk/buildStackInterpreter/oscogvm/stacksrc/vm/gcc3x-interp.c:10180: undefined reference to `sizeHeaderputBodySize
Which tells me it is looking in the correct place to build.
right.
Sound about right?
yes, looks like you're on your way.
cordially,
tty
---- On Fri, 28 Mar 2014 15:33:23 -0700 Eliot Miranda<eliot.miranda@gmail.com> wrote ----
On Fri, Mar 28, 2014 at 2:56 PM, gettimothy <gettimothy@zoho.com> wrote:
What is worse than things not working is when things start working and I don't know why.
After a hiatus in PHP land, I am back to Squeak Land and lo and behold, the Stack Interpreter 32 bit compiled and runs the 4.6 image.
You've compiled a Cog VM. Let me take you through the version output:
That is if what you see below is in fact the Stack Interpreter.
Please let me know if it is not
Image ----- /home/tty/usr/src/smalltalk/runStackVM32/Squeak4.6-13700.image Squeak4.6 latest update: #13700 Current Change Set: Unnamed1 Image format 6505 (32 bit)
Virtual Machine --------------- /home/wm/usr/local/stackVM32/lib/squeak/4.0-2881/squeak Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.641]
^^ the CoInterpreter in the above is the interpreter class. If it was a Stack VM it would say StackInterpreter.
Unix built on Mar 28 2014 12:22:20 Compiler: 4.8.2 platform sources revision VM: r2881 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-13 20:45:37 -0400 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014 StackToRegisterMappingCogit VMMaker.oscog-eem.641 uuid: c0305b66-db2d-45aa-8d25-267732aa1784 Mar 28 2014
Likewise these two are the names and package version for the interpreter and JIT classes.
Here's what a (Spur) Stack VM looks like on the Mac:
/Users/eliot/Cog/oscogvm/spurstackbuild/macbuild/Fast.app/Contents/MacOS/Squeak 4.0 4.0.2885 Mac OS X built on Mar 28 2014 12:25:04 Compiler: 4.2.1 (Apple Inc. build 5666) (dot 3) [Production Spur VM] StackInterpreter VMMaker.oscog-eem.658 uuid: e40c5fd5-9990-433f-bd76-2f8d0324e24f Mar 28 2014 VM: r2885 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2014-03-28 12:19:16 -0700 Plugins: r2545 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins
The above gets printed by supplying the -version option to the VM.
If so, then we have a second data point of building a Stack Interpreter on a 64 bit machine with 32 bit compat libs.
file squeak squeak: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
An interesting point of note is of note is that I was getting ready to debug a vm that would not run. It was built with this configure command.
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
and the result was a vm that built, but would hang waiting on what I believed was a signal.
Setting out to debug this non-running vm, I changed to -O2 flag to -Og which rhymes with 'd' and that spells "debugging".
../../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -Og -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread --x-libraries=/usr/lib --prefix=/home/tty/usr/local/stackVM32
And, lo and behold, no more trouble in River City. It ran.
bah!
I have been working in the oscogvm/unixbuild directory and only now noticed the stackbuild/unixbuild tree with its own HowToBuild instructions.
My reasoning now is that Cog is the standard , so "src" and "unixbuild" etc belong to it (as it should) while "special stuff" like StackInterpreter etc are shuffled off to their own little world in stacksrc and stackbuild.
Thanks for your patience.
tty.
vm-dev@lists.squeakfoundation.org