[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] GNU Smalltalk 2.2a release announcement
From: |
Paolo Bonzini |
Subject: |
[Help-smalltalk] GNU Smalltalk 2.2a release announcement |
Date: |
Fri, 22 Sep 2006 17:30:53 +0200 |
User-agent: |
Thunderbird 1.5.0.7 (Macintosh/20060909) |
I got mistaken last week and this is 9 years I've been working on GNU
Smalltalk, not 10. I guess I'll have to hand back the party hat for
another 11 months.
Now, the serious part.
GNU Smalltalk 2.2a is a release candidate for 2.3. There were many
additions to 2.2 that are relatively important and incompatible
(image-wise) with 2.2, that justify the new release number. The release
can be found at ftp://alpha.gnu.org/gnu/smalltalk/smalltalk-2.2a.tar.gz
I would like to thank the people on address@hidden for the
renewed vitality of the list, which ultimately spurred me to find new
interest in GNU Smalltalk, and to do all the work leading to this release.
The changes from 2.2 are as follows:
NEWS FROM 2.2 TO 2.2a
* FileStreams can now use pwrite for more efficient operation on files
opened for read/write, and will do many less gratuitous lseek
operations. pread will also be used by FileStream>>#copyFrom:to:. The
number of system calls issued when generating the documentation, for
example, is reduced by a third.
* Fixed bug in methods containing both -0.0 and 0.0 (positive and
negative floating-point zero).
* Fixed bug in Directory class>>#create:, that could not create a
directory relative to the current directory.
* Fixed bug in File>>#touch, which did not work really. There are also
methods to modify a file's atime and mtime.
* Fixed bug in SortedCollection. After #removeAtIndex:, adds would
leave the collection unordered.
* Introduced a method to efficiently convert a WriteStream into a
ReadStream. It is called #readStream and makes WriteStream more
polymorphic with ReadStream.
* Introduced another class shape, #character, that can be used for String.
* More reliable detection of at-end-of-file condition for pipes, TTYs,
and so on (especially on Mac OS X).
* Moved gdk_draw_ functions to GdkDrawable.
* New goodie to parse the command line. Look at the documentation for
the Getopt class and for SystemDictionary>>#arguments:do:.
* New example, lazy callections. When loaded, #select:, #reject: and
#collect: do not create a new collection unless necessary. Idioms like
(a select: [ :each | ... ]) do: [ : each | ... ]
or
a := a select: [ :each | ... ].
a := a reject: [ :each | ... ].
a := a select: [ :each | ... ].
^a size
can be much faster when this example is loaded.
* Regular expressions are now included in the default image. The
interface is now definitive and is similar to 2.2. The concrete classes
for RegexResults are in a private namespace (since the user need not
instantiate them anyway). Right now, regular expressions are only
usable for String objects (see Unicode support below). This may change
in the future.
* The backtraces now omit again the internal methods in the exception
handling system.
* The class above which super-send bytecodes start searching is now
embedded in the bytecode stream. This provides the infrastructure to
implement 'here' in Smalltalk/X (not implemented) or 'self.Foo b' to
execute the Foo>>#b method (also not implemented).
* Various speedups.
Unicode support:
* Characters above 127 are no longer used to represent extended ASCII
characters. Instead, they are only used to represent a byte in the
encoding of the Unicode characters from 128 on. To create them use the
Blue Book method Character class>>#value:.
To represent Unicode characters above 127 use the (ANSI Smalltalk)
Character class>>#codePoint: method, or the new syntax $<13> which
allows to express characters using their Unicode code point. The new
syntax will create instances of the new UnicodeCharacter class when the
number is > 127.
Note that these characters *cannot* be shown on a stream with #nextPut:
(use #display: instead) nor compared with #== (use #= instead).
Character constants like $+ or $A are guaranteed to create normal
"Character" objects, for which you can safely use #nextPut:.
* New UnicodeCharacter and UnicodeString classes. These new classes can
also be passed to and received from C functions. See the manual for
more information.
* Part of the I18N module was separated into the Iconv module, which
provides support for printing Unicode characters and strings correctly.
Have fun, and report bugs.
Paolo
- [Help-smalltalk] GNU Smalltalk 2.2a release announcement,
Paolo Bonzini <=