[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] GNU Smalltalk 3.0c and 3.0.4 released

From: Paolo Bonzini
Subject: [Help-smalltalk] GNU Smalltalk 3.0c and 3.0.4 released
Date: Sat, 09 Aug 2008 19:09:06 +0200
User-agent: Thunderbird (Macintosh/20080707)

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

* 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

* 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.


GNU Smalltalk 3.0c will shortly be available from

Version 3.0c is a feature complete development release. The new features
compared to 3.0b are:

*  Collections and Streams have a common superclass, Iterable.  The
user-visible aspect of this is that Streams now enjoy a wider
range of iteration methods, such as #anySatisfy:, #detect: and #count:.

* Error backtraces include line numbers and filenames.

* FileDescriptor and FileStream raise an exception if #next: cannot
return the given number of bytes.

* FileDescriptor is now a subclass of Stream.  Its old superclass
ByteStream has been removed.

* Functions gst_async_signal and gst_async_signal_and_unregister are
now thread-safe, *not* async-signal-safe.  To trap signals from
Smalltalk, you have to use ProcessorScheduler>>#signal:onInterrupt:.

* ObjectDumper now accepts normal String streams.  The class ByteStream
has been removed.

* ObjectMemory>>#snapshot and ObjectMemory>>#snapshot: return false in
the instance of GNU Smalltalk that produced the snapshot, and
true in the instance of GNU Smalltalk that was restored from the
snapshot.  Note that this does not apply to CallinProcesses, since
those are stopped in saved images (will this be true in 3.1?).

* Streams have a set of new methods that allow to eliminate useless
copies when moving data from stream to stream, as well as to eliminate
useless creation of collections to store the data read from a stream.
Besides the standard methods #next, #nextPut: and #atEnd, two more
methods can be implemented by Stream subclasses in order to achieve
better performance on block transfers, namely
#nextAvailable:into:startingAt:, #nextAvailable:putAllOn: and

Another set of methods is placed in Stream; they all use the above
three methods and you should not need to override them.  These are
#next:into:startingAt:, #next:putAllOn:, #nextAvailable:,
#nextAvailable:putAllOn:, #nextAvailablePutAllOn:.

In addition, #nextHunk was removed.  Applications can use
#nextAvailable: or, better, should be rewritten to use new
stream-to-stream protocol such as #nextAvailablePutAllOn:.

* Support for imports were added to namespaces (via the
<import: ...> pragma, as for classes).  Unlike the superspace,
imports are not made visible through #at:.

* The sockets package (and the namespace it is installed in) was renamed
from TCP to Sockets.  While the old namespace is still available
for backwards compatibility, it is suggested to use the Sockets
namespace instead.  This was done because the package supports
IPv6 and AF_UNIX sockets (in the Sockets package).

* Bindings to OpenGL and GLUT were contributed by Olivier Blanc.

* All the changes between 3.0.3 and 3.0.4.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]