3.6 "full" packages

Andreas Raab andreas.raab at gmx.de
Mon Jul 28 12:58:49 UTC 2003


> I don't see why "mere squeak user" should mind very much that MC gets
> silently loaded. Do you?

Yes. Lots and lots of reasons. "Silently loading" packages makes assumptions
about those packages which may not be true on any particular system. For
example, try to load the SmaCC development package (I did this yesterday)
which will silently install RB. Do I mind? Yes. Because RB hasn't been
updated to the KCP changes in 3.6 because it makes all sorts of extensions
and modifications to my system. I do mind very much if some package thinks
it needs to enforce what that package thinks is "good for me".

This is in particular true about package/versioning systems. You seem to
assume that Monticello is going to be the "one and only" system in Squeak.
Well this may be true and it may not (IIRC, quite similar things have been
said about DVS). Someone might port Store to Squeak. And someone else might
invent an entirely new system. These similar kinds of systems can easily
conflict as they have to hook into the system at a very low level and I
would be extremely unhappy with some package which silently loads a
potentially incompatible packaging/versioning system for no other reason
than me being able to even look at it.

Another reason why I don't like this approach at all is evolution. The
smallest common denominator among the different versions of Squeak and other
Smalltalks are just plain (potentially attributed) file outs. Using one of
those will enable you to load that particular piece of code even years from
now, and from systems which are out of use for years. For example, I still
have code which I wrote in VW (ten years ago) in a particular
packaging/versioning system and it is because it used basically fileout
format that I don't have to worry about it. I can still browse and load it
and I will be able to do this ten years from now even though I no longer
have the packaging system being used.

Just consider that even the B3D package (which I put up on SqueakMap a
couple of month ago) could not be loaded into Squeak 3.6 any longer without
some serious fiddling with the loading architecture. I solved this problem
by extracting the SAR (which fortunately is plain zip) into a directory,
manually installing the files from there and then fix up the loader.
Consider what this would mean if each file were an .mcv and something in the
format or interface would change (thus my original point of me not using any
"beta" versions for reliable packaging).

All of this speaks in my understanding very loudly against silently loading
(or even requiring) some particular package unless it is needed for what the
package itself does (which, btw, applies to the SmaCC/RB example above, but
this was an illustration about the kinds of things that can easily happen
when you start loading stuff silently).

Hey, why I do even have to tell you this - you are the guys who want to cut
the system into bits and pieces ;-) I'm actually making _your_ points ;-)

Cheers,
  - Andreas

> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org 
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On 
> Behalf Of Daniel Vainsencher
> Sent: Monday, July 28, 2003 2:16 PM
> To: The general-purpose Squeak developers list
> Cc: 'The general-purpose Squeak developers list'
> Subject: RE: 3.6 "full" packages
> 
> 
> There's another relevant kind of reasoning -
> A user of a Monticello package (say B3D) might choose to become a
> developer of that Monticello package, and they should do so using MC,
> and this should be as easy as possible. This suggests silently loading
> Monticello when the first package that uses it is loaded. This is what
> Ned did for SAR and IIRC Goran said he'll do for plain SM.
> 
> Developers that then want to make a clean image that includes B3D but
> doesn't include it would of course unload it after they 
> finish using it.
> I don't see why "mere squeak user" should mind very much that MC gets
> silently loaded. Do you?
> 
> Daniel
> 
> Andreas Raab <andreas.raab at gmx.de> wrote:
> > > If all you want to do is load a package into an image, 
> Monticello  
> > > provides an "export" command that does a conventional 
> fileout of the  
> > > package. You can post that on SM or stick it in a sar as 
> usual. That  
> > > said, Monticello isn't really a packaging tool. It's a 
> versioning tool,  
> > > which may not be what you're looking for.
> > 
> > All I'm looking for is something really simple: A way of 
> shipping a package
> > so that people who receive it a) are not required to have 
> any particular
> > package (be that DVS or Monticello or whatever) before they 
> can even look at
> > it and b) those people who do have the particular package 
> are capable of
> > loading it into their existing environment.
> > 
> > Reasoning: If you are a just a mere Squeak user you will 
> probably not care
> > very much about what particular packaging/versioning system 
> I have used, so
> > I don't want to bother people with it. Those who do 
> development with or in
> > the package I am shipping I want to be able to tell "well, 
> if you want to
> > make sure that the latest version doesn't just kill 
> whatever you did, please
> > load XYZ".
> > 
> > As far as I am aware Monticello doesn't support both. You 
> can either ship
> > the .mcv, violating point a) or you can do an export, 
> violating point b).
> > Please, *PLEASE* tell me that I'm wrong.
> > 
> > Cheers,
> >   - Andreas
> 



More information about the Squeak-dev mailing list