[squeak-dev] Re: [Pharo-project] [ANN] Magma 1.3

Stéphane Ducasse stephane.ducasse at inria.fr
Fri Dec 9 12:25:23 UTC 2011


Thanks a lot chris.
Magma is important for us.

Stef


> I am very pleased to announce the immediate availability of Magma 1.3.
> The following detail the major improvements to 1.3 over 1.2:
> 
> Serializer Upgrade
> ====
> 	BlockClosures (Contexts and CompiledMethods too, of course), can now
> be stored in the database, even with references to inst-vars, self,
> temps or globals.
> 
> Split-Ordered Lists
> ====
> 	Tom Rushworth developed a fantastic Split-Ordered list implementation
> for Squeak.  Working closely with Tom, this package has been extended
> in Magma to support very large SOL collections, implemented as a
> MagmaSolHashTable.  Thank you Tom!
> 	The MagmaSolHashTable is actually a fairly primitive collection, and
> was used as the basis for two new collections:  A MagmaHashTable and a
> completely new implementation of MagmaDictionary which is much faster
> than the old one (almost as fast as a preallocated dictionary).
> 
> Full Monticello Model
> ====
> 	When using Magma as a Monticello repository the package versions are
> not zipped but stored directly in the repository as native instances
> of MCVersions, MCPackages, MCInfos, MCDefinitions, etc.  All of these
> original MC object instances are canonicalized so there is only ONE
> copy of that MCMethodDefinition from 2002 which is shared rather than
> copied in every version since.  MCPackages are also canonicalized, as
> is all ancestry!
> 	For packages stored in a Magma repository, two new menu options
> appear on the methods menu and classes menu:
> 
> 	browse mc versions
> 	browse mc origin
> 
> The first shows all versions of a particular method or
> class-definition across all MC versions saved to that repository, in
> chronological order (no latency).  The second opens the MC-Version
> Inspector in which that version of the method was saved, to see the
> version notes.  This is very useful for quickly knowing WHY changes
> were made.  Note:  Currently only Squeak has its IDE tools updated to
> support this.
> 
> WriteBarrier Resurrection
> ====
> 	After two years dormancy, Avi Bryant's original WriteBarrier has been
> resurrected for use in closure/Cog images.  Its original dependency on
> NewCompiler has been removed.  With both the WriteBarrier and Cog, the
> MagmaBenchmarker reports a new record maximum commit rate -- 456
> commits per second !!
> 	The WriteBarrier is now on by default, so nothing needs to be done to
> enjoy the speed up.
> 
> Proxy Transparency
> ====
> 	A new extension to the WriteBarrier should now alleviate the need to
> send #yourself to primitive arguments!  Primitives which require
> arguments are now overridden in the anonymous subclass so that the
> arguments will automatically be ensured to be fully-reified for the
> super call.
> 
> Immutability
> ====
> 	For performance, TimeSpans, Durations, DateAndTimes, Points,
> Intervals, Colors are now immutable.  Strings are also immutable by
> default, but now a custom ImmutabilityStrategy may be specified,
> providing fine control over immutability in case mutable Strings are
> needed (or if other objects can be made immutable).
> 
> Platform Independence
> ====
> 	Magma 1.3 runs on Squeak 4.3 and Pharo 1.3.  All of the packages have
> been renamed in accordance with contemporary package naming
> conventions employed by most other active Squeak and Pharo projects.
> Platform-specific behaviors are now in platform-specific packages
> (named with "-Squeak" or "-Pharo").  The package hierarchy is
> documented at http://wiki.squeak.org/squeak/6178.
> 
> More
> ====
> 	Many minor cleanups, fixes, and usability improvements.
> 
> This is, by far, the best Magma ever.  Please enjoy the new version.
> 
> - Chris
> 




More information about the Squeak-dev mailing list