Am 17.07.2005 um 00:48 schrieb Doug Way:
- 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 -