[squeak-dev] Re: SmalltalkImage current vs. Smalltalk

Andreas Raab andreas.raab at gmx.de
Tue Mar 2 19:53:32 UTC 2010

On 3/2/2010 8:55 AM, Igor Stasenko wrote:
> If you remember previous discussion about this, i proposed to use
> Smalltalk, which having a 'globals' ivar , which is a SystemDictionary
> so, that Smalltalk>>at: x
> implemented as
>    globals at: x
> then Smalltalk global is an instance of SmalltalkImage , equal to
> SmalltalkImage current.
> And SystemDictionary is just a dictionary without any extra utility methods.

This is option #2 below. (Sorry I didn't recall your post; otherwise I 
would've named it the Igor variant :-)

   - Andreas

> On 2 March 2010 18:32, Chris Muller<asqueaker at gmail.com>  wrote:
>> Smalltalk is a SystemDictionary, which is-a Dictionary.  This suggests
>> Smalltalk's main responsibility is mapping the list of global names to
>> their global objects, and providing access to them by direct
>> reference.
>> I don't understand why would want to commingle a bunch of utility
>> methods in with this primary (global name mapping) responsibility..?
>> What is the problem exactly?
>> Also, I'm curious about Cuis compatibility; is this really realistic
>> or important?  Why is it important?  This would seem to be a
>> relatively superficial difference with Cuis and other Smalltalk's, so
>> I hope we will base decisions on what we think is the "right thing" to
>> do rather than compatibility with something else that might not
>> matter..
>> On Mon, Mar 1, 2010 at 10:08 PM, Andreas Raab<andreas.raab at gmx.de>  wrote:
>>> Folks -
>>> I was just trying to load some other code and once too many I got bitten by
>>> this silly SmalltalkImage current vs. Smalltalk stuff, so I'll fix it now.
>>> The only question is which way. There are two alternatives which achieve the
>>> goal of "SmalltalkImage current == Smalltalk":
>>> 1) The Cuis variant: Move all the code back to SystemDictionary; implement
>>> SmalltalkImage current as ^Smalltalk.
>>> Pro: Compatible with Cuis.
>>> Con: Lack of separation of concerns.
>>> 2) The inverse Cuis variant: Move all the code from SystemDictionary to
>>> SmalltalkImage; add a 'globals' variable (populated by an instance of
>>> SystemDictionary) and convert everything roughly like this:
>>>         SmalltalkImage current globals: Smalltalk.
>>>         Smalltalk := SmalltalkImage current.
>>> Pro: Better separation of concerns.
>>> Con: Different from Cuis.
>>> I really don't care which way we do it; all I want is to get out of the mess
>>> we've created by introducing "SmalltalkImage current".
>>> If you have an opinion, voice it, otherwise I'll just pick one.
>>> Cheers,
>>>   - Andreas

More information about the Squeak-dev mailing list