Email lists > GNU Smalltalk environment > [Help-smalltalk] GNU Smalltalk 3.0.3 and 3.0b released > [Help-smalltalk] GNU Smalltalk 3.0.3 and 3.0b released

[Help-smalltalk] GNU Smalltalk 3.0.3 and 3.0b released




This post if a part of  this thread

2008-05-14 08:28:36
GNU Smalltalk 3.0.3 and 3.0b released
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
help-smalltalkgnu.org

http://lists.gnu.org/mailman/listinfo/help-smalltalk

about | contact  Other archives ( Real Estate discussion Medical topics )