This is with the current SVN sources and a freshly generated interpreter from a clean, fully updated, 3.8 image.
I have not been able to build a VM in 6 months or so... What happened to the good old days when the VM would always build and the only errors were a result of my own ill-advised hacks?
FFI needs to work in order to support Croquet... =\
atg@leenooks ~/source/trunk/bld $ make make[1]: `vm.a' is up to date. make[1]: `ADPCMCodecPlugin.a' is up to date. make[1]: `AsynchFilePlugin.a' is up to date. make[1]: `B3DAcceleratorPlugin.a' is up to date. make[1]: `Squeak3D.a' is up to date. make[1]: `B2DPlugin.a' is up to date. make[1]: `BitBltPlugin.a' is up to date. make[1]: `BMPReadWriterPlugin.a' is up to date. make[1]: `ZipPlugin.a' is up to date. make[1]: `DropPlugin.a' is up to date. make[1]: `DSAPrims.a' is up to date. gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/atg/source/trunk/bld -I/home/atg/source/trunk/platforms/unix/vm -I /home/atg/source/trunk/platforms/Cross/vm -I/home/atg/source/trunk/src/vm -I/home/atg/source/trunk/platforms/Cross/plugins/SqueakFFIPrims -I/home/atg/source/trunk /platforms/unix/plugins/SqueakFFIPrims -c -o SqueakFFIPrims.o /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c In file included from /home/atg/source/trunk/platforms/Cross/vm/sqVirtualMachine.h:15, from /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:14: /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:25:3: warning: #warning /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:26:3: warning: #warning *************************************************** /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:27:3: warning: #warning * /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:28:3: warning: #warning * interp.h not found -- defaulting to a 32-bit VM /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:29:3: warning: #warning * /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:30:3: warning: #warning * update your image-side VM sources to the latest /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:31:3: warning: #warning * version to avoid this message /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:32:3: warning: #warning * /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:33:3: warning: #warning *************************************************** /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:34:3: warning: #warning /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:31:1: warning: "byteAt" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:122:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:32:1: warning: "byteAtput" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:123:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:33:1: warning: "longAt" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:129:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:34:1: warning: "longAtput" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:130:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `addressOfstartingAtsize': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:172: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiArgumentSpecClass': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:418: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:441: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:511: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiAtomicStructByReferenceClass': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:805: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiContentsOfHandleerrCode': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:1189: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiLoadCalloutAddress': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:1592: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiLoadCalloutModule': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:1661: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiPushPointerContentsOf': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:1700: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiPushStructureContentsOf': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:1805: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:1828: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `ffiValidateExternalDataAtomicType': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:1978: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c: In function `primitiveForceLoad': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/SqueakFFIPrims.c:2638: error: structure has no member named `fetchWordofObject' make[1]: *** [SqueakFFIPrims.o] Error 1 make: *** [SqueakFFIPrims/SqueakFFIPrims.a] Error 2 atg@leenooks ~/source/trunk/bld $
Actually if you generate a new VM using the latest VMMaker, ask Tim, you will find it will generate a backwards compatible entry point so that older versions of the FFI plugin will still work
However I'm not sure you've generated a new vm and ffi plugin because of the warning messages you have received below
#warning * interp.h not found -- defaulting to a 32-bit VM The unix vm config process builds this file.
#warning * update your image-side VM sources to the latest #warning * version to avoid this message
On 19-Jun-05, at 9:05 PM, Alan Grimes wrote:
This is with the current SVN sources and a freshly generated interpreter from a clean, fully updated, 3.8 image.
I have not been able to build a VM in 6 months or so... What happened to the good old days when the VM would always build and the only errors were a result of my own ill-advised hacks?
FFI needs to work in order to support Croquet... =\
atg@leenooks ~/source/trunk/bld $ make make[1]: `vm.a' is up to date. make[1]: `ADPCMCodecPlugin.a' is up to date. make[1]: `AsynchFilePlugin.a' is up to date. make[1]: `B3DAcceleratorPlugin.a' is up to date. make[1]: `Squeak3D.a' is up to date. make[1]: `B2DPlugin.a' is up to date. make[1]: `BitBltPlugin.a' is up to date. make[1]: `BMPReadWriterPlugin.a' is up to date. make[1]: `ZipPlugin.a' is up to date. make[1]: `DropPlugin.a' is up to date. make[1]: `DSAPrims.a' is up to date. gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/atg/source/trunk/bld -I/home/atg/source/trunk/platforms/unix/vm -I /home/atg/source/trunk/platforms/Cross/vm -I/home/atg/source/trunk/src/vm -I/home/atg/source/trunk/platforms/Cross/plugins/SqueakFFIPrims -I/home/atg/source/trunk /platforms/unix/plugins/SqueakFFIPrims -c -o SqueakFFIPrims.o /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c In file included from /home/atg/source/trunk/platforms/Cross/vm/sqVirtualMachine.h:15, from /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:14: /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:25:3: warning: #warning /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:26:3: warning: #warning *************************************************** /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:27:3: warning: #warning * /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:28:3: warning: #warning * interp.h not found -- defaulting to a 32-bit VM /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:29:3: warning: #warning * /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:30:3: warning: #warning * update your image-side VM sources to the latest /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:31:3: warning: #warning * version to avoid this message /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:32:3: warning: #warning * /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:33:3: warning: #warning *************************************************** /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:34:3: warning: #warning /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:31:1: warning: "byteAt" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:122:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:32:1: warning: "byteAtput" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:123:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:33:1: warning: "longAt" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:129:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:34:1: warning: "longAtput" redefined /home/atg/source/trunk/platforms/Cross/vm/sqMemoryAccess.h:130:1: warning: this is the location of the previous definition /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `addressOfstartingAtsize': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:172: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiArgumentSpecClass': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:418: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:441: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:511: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiAtomicStructByReferenceClass': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:805: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiContentsOfHandleerrCode': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:1189: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiLoadCalloutAddress': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:1592: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiLoadCalloutModule': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:1661: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiPushPointerContentsOf': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:1700: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiPushStructureContentsOf': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:1805: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:1828: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `ffiValidateExternalDataAtomicType': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:1978: error: structure has no member named `fetchWordofObject' /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c: In function `primitiveForceLoad': /home/atg/source/trunk/src/vm/intplugins/SqueakFFIPrims/ SqueakFFIPrims.c:2638: error: structure has no member named `fetchWordofObject' make[1]: *** [SqueakFFIPrims.o] Error 1 make: *** [SqueakFFIPrims/SqueakFFIPrims.a] Error 2 atg@leenooks ~/source/trunk/bld $
-- ======================================================================== === John M. McIntosh johnmci@smalltalkconsulting.com 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== ===
Last time I complained about the lack of VM API documentation someone mentioned an obscure out-of print book that documents an obsolete version of the interface...
Well, I need it.
Mr. Boyce has offered me a sweet comission to port the thing to an OS that Doesn't Completely Suck(tm)
This means I need the inf0z...
=\
I'm looking at Duncasse's archive but I'm not sure which title I'm looking for...
Am 21.06.2005 um 08:24 schrieb Alan Grimes:
Last time I complained about the lack of VM API documentation someone mentioned an obscure out-of print book that documents an obsolete version of the interface...
It's neither out of print nor obsolete:
http://www.amazon.com/exec/obidos/ASIN/0130280917/ ref=sc_b_1/107-4328705-5154919
- Bert -
atg@leenooks ~ $ squeak -version 3.7b-5 #1 Wed Oct 20 07:10:59 EST 2004 gcc 3.3.4 Squeak3.7 of '4 September 2004' [latest update: #5989] Linux leenooks 2.4.27 #2 SMP Wed Aug 18 05:52:55 EST 2004 i686 AMD Athlon(tm) Processor AuthenticAMD GNU/Linux default plugin location: /usr/local/lib/squeak/3.7b-5/*.so atg@leenooks ~ $
---------------------------------------------- 1 tinyBenchmarks. '122 137 404 bytecodes/sec; 4 133 412 sends/sec' // WORKHORSE ##################
atg@leenooks ~ $ source/Squeak-3.7b-5/bld/squeak -version 3.7b-5 #1 Wed Jun 22 21:06:31 EST 2005 gcc 3.4.4 Squeak3.7beta of '1 April 2004' [latest update: #5868]
[[[ note, I can't generate a working interp.c with my 3.8 image, using the default sources. ]]]]
Linux leenooks 2.6.12 #1 SMP Sat Jun 18 16:46:08 EST 2005 i686 AMD Athlon(tm) Processor AuthenticAMD GNU/Linux default plugin location: /usr/local/lib/squeak/3.7b-5/*.so atg@leenooks ~ $
----------------------------------------- ' 69 189 189 bytecodes/sec; 3 338 403 sends/sec' // -march=athlon-mp -O3 ' 68 412 613 bytecodes/sec; 3 356 407 sends/sec' // DEFAULT 3.7 beta #####################
Comment:
Gcc 3.1.0 had problems with its optimizer such that it inserted worthless register loads into the instruction stream -- maybe that bug is back.....
With gcc 3.1, the performance saw a substantial improvment when it was compiled with -O0 -- that was not the case this time...
With -O1, however, there was a substantial improvment, though still much worse than my workhorse VM...
' 72 072 072 bytecodes/sec; 3 465 884 sends/sec. //-march=athlon-mp -O1 ' 49 306 625 bytecodes/sec; 1 690 230 sends/sec' // -march=athlon-mp -O0
File size comparison: ###################### atg@leenooks ~ $ ls -l source/Squeak-3.7b-5/bld/squeak -rwxr-xr-x 1 atg users 936148 Jun 22 21:06 source/Squeak-3.7b-5/bld/squeak atg@leenooks ~ $ ls -l /usr/local/lib/squeak/3.7b-5/squeak -rwxr-xr-x 1 root root 866604 Oct 20 2004 /usr/local/lib/squeak/3.7b-5/squeak atg@leenooks ~ $
And the lesson is: Stick with the compiler that produces the best code, not the highest version number. I'm still using 2.95.2 on Windows and as long as there isn't a GCC version which is at least at par with 2.95 on x86 (all other versions I've tried where substantially slower) I won't switch ;-)
Cheers, - Andreas
Alan Grimes wrote:
atg@leenooks ~ $ squeak -version 3.7b-5 #1 Wed Oct 20 07:10:59 EST 2004 gcc 3.3.4 Squeak3.7 of '4 September 2004' [latest update: #5989] Linux leenooks 2.4.27 #2 SMP Wed Aug 18 05:52:55 EST 2004 i686 AMD Athlon(tm) Processor AuthenticAMD GNU/Linux default plugin location: /usr/local/lib/squeak/3.7b-5/*.so atg@leenooks ~ $
1 tinyBenchmarks. '122 137 404 bytecodes/sec; 4 133 412 sends/sec' // WORKHORSE ##################
atg@leenooks ~ $ source/Squeak-3.7b-5/bld/squeak -version 3.7b-5 #1 Wed Jun 22 21:06:31 EST 2005 gcc 3.4.4 Squeak3.7beta of '1 April 2004' [latest update: #5868]
[[[ note, I can't generate a working interp.c with my 3.8 image, using the default sources. ]]]]
Linux leenooks 2.6.12 #1 SMP Sat Jun 18 16:46:08 EST 2005 i686 AMD Athlon(tm) Processor AuthenticAMD GNU/Linux default plugin location: /usr/local/lib/squeak/3.7b-5/*.so atg@leenooks ~ $
' 69 189 189 bytecodes/sec; 3 338 403 sends/sec' // -march=athlon-mp -O3 ' 68 412 613 bytecodes/sec; 3 356 407 sends/sec' // DEFAULT 3.7 beta #####################
Comment:
Gcc 3.1.0 had problems with its optimizer such that it inserted worthless register loads into the instruction stream -- maybe that bug is back.....
With gcc 3.1, the performance saw a substantial improvment when it was compiled with -O0 -- that was not the case this time...
With -O1, however, there was a substantial improvment, though still much worse than my workhorse VM...
' 72 072 072 bytecodes/sec; 3 465 884 sends/sec. //-march=athlon-mp -O1 ' 49 306 625 bytecodes/sec; 1 690 230 sends/sec' // -march=athlon-mp -O0
File size comparison: ###################### atg@leenooks ~ $ ls -l source/Squeak-3.7b-5/bld/squeak -rwxr-xr-x 1 atg users 936148 Jun 22 21:06 source/Squeak-3.7b-5/bld/squeak atg@leenooks ~ $ ls -l /usr/local/lib/squeak/3.7b-5/squeak -rwxr-xr-x 1 root root 866604 Oct 20 2004 /usr/local/lib/squeak/3.7b-5/squeak atg@leenooks ~ $
vm-dev@lists.squeakfoundation.org