TEST
|
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 <[hidden email]> 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
In reply to this post by 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... 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 - |
In reply to this post by Alan Grimes
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 ~ $ > > |
Free forum by Nabble | Edit this page |