[DEPS][PAPER] Dependencies for Squeak

Stephan Rudlof sr at evolgo.de
Mon Aug 2 11:26:40 UTC 2004


Lex and others,

a few additional thoughts (after thinking about it a while ;-) ):

I wrote:
> ...

> lex at cc.gatech.edu wrote:
> 
>>...

>>First, if I'm not mistaken, your capabilities model seems to boil down,
>>for each package, to this form:
>>
>>	(cap1 AND cap2 AND cap3)  IMPLIES  (cap4 AND cap5)
>>	(cap6 AND cap7)  IMPLIES  (cap8 AND cap9 AND cap10)
>>	
>>Is this correct?  You'd ask the installer tool to find a way to get you
>>cap10, and then it would trace backwards through all the packages to
>>know about to see if it can satisfy this.
> 
> 
> Yes.
> But the Caps can be hidden, so that the user asking for installing a
> package does not see them.
> And the mechanism allows to express more complex dependencies.

I have left out one important point: time is missing here!

What does this mean? Let me give an example.

Assumed you want to install a patch to another package: obviously it
needs the existence of the other package to be applied (otherwise it
wouldn't be a patch). So there is a *pre*requirement of having the
package installed *before* the patch.

Another scenario: say there is a library needed for some package, which
doesn't have to be there for installing purposes of the package (since
they are independent enough): then its OK first to install the package,
and after that the library, to get a working system *after* the install
process. There is a *post*requirement which has to be fulfilled *after*
the installation as a whole, but not before installing the package.

This is an example for the difference between incremental and
non-incremental installation.


The non-incremental variant is more comfortable for the dependency
resolver: it allows to temporarily remove a requirement as long as it is
provided again at the end of the installation process. In the
incremental case such a behavior would fail in many cases.


In the Boolean logic example above time is not an issue: but the world
is more complex than this example suggests.


Greetings
Stephan

> ...



More information about the Squeak-dev mailing list