Magma back end to SqueakSource (was: Re: and in danger (was Re: [Box-Admins] Disk space usage on box3))

David T. Lewis lewis at
Sat Dec 7 23:54:14 UTC 2013

On Sat, Dec 07, 2013 at 04:58:51PM -0600, Chris Muller wrote:
> I thought about it 4 years ago and made an object model to take care
> of it.  The problem with zip-files is how wasteful they are.  When
> someone changes one single method of the Morphic package, the other 1K
> definitions (however many there are) are duplicated in new zip (mcz)
> file.  By contrast, the object model refers to the same canonicalized
> MCDefinition instances across Versions, adding only one new
> MCDefinition to the bulk of the model in that example.
> The result is that the redundant Magma-backed copy of
> consumes less than 1/4th the space of the original
> File based version.  A Magma-backed copy of would
> about 12GB of space.
> PS -- For interest, I just kicked off a bulk-load of entire
> repository into Magma to see how much space it will
> take..

I changed the subject line, and am moving the discussion over to squeak-dev
because I think it may be of more general interest.

I'm quite interested to know how that turns out. Entirely aside from
disk space concerns, the approach you are describing makes a lot of
sense to me, and the archive provides a fairly large
data set to try it out.

Bob Arning has been doing some really interesting things with a Seaside
browser for exploring the change set records of earlier Squeak development.
Meanwhile you (Chris) are doing equally interesting work to enable a
Monticello browser to browse through the historical record of,
backed up a Magma-enabled image currently running on

I have a of vague hand-waving notion that these two should be related, and
that if I wanted to figure out how some method in e.g. ObjectMemory came
into being, it would be really convenient if I could explore its change
history to see various things that Eliot or Tim or I might have done in
recent years in the Monticello repositories, and continue back in time
through the change set update stream to see how and why Dan Ingalls might
have originally implemented it in Squeak 1.x.

Is there some way in which the change set based update stream from earlier
Squeak could also be captured in the Magma back end, similar to what you
are doing with the Monticello packages?


More information about the Box-Admins mailing list