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
|