[Pharo-project] Compiling the VM for MacOSX
Hi! I followed the instruction given on: http://book.pharo-project.org/book/Virtual-Machine/Building/BuildVMOnOSX 134 errors are reported. Below the first line of the report: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Building target âSqueak VM Universalâ of project âSqueakVMUNIXPATHSâ with configuration âDevelopmentâ â (134 errors) cd /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer /Developer/usr/bin/gcc-4.2 -x c -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wmissing-prototypes -Wmissing-braces -Wparentheses -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wsign-compare -DHAVE_NANOSLEEP -DEXTERNALPRIMSDEBUG -DTARGET_API_MAC_CARBON -DSQUEAK_BUILTIN_PLUGIN -DHAVE_SYS_TIME_H -isysroot /Developer/SDKs/MacOSX10.5.sdk -mfix-and-continue -mmacosx-version-min=10.5 -gdwarf-2 "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/Squeak VM Opt.hmap" -DLSB_FIRST -mtune=prescott -march=pentium-m -mfpmath=sse -DUSE_INLINE_MEMORY_ACCESSORS -F/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/Development -F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks -I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/Development/include -I/Developer/SDKs/MacOSX10.5.sdk/Developer/Headers/FlatCarbon "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/DerivedSources/i386" "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/DerivedSources" -c /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/src/vm/intplugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c -o "/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/Objects-normal/i386/ADPCMCodecPlugin.o" i686-apple-darwin9-gcc-4.2.1: /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/src/vm/intplugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c: No such file or directory i686-apple-darwin9-gcc-4.2.1: warning: '-x c' after last input file has no effect i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Is there something wrong I did? Help is highly appreciated... Cheers, Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
"Unlike to the GNU/Linux platforms the Mac OSX way don't have pre-generated source, then if you want to recompile the VM you must generate the src from VMMaker (refer to VMMaker Chapter to do that)." I guess you skipped this step? Cheers, Henry Den 07.09.2010 15:18, skrev Alexandre Bergel:
Hi!
I followed the instruction given on: http://book.pharo-project.org/book/Virtual-Machine/Building/BuildVMOnOSX 134 errors are reported.
Below the first line of the report: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Building target âSqueak VM Universalâ of project âSqueakVMUNIXPATHSâ with configuration âDevelopmentâ â (134 errors) cd /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer /Developer/usr/bin/gcc-4.2 -x c -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wmissing-prototypes -Wmissing-braces -Wparentheses -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wsign-compare -DHAVE_NANOSLEEP -DEXTERNALPRIMSDEBUG -DTARGET_API_MAC_CARBON -DSQUEAK_BUILTIN_PLUGIN -DHAVE_SYS_TIME_H -isysroot /Developer/SDKs/MacOSX10.5.sdk -mfix-and-continue -mmacosx-version-min=10.5 -gdwarf-2 "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/Squeak VM Opt.hmap" -DLSB_FIRST -mtune=prescott -march=pentium-m -mfpmath=sse -DUSE_INLINE_MEMORY_ACCESSORS -F/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/Development -F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks -I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/Development/include -I/Developer/SDKs/MacOSX10.5.sdk/Developer/Headers/FlatCarbon "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/DerivedSources/i386" "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/DerivedSources" -c /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/src/vm/intplugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c -o "/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/Objects-normal/i386/ADPCMCodecPlugin.o" i686-apple-darwin9-gcc-4.2.1: /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/src/vm/intplugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c: No such file or directory i686-apple-darwin9-gcc-4.2.1: warning: '-x c' after last input file has no effect i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Is there something wrong I did?
Help is highly appreciated...
Cheers, Alexandre
"Unlike to the GNU/Linux platforms the Mac OSX way don't have pre-generated source, then if you want to recompile the VM you must generate the src from VMMaker (refer to VMMaker Chapter to do that)."
I guess you skipped this step?
thanks Henrik. Right, I unfortunately skipped this. Now, I am almost done, only one error left: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= mkdir "/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/build/Development/Squeak VM Opt.app/Contents/MacOS" cd /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM setenv MACOSX_DEPLOYMENT_TARGET 10.5 /Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk -L/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/build/Development -F/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/build/Development -F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks -filelist "/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/Objects-normal/i386/Squeak VM Opt.LinkFileList" -mmacosx-version-min=10.5 -framework CoreFoundation -framework Carbon -framework OpenGL -framework AGL -framework QuickTime -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Foundation -framework Cocoa -framework ApplicationServices -prebind -o "/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/build/Development/Squeak VM Opt.app/Contents/MacOS/Squeak VM Opt" Undefined symbols: "_setMicroSecondsandOffset", referenced from: _primitiveUtcWithOffset in interp.o ld: symbol(s) not found collect2: ld returned 1 exit status -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Where this _setMicroSecondsandOffset is defined? No idea whether this is related or not, but I had to leave TestOSAPlugin out when generating the vm code. This plugin cannot be produced apparently, a class is missing. Cheers, Alexandre
Cheers, Henry
Den 07.09.2010 15:18, skrev Alexandre Bergel:
Hi!
I followed the instruction given on:
http://book.pharo-project.org/book/Virtual-Machine/Building/BuildVMOnOSX
134 errors are reported.
Below the first line of the report: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Building target âSqueak VM Universalâ of project âSqueakVMUNIXPATHSâ with configuration âDevelopmentâ â (134 errors) cd /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer /Developer/usr/bin/gcc-4.2 -x c -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wmissing-prototypes -Wmissing-braces -Wparentheses -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wsign-compare -DHAVE_NANOSLEEP -DEXTERNALPRIMSDEBUG -DTARGET_API_MAC_CARBON -DSQUEAK_BUILTIN_PLUGIN -DHAVE_SYS_TIME_H -isysroot /Developer/SDKs/MacOSX10.5.sdk -mfix-and-continue -mmacosx-version-min=10.5 -gdwarf-2 "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/Squeak VM Opt.hmap" -DLSB_FIRST -mtune=prescott -march=pentium-m -mfpmath=sse -DUSE_INLINE_MEMORY_ACCESSORS -F/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/Development -F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks -I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/Development/include -I/D eveloper/SDKs/MacOSX10.5.sdk/Developer/Headers/FlatCarbon "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/DerivedSources/i386" "-I/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/DerivedSources" -c /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/src/vm/intplugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c -o "/Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/build/SqueakVMUNIXPATHS.build/Development/Squeak VM Universal.build/Objects-normal/i386/ADPCMCodecPlugin.o" i686-apple-darwin9-gcc-4.2.1: /Users/alexandrebergel/Desktop/SqueakVM/MyOwnVM/Developer/src/vm/intplugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c: No such file or directory i686-apple-darwin9-gcc-4.2.1: warning: '-x c' after last input file has no effect i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files i686-apple-darwin9-gcc-4.2.1: no input files -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Is there something wrong I did?
Help is highly appreciated...
Cheers, Alexandre
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Ah well actually you are attempting to build an obsolete VM. However we might as well ensure you can do that for historical reasons. I'm not sure why the setMicroSecondsandOffset does not resolve into a default setMicroSecondsandOffset in the interp.c since mine has /* A default substitute for unimplemented ioUtcWithOffset external function. */ sqInt setMicroSecondsandOffset(sqLong * microSeconds, int * utcOffset) { flag("toRemove"); return -1; } However buried in a email message from last March is a slight error which prevented the ioUtcWithOffset() defined in sqMacTime.c from being used. Therefore I've altered sqMacTime.c & sqPlatformSpecific.h in the Mac OS carbon SVN tree. You should check out a new copy of that. Ok, so building an obsolete VM might be fun and let's see if you can do it, but you should build a 5.x VM from the iOS tree. See platform/iOS/vm/SqueakPureObjc.xcodeproj in order to build SqueakPureObjc The cocoa based 5.x VM for OSX 32bit & 64bit supporting a 32bit image format SqueakPureObjc64*64 The cocoa based 5.x VM for OSX 64bit supporting a 64bit image format SqueakNoOGLIPhone The cocoa based 2.x VM for the iOS devices Also lurking in there is the SqueakPureObjcCogVM.xcodeproj which lets you build: SqueakNoOGLIPhone The cocoa based Cog Stack Based VM for iOS devices SqueakPureObjc The cocoa based Cog JIT VM for OSX 32bit. However that xcodeproj is still a work in progress and Eliot and I are still merging changes. Later open SqueakPureObjc.xcodeproj compile link you'll find a pre-existing src file that is somewhat current. Swap in a newer one if needbe. On 2010-09-07, at 10:00 AM, Alexandre Bergel wrote:
Undefined symbols: "_setMicroSecondsandOffset", referenced from: _primitiveUtcWithOffset in interp.o ld: symbol(s) not found collect2: ld returned 1 exit status -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Where this _setMicroSecondsandOffset is defined?
No idea whether this is related or not, but I had to leave TestOSAPlugin out when generating the vm code. This plugin cannot be produced apparently, a class is missing.
Cheers, Alexandre
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
Thanks, it works fine now. I use an obsolete version? Strange. I downloaded the lastest version of VMMaker. By the way, the produced vm is fairly slow. I do not know whether there is an option somewhere for inline or something... Thanks, Alexandre On 7 Sep 2010, at 15:05, John M McIntosh wrote:
Ah well actually you are attempting to build an obsolete VM. However we might as well ensure you can do that for historical reasons.
I'm not sure why the setMicroSecondsandOffset does not resolve into a default setMicroSecondsandOffset in the interp.c since mine has /* A default substitute for unimplemented ioUtcWithOffset external function. */
sqInt setMicroSecondsandOffset(sqLong * microSeconds, int * utcOffset) { flag("toRemove"); return -1; }
However buried in a email message from last March is a slight error which prevented the ioUtcWithOffset() defined in sqMacTime.c from being used. Therefore I've altered sqMacTime.c & sqPlatformSpecific.h in the Mac OS carbon SVN tree. You should check out a new copy of that.
Ok, so building an obsolete VM might be fun and let's see if you can do it, but you should build a 5.x VM from the iOS tree.
See platform/iOS/vm/SqueakPureObjc.xcodeproj in order to build SqueakPureObjc The cocoa based 5.x VM for OSX 32bit & 64bit supporting a 32bit image format SqueakPureObjc64*64 The cocoa based 5.x VM for OSX 64bit supporting a 64bit image format SqueakNoOGLIPhone The cocoa based 2.x VM for the iOS devices
Also lurking in there is the SqueakPureObjcCogVM.xcodeproj which lets you build: SqueakNoOGLIPhone The cocoa based Cog Stack Based VM for iOS devices SqueakPureObjc The cocoa based Cog JIT VM for OSX 32bit. However that xcodeproj is still a work in progress and Eliot and I are still merging changes.
Later open SqueakPureObjc.xcodeproj compile link you'll find a pre-existing src file that is somewhat current. Swap in a newer one if needbe.
On 2010-09-07, at 10:00 AM, Alexandre Bergel wrote:
Undefined symbols: "_setMicroSecondsandOffset", referenced from: _primitiveUtcWithOffset in interp.o ld: symbol(s) not found collect2: ld returned 1 exit status -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Where this _setMicroSecondsandOffset is defined?
No idea whether this is related or not, but I had to leave TestOSAPlugin out when generating the vm code. This plugin cannot be produced apparently, a class is missing.
Cheers, Alexandre
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On 2010-09-07, at 3:44 PM, Alexandre Bergel wrote:
Thanks, it works fine now.
I use an obsolete version? Strange. I downloaded the lastest version of VMMaker. By the way, the produced vm is fairly slow. I do not know whether there is an option somewhere for inline or something...
Thanks, Alexandre
Ah, you'll need to explain which VM you built? Also when you build you get to pick between DEBUG and Deployment/Release in OS-X and I assure you the DEBUG version is 10x slower than the non-debug one. Now. VMMaker translates a subset of Smalltalk known as Slang to C code. This is the core of the Virtual Machine and processes Smalltalk byte codes it reads from the Squeak Image to perform some obscure task... As Block Closures and Cog JIT work , UTC time, etc, have been added in the last year that has resulted in new versions of VMMaker since we are changing the functionality of the VM. However the VM is decoupled from the issue of the supporting platform, which progresses at a different rate. In order to run the VM on a particular hardware device/software platform the person wanting to port the VM has to follow documentation such as found as http://isqueak.org/PlatformVMAPI to create the platform specific API to enable a user of the device to enter UI input and have the VM produce some form of output (may or may not be visual). The 'Mac OS' folder contains platform code to build a carbon based OS-X system which has it's roots in Apple's OS 7.5.x from 1991. This evolved over the years to support OS-X as an 'OS-X legacy carbon application' and is known as the 3.x series before MacIntel machines, and 4.x after MacIntel with 4.2.5 being the last shipped version. In June of 2008 the ESUG board provided funding to assist in the development of the platform files for the iPhone, further funding granted in October of 2009 enabled us to rebuild a new set of platform files for OS-X and iOS that (a) Bring the macintosh os-x platform support code up to the latest version of API support using Cocoa. (b) Enable the ability of the VM & API to run in 32 bit or 64 bit mode on MacIntel or PowerPC. * (c) Enable the ability to run the VM in 64 bit mode working with a 32 bit image (d) Enable the ability to run the VM in 64 bit mode working with a 64 bit image. (e) Rewrite the Squeak in the Browser api to work with Apple's 64 bit requirements. *Cough* pending... This resulted in the current 5.x series, which support 32bit/64bit VM on os-x against a 32bit or 64bit image, or a 32bit VM with 32bit image on iOS devices. Work from teleplace also offers a 32bit vm in stack or JIT implementation against a 32bit image. *Apple did not supply 64bit versions of the GUI for the PowerPC which makes it impossible to offer a 64bit compiled VM on the PowerPC because one lacks a Graphical User Interface. -- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
Thanks John for this explanation.
Ah, you'll need to explain which VM you built? Also when you build you get to pick between DEBUG and Deployment/Release in OS-X and I assure you the DEBUG version is 10x slower than the non-debug one.
I downloaded the platforms folder with "svn co http://squeakvm.org/svn/squeak/trunk/platforms/" Generating the last version of the VM Source raises some error: - findLastOccurranceOfString:startingAt: does not exist. I had to replace it by findLastOccurrenceOfString:startingAt: - fixTemps is sent many times. I had to remove the deprecation error message to proceed with the generation How long time does it take to generate the source? My macbook pro has turned itself into a furnace about 30 minutes ago. Pass 18 is indicated, 50% of the progress bar. John, will you be at esug? Cheers, Alexandre
Now.
VMMaker translates a subset of Smalltalk known as Slang to C code. This is the core of the Virtual Machine and processes Smalltalk byte codes it reads from the Squeak Image to perform some obscure task... As Block Closures and Cog JIT work , UTC time, etc, have been added in the last year that has resulted in new versions of VMMaker since we are changing the functionality of the VM.
However the VM is decoupled from the issue of the supporting platform, which progresses at a different rate.
In order to run the VM on a particular hardware device/software platform the person wanting to port the VM has to follow documentation such as found as http://isqueak.org/PlatformVMAPI to create the platform specific API to enable a user of the device to enter UI input and have the VM produce some form of output (may or may not be visual).
The 'Mac OS' folder contains platform code to build a carbon based OS-X system which has it's roots in Apple's OS 7.5.x from 1991. This evolved over the years to support OS-X as an 'OS-X legacy carbon application' and is known as the 3.x series before MacIntel machines, and 4.x after MacIntel with 4.2.5 being the last shipped version.
In June of 2008 the ESUG board provided funding to assist in the development of the platform files for the iPhone, further funding granted in October of 2009 enabled us to rebuild a new set of platform files for OS-X and iOS that
(a) Bring the macintosh os-x platform support code up to the latest version of API support using Cocoa. (b) Enable the ability of the VM & API to run in 32 bit or 64 bit mode on MacIntel or PowerPC. * (c) Enable the ability to run the VM in 64 bit mode working with a 32 bit image (d) Enable the ability to run the VM in 64 bit mode working with a 64 bit image. (e) Rewrite the Squeak in the Browser api to work with Apple's 64 bit requirements. *Cough* pending...
This resulted in the current 5.x series, which support 32bit/64bit VM on os-x against a 32bit or 64bit image, or a 32bit VM with 32bit image on iOS devices. Work from teleplace also offers a 32bit vm in stack or JIT implementation against a 32bit image.
*Apple did not supply 64bit versions of the GUI for the PowerPC which makes it impossible to offer a 64bit compiled VM on the PowerPC because one lacks a Graphical User Interface.
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On 09.09.2010 22:01, Alexandre Bergel wrote:
Thanks John for this explanation.
Ah, you'll need to explain which VM you built? Also when you build you get to pick between DEBUG and Deployment/Release in OS-X and I assure you the DEBUG version is 10x slower than the non-debug one. I downloaded the platforms folder with "svn co http://squeakvm.org/svn/squeak/trunk/platforms/"
Generating the last version of the VM Source raises some error: - findLastOccurranceOfString:startingAt: does not exist. I had to replace it by findLastOccurrenceOfString:startingAt: - fixTemps is sent many times. I had to remove the deprecation error message to proceed with the generation
How long time does it take to generate the source? My macbook pro has turned itself into a furnace about 30 minutes ago. Pass 18 is indicated, 50% of the progress bar.
John, will you be at esug?
Cheers, Alexandre Search the vm-dev list (or this one) to find solutions to these issues when using VMMaker in a Pharo image.
Cheers, Henry
On 2010-09-09, at 1:01 PM, Alexandre Bergel wrote:
Thanks John for this explanation.
Ah, you'll need to explain which VM you built? Also when you build you get to pick between DEBUG and Deployment/Release in OS-X and I assure you the DEBUG version is 10x slower than the non-debug one.
I downloaded the platforms folder with "svn co http://squeakvm.org/svn/squeak/trunk/platforms/"
Ok go to platforms/iOS/vm/ double click on SqueakPureObjc.xcodeproj select the Distribution, SqueakPureObjc execute build *done* Your other choices are SqueakNoOGLIPhone to build the iphone vm SqueakPureObjc64*64 to build a 64 bit vm for use with a 64bit squeak image. The other xcode project SqueakPureObjcCogVM.xcodeproj builds a cog stack VM for the iphone, or a cog JIT VM for os-x in 32bit mode only. -- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
Thanks John. It works well! I can update the pharo book about this, but I am not sure how. The instruction given by the book to compile the OSX VM is fairly different from what you said (which works!) Cheers, Alexandre On 10 Sep 2010, at 00:24, John M McIntosh wrote:
On 2010-09-09, at 1:01 PM, Alexandre Bergel wrote:
Thanks John for this explanation.
Ah, you'll need to explain which VM you built? Also when you build you get to pick between DEBUG and Deployment/Release in OS-X and I assure you the DEBUG version is 10x slower than the non-debug one.
I downloaded the platforms folder with "svn co http://squeakvm.org/svn/squeak/trunk/platforms/"
Ok go to platforms/iOS/vm/ double click on SqueakPureObjc.xcodeproj select the Distribution, SqueakPureObjc execute build
*done*
Your other choices are SqueakNoOGLIPhone to build the iphone vm SqueakPureObjc64*64 to build a 64 bit vm for use with a 64bit squeak image.
The other xcode project SqueakPureObjcCogVM.xcodeproj
builds a cog stack VM for the iphone, or a cog JIT VM for os-x in 32bit mode only.
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On 2010-09-11, at 7:34 AM, Alexandre Bergel wrote:
Thanks John. It works well! I can update the pharo book about this, but I am not sure how. The instruction given by the book to compile the OSX VM is fairly different from what you said (which works!)
The instructions seems to target building a VM from April of 2009. Lots has changed since then to make the process of building a Cocoa OS-X VM to match a distributed pre-built VM version more of a one-step process. Otherwise it's just too hard to mesh the pieces together between an arbitrary squeak image, vmmaker, and the source from squeakvm.org -- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
The instructions seems to target building a VM from April of 2009. Lots has changed since then to make the process of building a Cocoa OS-X VM to match a distributed pre-built VM version more of a one-step process.
Otherwise it's just too hard to mesh the pieces together between an arbitrary squeak image, vmmaker, and the source from squeakvm.org
which is a bit sad. Because we cannot run an hudson srever to automatically build vms. I do not really understand why this would not be possible. Stef
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
which is a bit sad. Because we cannot run an hudson srever to automatically build vms. I do not really understand why this would not be possible.
Indeed, it would be nice to have that Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Mon, Sep 13, 2010 at 10:13 AM, Alexandre Bergel <alexandre@bergel.eu>wrote:
which is a bit sad. Because we cannot run an hudson srever to automatically build vms. I do not really understand why this would not be possible.
Indeed, it would be nice to have that
A screencast would be cool too :) Laurent Laffont http://pharocasts.blogspot.com/ http://magaloma.blogspot.com/
Alexandre
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
alex do not forget to update the web page with the information you learned. On Sep 8, 2010, at 12:44 AM, Alexandre Bergel wrote:
Thanks, it works fine now.
I use an obsolete version? Strange. I downloaded the lastest version of VMMaker. By the way, the produced vm is fairly slow. I do not know whether there is an option somewhere for inline or something...
Thanks, Alexandre
On 7 Sep 2010, at 15:05, John M McIntosh wrote:
Ah well actually you are attempting to build an obsolete VM. However we might as well ensure you can do that for historical reasons.
I'm not sure why the setMicroSecondsandOffset does not resolve into a default setMicroSecondsandOffset in the interp.c since mine has /* A default substitute for unimplemented ioUtcWithOffset external function. */
sqInt setMicroSecondsandOffset(sqLong * microSeconds, int * utcOffset) { flag("toRemove"); return -1; }
However buried in a email message from last March is a slight error which prevented the ioUtcWithOffset() defined in sqMacTime.c from being used. Therefore I've altered sqMacTime.c & sqPlatformSpecific.h in the Mac OS carbon SVN tree. You should check out a new copy of that.
Ok, so building an obsolete VM might be fun and let's see if you can do it, but you should build a 5.x VM from the iOS tree.
See platform/iOS/vm/SqueakPureObjc.xcodeproj in order to build SqueakPureObjc The cocoa based 5.x VM for OSX 32bit & 64bit supporting a 32bit image format SqueakPureObjc64*64 The cocoa based 5.x VM for OSX 64bit supporting a 64bit image format SqueakNoOGLIPhone The cocoa based 2.x VM for the iOS devices
Also lurking in there is the SqueakPureObjcCogVM.xcodeproj which lets you build: SqueakNoOGLIPhone The cocoa based Cog Stack Based VM for iOS devices SqueakPureObjc The cocoa based Cog JIT VM for OSX 32bit. However that xcodeproj is still a work in progress and Eliot and I are still merging changes.
Later open SqueakPureObjc.xcodeproj compile link you'll find a pre-existing src file that is somewhat current. Swap in a newer one if needbe.
On 2010-09-07, at 10:00 AM, Alexandre Bergel wrote:
Undefined symbols: "_setMicroSecondsandOffset", referenced from: _primitiveUtcWithOffset in interp.o ld: symbol(s) not found collect2: ld returned 1 exit status -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Where this _setMicroSecondsandOffset is defined?
No idea whether this is related or not, but I had to leave TestOSAPlugin out when generating the vm code. This plugin cannot be produced apparently, a class is missing.
Cheers, Alexandre
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (6)
-
Alexandre Bergel -
Henrik Johansen -
Henrik Sperre Johansen -
John M McIntosh -
laurent laffont -
Stéphane Ducasse