[squeak-dev] SmalltalkImage current vs. Smalltalk

Chris Muller asqueaker at gmail.com
Tue Mar 2 16:32:34 UTC 2010

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

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

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