Partitioning the image (was Re: Shrinking sucks!)

goran.krampe at bluefish.se goran.krampe at bluefish.se
Mon Feb 14 10:08:29 UTC 2005


Hi people!

Doug Way <dway at mailcan.com> wrote:
> On Feb 13, 2005, at 11:16 AM, Lex Spoon wrote:
> > Doug Way <dway at mailcan.com> wrote:
> >> Is there a situation where you'd have the global list of PI instances
> >> in a more minimal image, but not have SqueakMap installed?  Could be,
> >> but that might be uncommon.  I was thinking that the Minimal image
> >> would still have the PI instances, which means PackageInfo would need
> >> to be part of the Kernel, but I don't know if that's necessary.  As
> >> long as it can add code to itself.  (That is when we take a serious
> >> look at Spoon. :) )
> >
> > It violates the privacy principle.  It is fine that SM must be loaded,
> > because it's part of the basic code-management infrastructure of 
> > Squeak.
> >  However, surely people should be able to make a package without 
> > posting
> > it immediately to SqueakMap.  In such a case, there is no SMPackage

I have never argued they couldn't make a package without posting it on
SM.
Of course they should be able to. IMHO PI is orthogonal to SMPackage and
that is exactly how I want it too.

> > entry, but you'd still like to have author, comment, and homepage url.
> > I call this the privacy principle for real.  Personal images should not
> > need to make round trips to a global server in order to do basic
> > operations like creating a package.

I am just slightly curious about the need for author and homepage url if
the package isn't meant for anyone else than you privately. And of
course, SM isn't perfect - as you have written quite a few times it
isn't distributed yet with ability to have "private" SM packages, but it
is still on the agenda.

> Basically, I agree.  The current proposal supports the privacy 
> principle reasonably well IMO.
> 
> The current proposal being:  We have a list of PackageInfos (+comments) 
> as the master list of in-image packages, which will be usable even if 
> you don't have SM loaded.  You can create new PI packages with the 
> standard browser in your image if you want, without SM knowing about 
> it.  If you do have SM loaded, you also get the corresponding 
> SMPackages (for known packages) with additional metadata, including 
> URL, License, etc.  An SMPackage holds onto its PI package (if it's a 
> PI-type package and not a changeset), and a PI package can look up its 
> SMPackage if it exists.
>
> (I'm not sure this jibes 100% with what Goran was envisioning, but I 
> think it's pretty close.)

It sounds perfectly like I envision it. You know guys, I just want us to
not reinvent stuff - I hope you Lex can understand that point of view.
And the shortcomings of SM - sure, there are a lot and I want to adress
them all. And btw, as always I am inviting people to help me and as
always noone comes forward. :)
 
> I disagree with you about the URL, I don't think it's really essential 
> to have in the personal image PI package.  You can go to SqueakMap if 
> you really need to find out more about the package out on the net.  But 
> that's a relatively minor point.

Agree.

> > Is it possible to whip up a SMPackage entry that is not attached to any
> > actual SqueakMap?  My impression has been that this doesn't make sense.
> > If this one principle were to change--and a SqueakMap became simply a
> > list of packages that can be copied between multiple SqueakMap's
> > including a local per-image map--then I'd sing a different tune here.
> >
> > Notice that the universes system *does* support packages which are not
> > associated with any particular server.  (And as a cost of this 
> > property,
> > a single universe cannot sensibly hold a catalog of *every* publically
> > shared package.)  The way this discussion is going, I believe Universes
> > can be modified to deal in whatever PackageInfo we end up with.  A
> > UPackage could then be a PackageInfo plus a UVersion.
> 
> A somewhat separate issue which I don't have a strong opinion on. :)  
> But whether you have one global map, or multiple/local maps, a simple 
> in-image package shouldn't *have* to know about any map as we agreed 
> earlier.

Agree.

> > The one thing that would need to be done, would be for PackageInfo to
> > have a list of dependencies.  A set of string names is fine.  Ideally,
> > it should also have "provides" and "conflicts", even though the current
> > algorithm in the univeres browser doesn't deal with these yet.
> 
> Ouch, I'm not sure if we want to go there right now. ;)  Although a 
> simple set of string name prerequisites would be kind of nice, if it 
> was understood that PI will eventually be replaced with something else, 
> including a more comprehensive dependency mechanism.  But these things 
> have a way of sticking around forever once they're introduced. ;)
> 
> But yeah, just to simply know that the Morphic package requires 
> Graphics as a prereq, and Graphics requires Kernel, etc, would be nice. 
>   It would make unloading a little bit safer, e.g. if KomHttpServer 
> requires the DynamicBindings package, then it could at least tell you 
> that before you tried to unload DynamicBindings if you also had 
> KomHttpServer loaded.

Well, obviously I need to get my dependency stuff finally out the door.
:)

> But we've been thinking we could wait until the Basic image is 
> partitioned before adding a dependency scheme.  If you only have 10 or 
> 15 packages making up the Basic image, it's not *too* hard to keep 
> track of the prerequisites by hand, for a little while at least.
> 
> - Doug

Btw, the whole discussion about PI subclass or not - at this point I
don't have a good opinion.
There are arguments both ways it seems.

regards, Göran



More information about the Squeak-dev mailing list