[squeak-dev] Re: [RELEASED] Squeak 4.1
andreas.raab at gmx.de
Sun Apr 18 21:43:41 UTC 2010
On 4/18/2010 3:00 AM, Janko Mivšek wrote:
> Hi guys,
> Thanks for new release, which is now accessible for our website too
Thanks for the quick turnaround!
> On 18. 04. 2010 05:05, Andreas Raab wrote:
>> On behalf of the Squeak community, I'm happy to announce the
>> availability of Squeak 4.1.
>> Squeak 4.1 combines the license change occurring in the 4.0 release with
>> the development work that has been going on while the relicensing
>> process took place.
>> Much of the work in this release has been focused on fundamental
>> improvements. Major achievements are the integration of Cog's closure
>> implementation, the improved UI look and feel, the new anti-aliased
>> fonts, the core library improvements, and the modularity advances.
>> To download the Squeak 4.1 release please visit:
>> The Website will be updated over the next few days to reflect the
>> availability of Squeak 4.1.
>> - Andreas (on behalf of the Squeak community)
>> Overview of Changes in Squeak 4.1
>> User Interface
>> We have adapted the 'face lift' look originally developed for Newspeak.
>> For those of us who like colored windows (quite a few as it turns out)
>> you can switch between uniform and colored windows in the 'Extras' menu
>> under 'Window Colors'.
>> The new menu bar makes Squeak much easier to discover than before. The
>> process of transitioning from the world menu is not complete yet, there
>> are still items that can only be accessed from the world menu (i.e., by
>> clicking on the desktop).
>> The search field integrated in the menu bar allows for direct navigation
>> to classes and methods - simply type in a partial class or method name
>> and see what happens.
>> A new set of inexpensive sub-pixel antialiased fonts derived from the
>> DejaVu fonts ('Bitmap DejaVu' in the font chooser) has been added. True
>> type font support has been upgraded to operate directly on files on disk
>> without the need to load the entire file into memory.
>> A new set of text editors has been added, which allowed us to decouple
>> the Morphic and MVC implementations for improved modularity. Morphic now
>> has regular blinking insertion point cursors instead of the (virtually
>> invisible) static cursor previously.
>> Squeak 4.1 includes the closure implementation from Cog as a
>> prerequisite for full Cog adoption later. With this implementation
>> Squeak finally has 'full' closures, allowing classic recursive examples
>> like the following to work:
>> fac := [:n| n> 1 ifTrue:[n * (fac value: n-1)] ifFalse:].
>> fac value: 5.
>> Support for literal ByteArray syntax has been added. Byte arrays can now
>> be written as #[1 2 3] instead of #(1 2 3) asByteArray avoiding the
>> need for conversion.
>> Selectors including minus are now parsed correctly, for example 3<- 4
>> is now parsed as (3)<- (4) instead of (3)< (-4). White space is no
>> longer allowed after an unary minus to denote a negative number literal.
>> Syntax highlighting, based on Shout, is now included in all Squeak tools
>> by default. For workspaces, it can be explicitly disabled in the window
>> menu (press the blue button; entry 'syntax highlighting').
>> Sources and changes files are no longer limited to 32MB max size.
>> ExpandedSourceFileArray provides an implementation for source files of
>> arbitrary length, based on the CompiledMethodTrailer changes.
>> MessageTrace has been added, allowing senders and implementors to be
>> viewed without opening new windows all the time. It utilizes a new
>> AlternatePluggableListMorphOfMany, which allows quick and easy
>> customization of the list. A quick adoption of DependencyBrowser has
>> been added allowing to browse dependencies between packages.
>> Core Libraries
>> Sets can now store nil just as any other collection. The collection
>> hierachy has been refactored to have both Set and Dictionary a subclass
>> of HashedCollection instead of having Dictionary a subclass of Set.
>> Squeak now uses a better distributed scaledIdentityHash for identity
>> sets and dictionaries.
>> StandardFilestream now performs read-buffering, dramatically speading up
>> some operations like "Object compileAll" (2x improvement) as well as
>> various other operations (scanning change lists etc).
>> A new traits implementation has been added. The implementation is
>> significantly smaller and simpler than the old version and can be
>> unloaded and reloaded without loss of information (i.e., traits
>> flattened during unload are restored during traits reloading).
>> A new extensible number parser hierharchy has been introduced
>> NumberParser and its subclasses provide support for parsing and building
>> numbers from strings and streams.
>> A new general cleanup protocol has been added. The cleanUp protocol
>> takes an optional argument to indicate whether we're doing an aggressive
>> cleanup (which involves deleting projects, change sets, and possibly
>> other destructive actions) or a more gentle cleanup that's only supposed
>> to clean out transient caches.
>> SystemDictionary and SmalltalkImage have been refactored. Smalltalk is
>> now an instance of SmalltalkImage, representing a facade for system-wide
>> queries and actions. SmalltalkImage contains a global environment, an
>> instance of SystemDictionary, which the environment used by classes.
>> Thus, SmalltalkImage current == Smalltalk, Object environment ==
>> Smalltalk globals.
>> The following packages have been made reloadable: ReleaseBuilder,
>> ScriptLoader, 311Deprecated, 39Deprecated, Universes, SMLoader, SMBase,
>> Installer-Core, VersionNumberTests, VersionNumber, Services-Base,
>> PreferenceBrowser, Nebraska, CollectionsTests, GraphicsTests,
>> KernelTests, MorphicTests, MultilingualTests, NetworkTests, ToolsTests,
>> TraitsTests, XML-Parser, Traits, SystemChangeNotification-Tests,
>> FlexibleVocabularies, EToys, Protocols, Tests, SUnitGUI. To unload all
>> of these, execute:
>> Smalltalk unloadAllKnownPackages.
More information about the Squeak-dev