[Squeak home] [English] [Japanese]

Squeak: An additional note for "Hacking Squeak With Apple MPW"

Squeak!
Updated: Jun 8, 1999.
  1. You must read before going further
  2. preparation
  3. to do before starting MPW
  4. Let's re-build!
    1. generating sorce codes
    2. recompiling with MPW
    3. patch out the unneccesary range check
  5. get new VM!
  6. benchmark

Sat, 5 Jun 1999 22:10:52 -0400, there is the post "Hacking Squeak With Apple MPW," by Mr. Andrew C. Greenberg at Squeak-ML. This is a brief additional note of it with MPW 3.4.3, Squeak 2.4b VM and 2.4c image.

You must read before going further

FAQ: Building PowerPC Squeak VMs with MPW by Andrew C. Greenberg.

preparation

  1. MPW (Macintosh Programmer's Workshop)
    using MPW-GM (Golden Master means "final") version with MPW Shell version 3.4.3 (Oct 14, 1998). I don't have a MPW-PR (Pre-Release) version set.
  2. Squeak 2.4 base
    VM; 2.4b, image; 2.4c
  3. MPWInterpreterBuilder.cs
    FAQ: Building PowerPC Squeak VMs with MPW by Andrew C. Greenberg.

to do before starting MPW

MPW shell is assigned 8MB memory as default. You must assign 24MB at least or more for it. If less, MPW will shout "Ran out of memory (aborting)" and be terminated, while compiling "interp.c".

Let's re-build!

generating sorce codes

  1. start Squeak and filein "MPWInterpreterBuilder.cs"
  2. to generate source codes from original Squeak, evaluate below; It will generate 30 files more.
    1. InterpreterSupportCode writeMacMPWSourceFiles.
    2. Interpreter translate: 'interp.c' doInlining: true.
    3. B3DEnginePlugin translateB3D.
  3. quit Squeak

recompiling with MPW

  1. make working directory MPWsq (default directory)
  2. make sub directory src, obj, squeak, doc
  3. move files *.c, *.h, *.r to src from Squeak directory
  4. move "readme" to doc from Squeak directory
  5. change makefile
    MPWsqueak.make
    SqueakSources = :src:
    SqueakFolder = :squeak:
    ObjDirPPC = :obj:
    MPWsqueak3D.make
    SqueakSources = :src:
    SqueakFolder = :squeak:
    ObjDirPPC = :obj:
  6. start MPW and do build!
    to make MPWsqueak...
    "Build..." from the "Build" menu, type "MPWsqueak"
    to make MPWSqueak3D shlb...
    build as above and type "MPWSqueak3D"

patch out the unneccesary range check

  1. evaluate below;
    1. Interpreter patchInterp: 'MPWsqueak'.
The second comment from Interpreter (c) >> patchInterp:
This will patch out the unneccesary range check (a compare and branch) in the inner interpreter dispatch loop.

get new VM!

Here are your new MPWsqueak and Squeak 3D Engine.

mpw directory

Now MPWsqueak has new BNDL resource!

mpwsq has new BNDL resource

benchmark

benchmark result


Created: Jun 8, 1999
[Squeak home] [English] [Japanese]