[squeak-dev] [RELEASED] Squeak 4.1

Chris Muller asqueaker at gmail.com
Mon Apr 19 16:13:05 UTC 2010

Congratulations Andreas.  It's one thing to make an "app", or even a
"framework", but it's another to make a "Smalltalk".  Way to go..

On Sat, Apr 17, 2010 at 10:05 PM, Andreas Raab <andreas.raab at gmx.de> 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:
>        http://ftp.squeak.org/4.1
> The Website will be updated over the next few days to reflect the
> availability of Squeak 4.1.
> Enjoy!
>  - 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.
> Compiler
> --------
> 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:[1]].
>        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.
> Development
> -----------
> 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.
> Modularity
> ----------
> 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 mailing list