Refactoring SystemDictionary

William Cole jumpstart at csi.com
Mon Apr 14 12:26:10 UTC 2003


Greetings Sephane.  Don't believe we've ever met.

A topic near and dear to my heart.  I agree conceptually with Tim R's 
previous remarks.  Restating the problem: The major challenge with 
SystemDictionary is that its been used as a catch-all for system 
housekeeping functions.  Now its severely overloaded.

Compounding this is the goal of evolving the image to support multiple 
Environments.  If you want to implement multiple Environments in Squeak, 
you discover a significant problem with inheriting features (and 
image-level visibility) from SystemDictionary that would be inappropriate 
for the majority of Environments to have.

I don't see it being so important as to precisely *where* things are 
refactored to, so much as the refactoring of SystemDictionary takes 
place.  Here's the take on redistributing SystemDictionary that I'm using:

- Move all Class and method queries into Environment.
- Move all Image-level queries into the class that holds all Environments 
for the image.
- Move all VM Management (Power management, VM settings & queries, etc.), 
to another System Support class (I created class VMSupport to hold this).
- Move all Image Management (Packaging/stripping, Profiling, removing 
Undos, Instance queries, Startup/shutdown, etc.) to another System Support 
Class (I've created ImageSupport to hold these).
- Move all Change management functions to one of the Changes Classes.

The above would accomplish most goals for refactoring System Dictionary.

Regards;

Bill Cole


>Stephane Ducasse <ducasse at iam.unibe.ch> wrote:
>
> > hi all
> >
> > I would like to have your point of view on how to clean
> > SystemDictionary.




More information about the Squeak-dev mailing list