[ANN] Another namespaces approach.

Lex Spoon lex at lexspoon.org
Sun Sep 23 12:32:40 UTC 2007


"Michael van der Gulik" <mikevdg at gmail.com> writes:
> - Packages depends on other packages by UUID, and if you modify a package it
> gets a new UUID. This means that your code will never suffer from dependency
> problems and will always run in exactly the same environment you wrote and
> tested it in. Bit-rot shouldn't happen unless you start changing the VM.

All dependencies work this way?

If so, then how do you handle situations where two packages depend on
different versions of some third packages?  Let's make it concrete and
say packages A and B both depend on package Morphic.  A creates a
morph, hands it to B, and then B tries to add the morph to a window.
How does this work?  Does B's Morphic really have to cope with a morph
created by A's Morphic?  That would seem to mean Morphic has to be
written very defensively, thus defeating the point of the exercise.

My gut is that loading multiple live versions should not be the
default.  By default, packages are not supposed to hum along in their
own private worlds, completely immune to anything else that is
happening in the image.  Instead, packages are supposed to interact.
They should interact with the user, with the image, and with each
other.

Yes, they should interact carefully, and they should avoid making too
many assumptions about each other.  Still, interact they should.

Now, as a non-default option, it's a different matter.  It would be
cool to be able to create a sub-image that has its own versions of
packages in it....

Lex




More information about the Squeak-dev mailing list