[squeak-dev] Re: Monticello: loading multiple packages only
mentions first package's name
Chris Muller
asqueaker at gmail.com
Tue Dec 27 00:03:09 UTC 2011
>> Installer cache
>> install: 'AlgebraicDataType';
>> install: 'Unification';
>> install: 'Zippers'
>
> If I rewrite the script thusly:
>
> Installer cache
> install: 'AlgebraicDataType'.
> Installer cache
> install: 'Unification'.
> Installer cache
> install: 'UnificationTests'.
> Installer cache
> install: 'Zippers'.
>
> then all goes well.
I noticed the exact same thing just a couple of weeks ago! Just awful.
What you (we!) originally wrote is a natural, user-friendly way to
direct the installer, definitely not something that it should silently
punish the user for!
But before putting out a reactive-fix, I wanted to see if we could
look at the API and understand how Installer is intended to be used.
Does one "set up" with builder methods like #addPackage:, and then a
pull the trigger with #install to load them all at once?
Or, is it meant to be used like you were -- like a nice utility Facade?
Installer cache install: 'pkg1'; install: 'pkg2'; etc.
Or, something else?
We definitely need to clarify and fix this.
>> and I pass that in as the startup script when I start up my Squeak
>> (whether a pre-4.3 or a 4.3 (yay!)), I see the usual progress bar. It
>> says "Compiling AlgebraicDataType-fbs.nn" and then "Installing
>> AlgebraicDataType-fbs.nn", as expected. And then it says the same
>> thing again, talking about installing and compiling AlgebraicDataType
>> instead of Unification, and then again when loading Zippers.
>>
>> The packages all load correctly: it's just the progress morph giving a
>> misleading status message. Has anyone else seen this?
>
> Further, the name of the ChangeSet into which the package loads gets
> mangled to start with the first package loaded. That's because
> MCPackageLoader>>basicLoad which has:
>
> "Obviously this isn't the package name but we don't have anything else
> to use here. ChangeSet current name will generally work since a CS is
> usually installed prior to installation."
> pkgName := ChangeSet current name.
>
> If I read correctly, Installer eventually calls
> InstallerMonticello>>basicInstall, which calls "self mcThing load".
> Had that been "self mcThing loadWithName: <left as exercise to
> reader>", I think things would be fine, and I'd see sensible changeset
> names (and status messages during loading). Is it feasible to change
> Installer to call a better loading method like #loadWithName: ?
>
> frank
>
More information about the Squeak-dev
mailing list
|