[BUG]Celeste cannot be loaded from SqueakMap with 5707

Peter van Rooijen peter at vanrooijen.com
Sun Feb 22 19:51:38 UTC 2004


From: <bernhard at pieber.com>
> I did the following:
> - Downloaded Squeak3.7a-5657.zip (from the mirror in Magdeburg)
> - Updated code from the Squeak Public Updates (updated to 5707)
> - Opened the Package Loader
> - Installed Celeste 1.21 from SqueakMap
>
> I got the following message dialog:
> Error occurred during install:
> TimeZone is defined elsewhere
>
> I could only press OK. I should definitely be able get a debugger for
> that. To hide debuggers is almost never a good idea. How about a choice
> between Debug and OK to confirm the message?

Bernhard,

This looks like a bug. It is not an error in Smalltalk in general to have a
class variable with the same name as a global. Other dialects allow this
without any problem.

Squeak has an additional problem in that class variables aren't always
looked up correctly when inherited. I posted about these issues and supplied
a fix for 3.6, with tests, a few months ago.

But there was some discussion about whether it should be allowed in the
first place to have class variables shadow globals with the same name. I
personally don't see how that could reasonably be avoided, plus it doesn't
cause any problems. In fact the nesting of shared variable enviroments helps
prevent unintended interactions between modules. I hope the powers that be
decide to fix this.

Cheers,

Peter

> I did not install MCInstaller and LargeLists because they should already
> be in the update stream. If this is correct the description on SqueakMap
> should be updated as well.
>
> - Bernhard
>
>
>




More information about the Squeak-dev mailing list