A roadmap for 3.9 (Plus, [BUG][FIX] Wonderland in Squeak 3.7)

Jeffrey T. Read bitwize at snet.net
Sun Dec 12 17:17:20 UTC 2004


Hi,

On Dec 12, 2004, at 11:43 AM, stéphane ducasse wrote:
>
> I just want to something to the story. I'm not satisfied with 
> SystemDictionary and SmalltalkImage as there are in 3.8 because
> it is difficult to find what and where. The situation is like that 
> because we are in the middle of the changes. This is why I would have 
> prefered that we fixed it once for all. (for example by having 
> SystemDictionary = only a namespace and SmalltalkImage = all the rest 
> of SystemDictionary that can't move in another place But this path was 
> the most unstable for external users (mistake of mine)).

Thanks for clarifying. Your original approach makes a lot of sense 
(especially in light of what I see in other Smalltalks). I wonder if I 
should not propose an approach which makes more sense in light of your 
original vision while keeping the functionality that people have come 
to rely on.

* SystemDictionary becomes a namespace only. If you like we can rename 
it Namespace.
* Namespace gains a subclass: RootNamespace. Smalltalk is an instance 
of RootNamespace.
* RootNamespace has an inst var, myimage, which holds an instance of 
SmalltalkImage. RootNamespace has a lot of methods (it looks like the 
old crappy SystemDictionary class); the stuff that SystemDictionary 
used to do that has been factored into SmalltalkImage gets delegated as 
a message sent to myimage.
* An alternative approach would be to override doesNotUnderstand: in 
RootNamespace, causing it to pass the message on to the SmalltalkImage 
class in case of a method which belongs to it instead of RootNamespace. 
(This is probably pretty hacky, and flirting with the Powers of 
Darkness.)

The end result is that the rest of the world can still say "Smalltalk 
doThis" or "Smalltalk doThat" and despite the refactoring into 
Namespace and RootNamespace, everything'll still work; Smalltalk just 
delegates the SmalltalkImage stuff to an actual SmalltalkImage.

Do you see where I'm going with this? Does that resemble what you're 
doing? I'm not sure what everyone's big problem is with the new 
approach, except not being able to send messages to Smalltalk anymore 
in the way they've been doing.

--Jeff



More information about the Squeak-dev mailing list