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 _______________________________________________ Magma mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/magma |
On 9 December 2011 09:08, Chris Muller <[hidden email]> wrote:
> 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: > Excellent! Congratulations Chris, I'll look forward to trying it out. Regards, Stuart _______________________________________________ Magma mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/magma |
In reply to this post by Chris Muller-4
On 8 December 2011 23:08, Chris Muller <[hidden email]> wrote:
I'm sure I will. Good job!
Milan Mimica http://sparklet.sf.net _______________________________________________ Magma mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/magma |
In reply to this post by Chris Muller-4
Brilliant work Chris! Magma is one of the highlights of modern Smalltalk. Now you just need a website so *everyone else* can know about it!
Amir _______________________________________________ Magma mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/magma |
In reply to this post by Chris Muller-4
On Thu, Dec 8, 2011 at 11:08 PM, Chris Muller <[hidden email]> wrote: I am very pleased to announce the immediate availability of Magma 1.3. Excellent. I will take a look. Proxy Transparency I would like to take a look to this. In which primitives you need to send #yourself for example? This is because otherwise the VM will fail / crash because it expects the parameters of a primitive to be of a certain type rather than a proxy ? Which are those subclases you mention that override the primitive methods? Thanks and congrats for the release. -- Mariano http://marianopeck.wordpress.com _______________________________________________ Magma mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/magma |
Free forum by Nabble | Edit this page |