GNU Smalltalk 3.0.3 and 3.0b released

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

GNU Smalltalk 3.0.3 and 3.0b released

Paolo Bonzini-2
GNU Smalltalk 3.0.3 and 3.0b will shortly be available from

     ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.0.3.tar.gz
     ftp://alpha.gnu.org/gnu/smalltalk/smalltalk-3.0b.tar.gz

GNU Smalltalk 3.0.3 is a maintenance release with the following changes:

* File>>#withReadStreamDo: and File>>#withWriteStreamDo: now return the
result of evaluating their argument, instead of returning the File object.

* Fixed command-line option -S to actually work.

* Fixed GC bugs in SQLite bindings. Also, the bindings could sometimes
call sqlite3_finalize twice.

* Fixed rare finalization bug.

* Fixes to the JIT compiler.

* Generational GC is now disabled on Alpha.

* More fixes for MinGW.

* New command-line option -i (--rebuild-image) for gst-load.

* New methods:

    Number>>#asCNumber
    String>>allOccurrencesOfRegex:do:
    String>>allOccurrencesOfRegex:from:to:do:
    TCP.AbstractSocket>>#canRead
    TCP.AbstractSocket>>#canWrite
    TCP.AbstractSocket>>#ensureReadable
    TCP.AbstractSocket>>#ensureWriteable

* The callback for the #returnFromSnapshot event is executed as a
high-priority process. While relatively invasive, this change was needed
to fix crashes when reloading images that used C bindings extensively.

* A system-installed libffi can be used. The included libffi has been
upgraded to version 3.0.4.

* URLs can be passed to FileDescriptor class>>#open:mode:ifFail:.



GNU Smalltalk 3.0b is a development release.  Like GNU Smalltalk 3.0a,
it of GNU Smalltalk includes support for Seaside. It includes the
following changes compared to GNU Smalltalk 3.0a:

* All the bugfixes of GNU Smalltalk 3.0.3.

* BlockClosure methods #cull:, #cull:cull:, #cull:cull:cull: evaluate
blocks removing parameters that are not accepted by the block. Thanks to
this new functionality, the parameter to #on:do: and #ifNotNil: can be
omitted.

* CObjects can be backed with garbage-collected (as opposed to
heap-allocated) storage. Using this is not always possible, for example
for CObjects stored by external libraries or passed to functions that
call back to Smalltalk or otherwise may cause garbage collections. If it
is, however, it is easier to use, faster and more predictable than
finalization. As an added benefit, garbage-collected CObjects accesses
are bounds-checked.

Garbage-collected CObjects are created by sending #gcNew instead of #new.

* If possible, the installation is made relocatable. More information
about this are available in the distribution and will be placed in the
FAQ too.

* It is possible to create CFunctionDescriptors that are not attached to
a function that the VM knows about, simply by passing a CObject to
CFunctionDescriptor>>#for:returning:withArgs:.

* The VFS subsystem was rewritten. Virtual filesystems are now
accessible via special methods on File (such as File>>#zip, for example
"(File name: 'abc.zip') zip") and not anymore with special filenames
that could conflict with real files.

This change causes some incompatibilities. In particular,

1. methods like `File image' and `Directory kernel' return a File
object, not a String

2. Directory objects are not created anymore and instead File objects
also support the Directory protocol;

3. Directory>>#do: passes File objects rather than file names to the block;

4. Directory>>#contents is now called Directory>>#entryNames.

* The order for searching pool dictionaries changed. The new
implementation, codenamed "TwistedPools", was designed by Stephen
Compall who also contributed a testsuite and parts of the
implementation. The ideas behind TwistedPools can are explained on the wiki.

* Processes support thread-local variables, which are accessed through a
special dictionary returned by ProcessorScheduler>>#processEnvironment.

* Bindings to Cairo and LibSDL were contributed by Michael Bridgen, Tony
Garnock-Jones and Brad Watson.



Thanks to everyone who reported bugs and/or provided fixes that went
into these releases, including Stephen Compall, Thomas Girard, Tim Kack,
Cesar Rabak.

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk