[ANN] Magma 1.3alpha1

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[ANN] Magma 1.3alpha1

Chris Muller-4
The first alpha release for Magma 1.3 is available on SqueakMap.

The following detail the major improvements since the 1.2 stable release.

-- Introducing MagmaSolHashTable.
        A special kind of collection based on Tom Rushworth's SOLHashTable,
which maps Integer keys to an object with O(1) access.  Duplicate keys
are allowed and can be enumerated in key order.

-- New MagmaDictionary implementation.
        Built atop MagmaSolHashTable is a complete replacement of the
MagmaDictionary implementation.  The original MagmaDictionary was
based on an indexed MagmaCollection, which worked but not efficiently
because MagmaCollections incur too-high a query overhead for access to
a single object (via #at:).
        This new implementation puts MagmaDictionary much closer to a
MagmaPreallocatedDictionary, but without the large pre-allocation on
disk required.

-- Introducing MagmaHashTable.
        Since it was so easy to implement atop the new MagmaSolHashTable, yet
another new kind of collection, MagmaHashTable, is also introduced.  A
MagmaHashTable is similar to a MagmaCollection except:

        - It can only query a range of one indexed attribute using #from:to:do:.
        - It can't randomly access via #at: like a regular indexed
  - Access is much faster.

-- Improved Monticello Integration.
        In addition to a persistent domain model, each Magma repository also
contains a persistent code model, allowing packages to be browsed,
loaded and saved into the repository via the Monticello
        For Squeak, if a Magma-based Monticello repository is part of
Monitcello's repository list, two new menu options in each of the
class and method-panes of Squeak browsers will be visible:  "browse mc
versions" and "browse mc origin".  The first lists all versions of
that method or class-def throughout all version history.  The second
opens the version-comments box of the version in which that version of
the method or class originated, which can be useful for revealing why
it was changed.
        For details, see:  http://wiki.squeak.org/squeak/5603

-- Encapsulation of Application State + Behavhiors
        Employing the Monticello integration, when a #fullBackup is executed,
all currently-loaded package versions (which are operating on the
model) of the client-image invoking the backup are committed into the
Magma repository's built-in Monticello repository model before
invoking the actual backup.  All packages are saved, including Kernel,
System, Monticello, Morphic, etc. which can result in the first
#fullBackup taking a long time.  If this is unacceptable, then a
#modelBackup can be used to back up only the domain model as before.

-- Better releasing code ensures all objects which should get GC'd, do.

-- Renamed Packages
        The "Magma client" package has been renamed to "Magma-Client".
        "Magma server" has been renamed to "Magma-Server".

-- Includes utility to upgrade legacy repositories to the next version of Magma.
Magma mailing list
[hidden email]