3.3.1 for Unix

Ian Piumarta ian.piumarta at inria.fr
Fri Jun 7 05:50:12 UTC 2002


Folks,

3.3.1 (whatever that means) for Unix is available (as source and
binary for a few platforms) from the usual place:

    http://www-sor.inria.fr/~piumarta/squeak/unix/release/
	Squeak-3.3.1-src.tar.gz
	Squeak-3.3.1-i686-pc-linux-gnu.tar.gz
	Squeak-3.3.1-powerpc-linux-gnu.tar.gz
	Squeak-3.3.1-sparc-sun-solaris2.8.tar.gz

plus a couple of images:

	Squeak-3.3.1-image-3.2gamma-4881.tar.gz
	Squeak-3.3.1-image-3.3alpha-4881.tar.gz

(VMMaker works fine in 3.2g, but 3.3a has a bug in the module system
that you'll have to find and correct [left as an exercise, to weed out
casual hackers] before VMM will generate BallonEngine [1].)

Note that:
  i. in the above binaries all plugins are built internal except
     B3DAcceleratorPlugin which is external (so that people who do not
     have libGL can still run the prebuilt VMs);
 ii. B3DAccel is disabled on Solaris because (at least my) openwin
     doesn't have OpenGL;
iii. on Linux you'll probably need a fairly recent glibc [at least
     2.2.4 on 386, or 2.2.5 on ppc] installed (if anyone needs
     statically-linked binaries, let me know);
 iv. binaries for BSD will arrive the next time I reboot my PowerBook;
     and
  v. inisqueak is now part of the image tarballs because it depends
     on the image version (which is no longer the same as the VM
     version).

The release notes are attached.  Bug reports mailed to me will be
rewarded with a bug fix.

Enjoy!

Ian

[1] I'm not really that mean.  You send me mail, I send you the
    changeset [2].

[2] Or just look for `BallonModuleFix-ikp.cs' in my "devel" tree.

----8<-------- snippety --------8<-------- snip --------8<----

This VM should work with any 3.3 or earlier image.

The major changes since 3.1-pre2 are as follows:

- Lots of changes based on patches applied to the SF tree.
  (See the ChangeLog file in the source distribution for a
  comprehensive list of these changes and the authors of
  the corresponing SF patches where relevant.)

- The VM version number (3.3.1) is now decoupled from the image
  version (3.3alpha-4857) used produced the generated files, as
  seems to be the case with Mac and Win32 VMs.  For bug reporting
  purposes, `squeak -version' reports both these version numbers.

  I've no idea what Andreas and JMcI plan on doing in Win/Mac, but
  for now in Unix: small bugfixes will append `p<n>' (for `patch')
  to the VM release number; significant changes in the support (or
  changes in the generated files) will bump the release number and
  truncate any `p<n>'; only changes to Squeak's version number will
  bump the VM major or minor numbers.  (If you can think of a more
  sensible scheme you'd better tell me about it _before_ 3.3.1p1
  comes out. ;)

- Build process completely rewritten to accommodate VMMaker.  (Lots
  of documentation in the source distrib under platforms/unix/doc.
  Plugin developers who want their code to run on Unix absolutely
  must read this stuff.)

- New option: `-plugins <path>' (env: SQUEAK_PLUGINS='<path>') appends
  <path> to the list of places the VM seaches for plugins.  Each
  occurrence of `%n' in <path> is replaced by the name of the plugin
  being loaded.

  To run a newly-compiled VM without first installing it, use:
	.../blddir/squeak -plugins .../blddir/%n/.libs

- Modifier keys are handled more intelligently.  The default is the
  "traditional" Unix behaviour: mod1 is mapped to Command, Ctrl+mod1
  is mapped to Option, and other modifiers are ignored.  (This is
  usually what GNU/Linux systems with PC hardware [mod1=Alt] want.)

- For the rest of us, two new options: `-cmdmod <n>' and `-optmod <n>'
  (env: SQUEAK_CMDMOD=n and SQUEAK_OPTMOD=n).  If one or both of these
  are set then the X11 modifier `mod<n>' is mapped to Squeak's Command
  and/or Option, respectively.

  For example, to map a Sun keyboard so that the physical locations of
  the modifier keys ("Alt" = mod1 and "<>" [meta] = mod4) correspond
  precisely to their homologues on an Apple keyboard ("Option" and
  "Command") use:

	-cmdmod 4 -optmod 1

  (or set `export SQUEAK_CMDMOD=4; export SQUEAK_OPTMOD=1' in your
  .profile to make the change permanent).  (Note that setting a modifier
  for just one of these keys will entirely disable the other.)

- New option: `-swapbtn' (env: SQUEAK_SWAPBTN=1) reverses the "yellow" and
  "blue" buttons which might be useful for people having two-button mice
  (or who have 3-button mice and no respect for historical precedents).

- Various manual page updates (mainly for new/missing options).

- New Netscape plugin code from Bert Freudenberg.  (Not tested because
  my Netscape's dynamic loading is broken.)

- OSS sound rewritten from scratch.  (Full-duplex is supported but the
  image contains bugs which might prevent it from ever being attempted.)

  Both input and output have been tested extensively on Linux 2.4.18 with
  ALSA 0.9rc1 drivers (www.alsa-project.org) and the the OSS compatibility
  modules (snd-pcm-oss/mixer) that come with them.  (This is the only
  [non-commercial] OSS implementation I've found that respects the
  published OSS API sufficiently to permit any kind of serious development
  work.)

  With the new implementation, playing and recording should only comsume
  a fraction of 1% of the CPU.  Your kilometrage may vary depending on
  the (quite possibly lamentable) state of your OSS drivers.

- New option: `-nomixer' (env: SQUEAK_NOMIXER=1).  For people who prefer
  that Squeak not arbitrarily set the input gain to 50% every time
  recording is started, this turns off the mixer primitives.  With this
  option your external mixer program retains control of the settings
  (as it should).

- Changes to gnuification should make this thing 5-10% faster on Intel.

- Major overhaul of socket code should prevent lockups.  (There are
  still outstanding issues but they concern very obscure situations.)

- Lots and lots of smallish changes to the X11 code.  Plus some biggish
  ones: responsiveness should be better and occasional crashes (or
  freezes) observed when resizing the window should no longer occur.
  (`-xshm -xasync' not yet extensively tested with the new code.)

- Copy/Paste problems encountered between Squeak and some applications
  (probably mainly KDE and anything that uses Qt or gtk) are fixed.

- The default image name is now `squeak.image' (for compatibility with
  other platforms).

- Default heap size increased to 48MB to cope with recent images.

Still to do:

- mmap()-based memory allocator (when I have time to think about
  portability).

- Revisit the socket code to make a few minor tweaks for the obscure
  cases and to pull connection reset detection forward into the
  getSockState primitive (cf the Mac implementation).

- Add sources and support for building the VM as a Netscape plugin.

- Arrange for -USE_MMX in MpegPlugin on 386.

Don't Panic!

- Just send me mail if something is broken: ian.piumarta at inria.fr





More information about the Squeak-dev mailing list