experimental 3.5 VM

Ian Piumarta ian.piumarta at inria.fr
Tue Feb 11 00:52:52 UTC 2003


I would like all who are interested and have a few minutes to spare to
take a look at the brand new 3.5-1devel VM.  This VM is a significant
departure from 3.[24] and is still in flux -- so please feel free to
critique it and to suggest how it might be changed for the better.  
Nothing is cast in stone yet -- if you don't like the way it works, make a
case for changing how it works!  (If you are new to Squeak, or need a
rock-solid VM, stick with 3.4 [obviously ;].)

Here are the major departures from 3.2/3.4:

- MacOSX is now fully supported (Quartz window, CoreAudio sound
  input/output, drag&drop, etc.).  The VM can be installed as a
  clickable app and should behave like any other Cocoa application.
  (As usual, X11 is also supported -- when present on the host

- The core was generated out of a fully-updated Croquet image and runs
  Croquet fine.  The support code provides acceleration for both
  X11+GLX and Quartz+CoreGL.

- Display and sound support code has been moved out of the main
  executable into runtime modules.  The choice of display method
  (Quartz, X11, no display at all) and sound (CoreAudio, OSS, NAS,
  Sun, no sound at all) can be changed via command-line options when
  staring the VM.

- Memory allocation for the heap is now dynamic, based on mmap().  The
  heap will grow and shrink as the image's memory requirements change
  over time.  This can be disabled by giving the option `-memory
  <N>[nk]' which tells the VM to use a fixed-size heap.  A new option
  `-mmap <N>[mk]' is provided to limit the size to which mmap() will
  dynamically grow the heap (the default is 1Gbyte or 75% of your
  available virtual memory, whichever is smaller).  If both options
  are given then `-memory' has precedence (disabling the mmap()-based
  memory allocator).

- A new option `-nodisplay' has been added.  It differs from
  `-headless' in that the former disables display entirely (making the
  memory footprint of the VM smaller) while the latter loads the
  display code but does not open the Window (allowing the possibility
  of retroactively opening the window at a some later time using
  whichever is your favorite recapitation hack).

- A new option `-nosound' has been added and does for sound what
  `-nodisplay' does for the display.

- The configure option `--with-audio=...' has been removed.  configure
  will arrange to build as many sound modules for which it can find
  the required headers/libraries.

- configure will also build as many window system support modules for
  which it can find headers/libraries.  The options `--without-x' and
  `--without-quartz' are available to explicitly disable one or both.

I have put the following archives in the "development code" section of my
download page (aka "the usual place"):

	- clickable app bundle for MacOSX (Squeak.app) [1][3]

	- "unix-like" archive for Darwin/MacOSX (/usr/local/...) [2][3]

	- GNU/Linux PowerPC

	- GNU/Linux x86

	- full source code

Note that the manual page is still not quite updated.  (Sorry.  There
are only 24 hours in a day...)

Please feel free to send any and all feedback, suggestions, complaints,
bug reports, etc.  Enjoy!


[1] Does not require X11, although support for X11 is included if it's
    installed on the machine.

[2] Does not require Quartz, although support for Quartz is included if
    it's installed on the machine.

[3] In fact the binaries are identical.  They just install into different
    places and the .app bundle has the icon, resource and info files
    (which are omitted in the unixy archive).

More information about the Squeak-dev mailing list