GNU Smalltalk 3.0.4


GNU Smalltalk 3.0.4 will shortly be available from

This is a bug fix release with the following changes:

  • A few operations on collections have been sped up.
  • Code without a space between a binary minus and a number, such as "a-2", is parsed correctly. As a side effect of this change, the sign of a number with an explicit radix (such as "16r10") can be placed before the radix too: both -16r10 and 16r-10 are accepted.
  • Fixed bug that caused some children not to be reaped.
  • Fixed bug when reading from a FIFO file and the writing side closed the FIFO before GNU Smalltalk started reading it.
  • Fixed CByte to actually work.
  • Fixed corner case of nested exception handlers.
  • Fixed directory navigation on ZIP archives (when using the VFSAddOns package).
  • Fixed HTTP GETs that caused a redirect and had a query.
  • Fixed leakage of file descriptors on ZIP archives (when *not* using the VFSAddOns package).
  • Fixed MappedCollection>>#keysDo:.
  • Fixed rare bug in the bytecode optimizer that caused invalid (non-verifiable) or even incorrect bytecode to be generated.
  • Fixed Stream>>#do: and Stream>>#linesDo:, which would terminate in advance if *another* stream was read past its end during the argument block's execution.
  • Fixed the tools to work on Windows even if invoked with an explicit extension for the executable.
  • gst-convert is now really quiet if invoked with --quiet.
  • Moved SequenceableCollection>>#join to Collection.
  • Removed bashisms from installed shell scripts.
  • Sockets use the close-on-exec option (see fcntl(2) for more information).
  • Sport fixes: fixed SpFilename>>#fail (did not work) and SpSocket>>#readInto:startingAt:for: (should only do one I/O operation, possibly returning a partially filled buffer).
  • UNC paths are parsed correctly by File.

User login