O'NEEL Bruce wrote:
Hi, I've poked at Squeak on my Mac at home, as well on the Solaris box at work, and I'm not sure I see how to extract the C source and build a VM from the distributed images. Could someone please point me to a howto?
Bruce,
A brave undertaking. On a Macintosh, generating a VM is a multi step process.
First generate the source code for the interpreter.
Time millisecondsToRun: [ Interpreter translate: 'interp.c' doInlining: true. Smalltalk beep]
( this is taken from the Interpreter class ; category --translation ). Depending on the speed of your machine, this may take a while to run. This process generates the interpreter, memory manager, BitBlt, etc.
Then generate the support code for the interpreter:
InterpreterSupportCode writeMacSourceFiles
This writes all the source files for the runtime/hardware support code to the current image directory. I usually place all of the generated files into a new folder before compiling. On the Mac, a stuff-it file called 'projectArchive.sit' is generated. Unstuffing reveals two CodeWarrior 8 project files, Squeak68K.proj and SqueakPPC.proj. (BTW, CodeWarrior is a C language "development environment"). Compile these puppies. Almost magically, a couple of new Squeak VMs are generated.
VM generation for other machine platforms is usually a little different. Generally, the platform support ftp/web sit has the source code and the make files for that platform.
As a sidebar, Interpreter generates itself through a Smalltalk to C translation mechanism, which is implemented through class CCodeGenerator. This is a useful tidbit should you decide to modify the VM yourself.
Amaze your friends !!! Confuse your enemies !!! Build your own Squeak VM.
jb
squeak-dev@lists.squeakfoundation.org