[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