SqueakSource issues (was Re: New 3.9alpha image is ready! (sort of))

Bert Freudenberg bert at impara.de
Sun Jul 17 20:43:37 UTC 2005

Am 17.07.2005 um 00:48 schrieb Doug Way:
> 2. The .mcd file does not exist.  How is this intended to work?
>   A. Is the SqueakSource server supposed to generate the .mcd file  
> on the fly, or maybe upon the saving of a new version?  (Makes  
> sense, that's a lot less bandwidth for these big packages.)
>   B. Should the MCConfig code in the image not be trying to  
> download .mcd files?
>   C. Do we need to be saving .mcd files and not .mcz when we save  
> new versions to the repository?
> (I'm pretty sure the answer isn't C, that would be dumb.  I'm  
> guessing A.)

Yes it's A, a diff is generated on the fly when it is requested  
first, and then cached. Building a diff for version n
against the previous n-1 versions would be O(n^2), and we might never  
need all. So it's only built on demand.

> (Speaking of non-version-specific, it might be nice to be able to  
> define a non-version-specific MCConfiguration for this purpose, so  
> that it's clear in the method that the version numbers aren't meant  
> to be used.  E.g. map _ MCConfiguration fromArray: #(repository  
> ('http://source.squeakfoundation.org/39a') dependency ('Kernel')  
> dependency ('Collections') ... etc.  Although perhaps the initial  
> versions or uuid's are needed for ancestry info?  Anyway, not a big  
> deal.)

Well, if it's solely used to define the load order, and the versions  
are named after the package, that should indeed be sufficient.

The reason a config map item has the package, version name, and uuid  
is that the version name could be anything, although in practice we  
usually rely on it matching the package name. The UUID should be used  
to make sure we load the correct version, because version names are  
not guaranteed to be unique (however, I think at the moment the code  
does not actually verify that).

- Bert -

More information about the Packages mailing list