GNU Smalltalk 3.2 has been released at
* ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.tar.gz
SHA1 checksum: d951714c4fc7d91d06bdc33c20905885e5d2b25f
* ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.tar.xz
SHA1 checksum: 1ff71bf0be7e238eba9485eb6a016bc4faa07cea
Main features of the new release include downloading of remote packages
(for projects hosted on smalltalk.gnu.org), a new browser based on GTK+,
a callgraph profiler and incremental garbage collection. This version
can also run the Iliad web framework (http://www.iliadproject.org/).
Following is a detailed list of changes between 3.1 and 3.2.
Backwards-incompatible bug fixes and changes:
* Collection>>#anyOne gives an error if the receiver is empty.
* "aNumber raisedToInteger: 0" will raise an exception if and only if
aNumber is not a floating-point value. This was backwards in previous
versions.
* Interval>>#first and Interval>>#last give an error if the interval is
empty (i.e. if start > stop and the step is positive, or start < stop
and the step is negative).
* SequenceableCollection>>#sortBy: was renamed to #sort:. The old
message is _not_ provided for backwards-compatibility.
* The semantics of recursive directory descent were adjusted as follows:
1) the '.' and '..' directory entries are not passed; 2) for #do:, the
file is passed directly (3.1 used to pass another recursive decorator);
3) before the descent starts, the directory itself is passed to the block.
* The XML parser will ignore whitespace if placed in non-validating mode.
* The suggested way to instantiate an XML parser is now using "SAXParser
defaultParserClass", which will work with either of the two available
parsers (the existing Smalltalk parsers, and the Expat bindings; see below).
New features (base classes):
* Floating-point rounding to integer is now correct also for very large
numbers; fix contributed by Nicolas Cellier.
* Methods have been added to Integer to print numbers with padding to a
specified width.
* New FilePath methods #owner:, #group:, #owner:group: allow setting a
file's owner and group.
* Sending mode, file time and owner setters to a recursive directory
decorator (such as `Directory working all') sets the mode/time/owner on
all files under the path.
* Speedups for hashed collections
* String>>#subStrings: accepts a single separator character or also, in
accordance with ANSI, a String holding a list of separators.
* The old instance-based exception handling has been removed. Standard
ANSI class-based exceptions have been available since GNU Smalltalk 1.8.2.
* The text-based #inspect method is now available also as
Object>>#examine and Object>>#examineOn:, so that it will also work on
arbitrary streams and will be available when a GUI is loaded.
Contributed by Stefan Schmiedl.
New features (tools):
* gst-convert can emit Squeak fileouts.
* New graphical interface VisualGST, loaded with gst-browser. The old
browser is still available, but obsolete.
* New ProfilerTools package for callgraph profiling of Smalltalk
programs. A companion gst-profile tool will create profiles in
callgrind-compatible format. Contributed by Derek Zhou.
* Projects hosted at smalltalk.gnu.org can be downloaded and updated
directly from the network. The repository at smalltalk.gnu.org holds
the location of the package.xml files, which point to the svn or git URL
of the code. In order to download a package with git, version 1.6.2 is
required.
* SUnit supports expected failures.
New features (VM):
* Fixes in garbage collection heuristics provide improved performance on
programs allocating many long-lived objects. Contributed by Derek Zhou.
* Floating-point numbers are now read correctly.
* In idle times, GNU Smalltalk will perform incremental garbage
collection. When it finishes, GNU Smalltalk will consume zero CPU.
* Mostly rewritten Windows port. It should mostly work except for
sockets (the socket code will likely be rewritten for all platforms for
3.3 anyway). An experimental installer will be made available shortly.
* Support for one-way become (Object>>#becomeForward:).
* The millisecond clock uses CLOCK_MONOTONIC where available.
New features (packages):
* Many improvements to the Gtk bindings.
* NetClients supports ESMTP commands.
* New goodie, the SandstoneDb object persistence framework.
* Swazoo upgraded to version 2.2, plus local fixes.
* The Complex package uses numerically stable algorithms
* The Continuations package provides delimited continuations via
BlockClosure>>#shift and BlockClosure>>#reset. Both methods accept a
block (1-arg for shift, 0-arg for reset).
* An XML pull parser is included as package XML-PullParser. The package
is based on the VisualWorks and Squeak pull parsers by Anthony Blakey
and Ken Treis.
* In addition to the validating XML parser, a non-validating Expat-based
parser is available in package XML-Expat. The Expat parser is
experimental, but it is very fast and supports both pull and push operation.
Bug fixes:
* Code running as a Generator now honors exception handlers outside the
Generator block.
* Fixed copying of Dictionary to not share the underlying associations.
* Fixed ##() expressions that return a block
* EPIPE is handled correctly.
* Running on kernels without SOCK_CLOEXEC support will not fail even if
the VM was compiled on a kernel that supported it.
* The Sockets package failed to initialize when the machine was not
connected to the network; this has been fixed.
* The Transcript now uses a RecursionLock. This fixes crashes when an
exception occurred while printing a backtrace.
Miscellaneous:
* GNU Smalltalk now does not rely anymore on specific (old) versions of
libtool.
* GNU Smalltalk tries to enable Emacs modes automatically on systems
that support a site-lisp/site-start.d directory.
* REPL autocompletion includes all symbols including unary messages (and
variable names).
* Process-local variables are now stored in an IdentityDictionary rather
than a LookupTable.
_______________________________________________
GNU Announcement mailing list <info-gnu@gnu.org>
http://lists.gnu.org/mailman/listinfo/info-gnu