About
Smalltalk is an object-oriented, dynamically typed, reflective programming language, well-versed to scripting tasks. GNU Smalltalk is a free implementation of the Smalltalk-80 language. It runs on most versions on Unix, as well as under Windows.
News
GNU Smalltalk 3.0b is Coming
GNU Smalltalk 3.0b will shortly be available from
ftp://alpha.gnu.org/gnu/smalltalk/smalltalk-3.0b.tar.gz
Like GNU Smalltalk 3.0a, this release 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,
methods like `File image' and `Directory kernel' return a File object, not a String
Directory objects are not created anymore and instead File objects also support the Directory protocol;
Directory>>#do: passes File objects rather than file names to the block;
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.
Praesent odio magna, consequat cursus, convallis vitae, condimentum id, mi. Duis lectus lectus, pretium at, varius sed, sollicitudin non, metus. Mauris sollicitudin nisl sit amet tellus. Aliquam convallis, diam et malesuada interdum, orci augue ultrices elit, ut consectetuer ipsum lectus ac enim. Phasellus luctus elit quis diam. Proin tincidunt. Nunc pulvinar dictum dui. Maecenas mattis est vel neque. Quisque vestibulum, sapien vitae dignissim dapibus, urna felis commodo enim, ac blandit arcu magna in ligula. Integer dignissim, eros sed tristique viverra, sapien nulla aliquam augue, in iaculis ligula mauris eu neque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce massa elit, convallis sed, consequat et, egestas et, arcu. Vivamus feugiat pretium nisi.
Paolo Bonzini - 19.5.2008
|