[Vm-dev] This is the StackInterpreter?

gettimothy gettimothy at zoho.com
Sat Mar 29 00:06:44 UTC 2014


Thank you Eliot.





---- On Fri, 28 Mar 2014 16:07:37 -0700 Eliot Miranda<eliot.miranda at gmail.com> wrote ---- 


 


On Fri, Mar 28, 2014 at 4:02 PM, gettimothy <gettimothy at 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 at gmail.com> wrote ---- 
 

 


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

 


 





-- 
best,Eliot
 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140328/3cd91f5e/attachment.htm


More information about the Vm-dev mailing list