[squeak-dev] [RELEASED] Squeak 4.1

Janko Mivšek janko.mivsek at eranova.si
Sun Apr 18 10:00:41 UTC 2010

Hi guys,

Thanks for new release, which is now accessible for our website too


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:
>     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.

Janko Mivšek
Smalltalk Web Application Server

More information about the Squeak-dev mailing list