[squeak-dev] [RELEASED] Squeak 4.1
casey.obrien.r at gmail.com
Mon Apr 19 19:29:41 UTC 2010
Squeakers: Thank you.
4.1 is a Smalltalk system that I'm not afraid to show to my friends. In
particular, the UI improvements that went in will really help me to raise
awareness about Squeak in my local community (Seattle, where there is
entirely too much C# going around.) I'm glad that Squeak maintains a visual
identity (even if we did yoink it mostly from Newspeak, heh) rather than
emulating a mainstream look and feel.
I wanted to point out: 4.1 has a much larger delta than what will be
absolutely necessary to justify future releases; it could probably have been
code frozen and shipped a lot sooner if we hadn't been waiting on a
license-clean 4.0 artifact. 4.2 is, in my mind, much closer than 4.1 was to
(temporally speaking) 4.0.
It's been a good year. Ever since the commits started rolling in, I've met
some really great people, was honored to run with the relicense ball, (even
if I botched the release email, lol!) and I've learned a lot about
Thanks everyone; here's to Squeak 4.2. Excelsior!
On Mon, Apr 19, 2010 at 10:09 AM, Hannes Hirzel <hannes.hirzel at gmail.com>wrote:
> Yes, it is a major step forward.
> 4.1 has a nice GUI which invites me to do write RCP like apps. The
> menu bar is great and the system windows look neat.
> With the ToolBuilder we can create good UIs though there is a learning
> There are still errors but we can fix them quickly with the trunk
> approach. It was just yesterday that I realised that there is an entry
> in Monticello to post to the inbox.
> On 4/19/10, Chris Muller <asqueaker at gmail.com> wrote:
> > 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>
> >> On behalf of the Squeak community, I'm happy to announce the
> >> 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
> >> 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
> >> 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
> >> 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
> >> support has been upgraded to operate directly on files on disk without
> >> need to load the entire file into memory.
> >> A new set of text editors has been added, which allowed us to decouple
> >> 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
> >> for full Cog adoption later. With this implementation Squeak finally has
> >> 'full' closures, allowing classic recursive examples like the following
> >> 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
> >> conversion.
> >> Selectors including minus are now parsed correctly, for example 3 <- 4
> >> 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
> >> (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
> >> 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
> >> 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
> >> 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
> >> 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
> >> an instance of SmalltalkImage, representing a facade for system-wide
> >> queries
> >> and actions. SmalltalkImage contains a global environment, an instance
> >> 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,
> >> MorphicTests, MultilingualTests, NetworkTests, ToolsTests, TraitsTests,
> >> XML-Parser, Traits, SystemChangeNotification-Tests,
> >> EToys, Protocols, Tests, SUnitGUI. To unload all of these, execute:
> >> Smalltalk unloadAllKnownPackages.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev