A Squeak Packaging Proposal (Re: Is this list a chat or a list REALLY?)

Karl Ramberg karl.ramberg at chello.se
Thu Aug 9 16:18:16 UTC 2001


ajh18 at cornell.edu wrote:
> 
> Stephane Ducasse <ducasse at iam.unibe.ch> wrote:
> >         - having a infrastructure that support changes identification in a
> >         much better way that changeset so that we can built a squeak from a
> >         list of modules.
> 
> Here is my proposal.
> 
> A ChangeSet becomes a Package.  A package has one or more prerequisite
> packages.  A process executes with respect to a working package.
> Methods and globals (including class and pool variables) are looked up
> at runtime in the process's package and then its prerequisite packages
> and so on (conflicts in prerequisites are resolved at Package creation
> time by renaming and changing senders where appropriate).  Changes to
> globals and methods are stored only in the working package, overriding
> the prerequisite's value while preserving it.
> 
> For lookup efficiency, when a package is first used as a process's
> environment, it and its prerequisites are collapsed into a single
> Environment object containing all globals and methods visible from the
> top working package.
> 
> Except for working packages, all packages and their contents are
> immutable (closed packages).  Immutability is desired so packages can be
> shared and known to be the same across images.  This way when loading a
> package you only have to load the prerequisites that you don't already
> have.  All packages will have a globally unique id (generated from the
> current millisecond time plus a random number plus the authors initials)
> so they can be uniquely identitfied.  You make changes by creating a new
> package.  If you name it the same as an old package the user will see
> this and can choose to use it in future packages instead of the old one.
>  The new package can have the old package as a prerequisite.
> 
> Enforce immutability is another topic that I will put off to another
> email.
> 
> I have written about packages before a couple of months ago under the
> subject "Distributed Squeak and Environments".  I'm planning to
> implement this soon after my work on Block Closures and will integrate
> the two since both require a new VM and image format.
> 
> Any feedback would be greatly appreciated.

Hans Martin Mosner has made parts ( that are done )
of his SCAN / Collage tools available: 
http://squeak.heeg.de:8080/

Karl




More information about the Squeak-dev mailing list