Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
J3
Last updated at 7:35 pm UTC on 11 December 2006
(This page is somewhat out of date. As of early 2003, Ian is now working on DynamicTranslation.)

J3 is the current JITter (Just-In-Time) DynamicTranslation VM project being worked on by Ian Piumarta and others. It offers significant performance improvements over the standard interpreted Squeak VM. Building it can be a smidge tricky, so there's a small J3 guide.



There is a paper about J3 by Ian:
http://www-sor.inria.fr/~piumarta/squeak/unix/zip/j3-2.6.0/doc/j3/
Warning: itīs somewhat out of date, but it can give some good hints
about the overall architecture...

Performance:

interp: '43805612 bytecodes/sec; 1325959 sends/sec'
J3: '135665076 bytecodes/sec; 8100691 sends/sec'

ratios: bytecodes are 3.1x faster, sends are 6.11x faster than the interpreted Squeak VM.

Mac G4/450 Mhz.

Of course, you wonīt see such a speed-up in real-world code.
Squeak spends much time in primitives. Danīs "macroBenchmarks"
show a speedup of about a factor 2.

- Stefan Matthias Aust


Here you find various sources and binaries:
http://www-sor.inria.fr/~piumarta/squeak/unix/
http://irafs1.ira.uka.de/~marcus/Squeak/j3/
http://isgwww.cs.uni-magdeburg.de/~raab/squeak/alpha/ (alpha Windows VM)




A message from Ian Piumarta to the Squeak list, Aug 27 2001:

I'm looking for volunteers who would be willing to donate time to the
initial testing of j4. (The object of this exercise is to find cruel
and unusual ways of crashing VMs, so it's not for the squeamish. ;)

Prerequisites for this particular game are: a POSIX box (Unix,
GNU/Linux, etc.), ANSI C and C++ compilers, a good debugger (gdb, for
example), a working 3.1a-4164 installation, and (lots of) patience.

If you'd like to help out then please send mail to me directly (not
a reply to the list). Thanks!

Ian