This is the StackInterpreter?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
tty
Reply | Threaded
Open this post in threaded view
|

This is the StackInterpreter?

tty
 
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.


Reply | Threaded
Open this post in threaded view
|

Re: This is the StackInterpreter?

Eliot Miranda-2
 



On Fri, Mar 28, 2014 at 2:56 PM, gettimothy <[hidden email]> 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

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
tty
Reply | Threaded
Open this post in threaded view
|

Re: This is the StackInterpreter?

tty
 
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<[hidden email]> wrote ----




On Fri, Mar 28, 2014 at 2:56 PM, gettimothy <[hidden email]> 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

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

Reply | Threaded
Open this post in threaded view
|

Re: This is the StackInterpreter?

Eliot Miranda-2
 



On Fri, Mar 28, 2014 at 4:02 PM, gettimothy <[hidden email]> 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<[hidden email]> wrote ----




On Fri, Mar 28, 2014 at 2:56 PM, gettimothy <[hidden email]> 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

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





--
best,
Eliot
tty
Reply | Threaded
Open this post in threaded view
|

Re: This is the StackInterpreter?

tty
 
Thank you Eliot.





---- On Fri, 28 Mar 2014 16:07:37 -0700 Eliot Miranda<[hidden email]> wrote ----




On Fri, Mar 28, 2014 at 4:02 PM, gettimothy <[hidden email]> 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<[hidden email]> wrote ----




On Fri, Mar 28, 2014 at 2:56 PM, gettimothy <[hidden email]> 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

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





--
best,
Eliot

tty
Reply | Threaded
Open this post in threaded view
|

Re: This is the StackInterpreter?

tty
In reply to this post by tty
 

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.