[squeak-dev] Re: About unloading of packages in the most recent Squeak 4.1 trunk

Hannes Hirzel hannes.hirzel at gmail.com
Fri Aug 27 17:26:20 UTC 2010


Bert,
Somebody (you, Bert?) updated the class comment of MCMcmUpdater  one
or two day ago. It is now more comprehensive and answers many of the
question. However some new come up. See below.

--Hannes

On 8/26/10, Bert Freudenberg <bert at freudenbergs.de> wrote:
>
> On 26.08.2010, at 08:13, Hannes Hirzel wrote:
>
.....
>> 2) Which object is meant here by 'configuration map'?
>
> The update configuration loaded from the repository (e.g.
> "update-xy.42.mcm")

Could you give an actual example of a configuration map with packages
in the unloaded packages list? (I.e name config map xy uses packages
p1, p2, p3)
I assume  it is a file in the repository?
And loaded into the image is it an instance of MCConfiguration?

Is the Monticello Configuration browser used to create them? Why do I
not see any of the configuration maps there?

==================================
The current class comment of MCMcmUpdater
==================================


MCMcmUpdater provides utility methods for updating Monticello packages
from Monticello configurations.

When Monticello configurations are stored in a repository (or
repositories), MCMcmUpdater acts as an update stream. It first ensures
that each configuration map has been loaded in sequence, then updates
the last configuration map to the most recent version for each
specified package, and finally loads these versions to produce a fully
updated configuration.

Currently if a set of packages are unloaded from the image, using this
class to reload them may cause problems, depending on what
dependencies those classes have.  Success is not assured.  Removing
packages via SmalltalkImage>>unloadAllKnownPackages will be
successful, it flags the packages removed so that they are not loaded
by this utility.

If you wish to not have MCMcmUpdater update packages, there are two
ways to handle this:

1) To have MCMcmUpdater not update any packages not currently in the
image set the UpdateMissingPackages preference to false:
		MCMcmUpdater updateMissingPackages: false
	Note that any new packages added to the repositories will not be
picked up when this is turned off.
2) To have MCMcmUpdater not update a specific package, evaluate
		MCMcmUpdater disableUpdatesOfPackage: <packageName>

Class Variables definitions:

DefaultUpdateURL - String: the URL that will be checked by default for
updates.  This would be set for a common standard location to check.

LastUpdateMap - Dictionary of Integer: version number of the last
loaded update map per repository.  Keeps track of the last
configuration map, so that the utility will not have to run through
the full history in the repositories each time you ask to update.

SkipPackages - Set of Strings: names of packages to not update in
MCMcmUpdater (empty by default).

UpdateMissingPackages - Boolean: if true (default), new packages in
the update config map will be loaded unless they are in SkipPackages.
If false, packages not currently loaded in the image will not be
loaded by MCMcmUpdater.  (This can be dangerous if packages are split
- use at your own risk).



More information about the Squeak-dev mailing list