[squeak-dev] A Vision For Smalltalk
frank.shearar at gmail.com
Sat Sep 10 15:19:43 UTC 2011
On 10 September 2011 15:54, David T. Lewis <lewis at mail.msen.com> wrote:
> On Sat, Sep 10, 2011 at 07:24:13AM -0700, Overcomer Man wrote:
>> Along the way I noticed the .mcz files contained a lot of other junk besides
>> Smalltalk code, and all the code for several FFI sub-projects is under the
>> same filename inside the different packages. Using .mcz instead of .zip
>> is unnecessary complexity. The extra packaged files are not Smalltalk. Why
>> not just use Smalltalk?
> Zip encoding is used for .mcz archive files for the same reason that
> the Java folks use it for .jar files (and lots of other things). It
> is a well-documented, widely understood mechanism for storing complex
> files in an efficient manner. An additional benefit is that it permits
> you to gain access to the contents of the mcz or jar file with any
> available zip program on any operating system, which means that you
> can poke around in the contents of the archive even you you do not have
> access to Monticello tools (or Java tools, or whatever).
I'll add that the "other junk" is cached information like the name of
the package, and the ancestry of the snapshot. In other words, data
that is not included in the Smalltalk code, and _cannot_ be included
in the Smalltalk code.
As an aside, "why not just use Smalltalk?" is a very dangerous idea:
you do _not_ want a Turing complete language to describe package
dependencies, or a great many other things. (For the same reason that
sometimes you really do want a match, and not a rocket engine.)
> And of course Monticello itself does just use Smalltalk. The tools
> are written in Smalltalk, including all of the zip encoding and
> decoding, and the source code for all of this is in any image that
> contains the Monticello tools. Some images do not have Monticello
> installed, in which case ... well, it's not installed.
More information about the Squeak-dev