A gameplan embryo! (was Re: Squeak Starter)

danielv at netvision.net.il danielv at netvision.net.il
Fri Oct 18 16:04:09 UTC 2002


Well, I'll explain what it actually does, and you'll see why not (sorry
:-)) -

Basically, it creates a graph where each node is a bundle of code, and
each edge is a dependency between two bundles.

In the simple case, the bundle used are classes. The dependencies are
from a bundle that includes a method that references a class in another
bundle, to that bundle. 

So in the simple case, the node representing the class Object is
dependent on the node representing the class StringMorph, because
Object>>asDraggableMorph references StringMorph.

StringMorph is also dependent on Morph because it inherits from it.
Morph is similarly dependent on Object.

Aha! a circular dependency. This means that none of the nodes in the
cycle can be complete, unless all the others are present. So none can be
unloaded. This tools' job is to find and point out all the cycles, and
the paths between any two sections of it.

So if I want to untether Celeste, this tool will show me the chains
between it and Object.

Of course, where to cut chains is a design decision - I need to either
use different "bundles of code" (this is where Avi's DVS, with it's
support for logical modules that include class extensions comes in), or
change my codes' design (use a dynamic world>open menu instead of TWM
being dependent on Celeste), or both.

So the tools role is to expose the spaghetti - we'll have to get our
fingers dirty to actually unravel it... ;-)

Did this make sense?

Daniel Vainsencher

Ned Konz <ned at bike-nomad.com> wrote:
> On Friday 18 October 2002 05:50 am, danielv at netvision.net.il wrote:
> > So it should let anyone pick a package in the image, and say "I
> > want to take over maintanance of that as free package that can be
> > loaded or unloaded. What do I need to do to cut it's ties to the
> > Image?"
> 
> Wonderful!
> 
> Can it also automate the actual stripping (given that it understands 
> the various different dependencies)?
> 
> -- 
> Ned Konz
> http://bike-nomad.com
> GPG key ID: BEEA7EFE



More information about the Squeak-dev mailing list