About the clean of SystemDictionary

stéphane ducasse ducasse at iam.unibe.ch
Tue Sep 28 15:13:03 UTC 2004


Hi all

we the KCP team are cleaning the kernel of squeak not for fun nor for 
the beauty (ok sometimes I think that
we need beauty to dream about new languages since they should be even 
more beautiful). Now we would like to have
squeak as a system that can mutate over the next 20 next years. We want 
to use squeak to dream about new languages
and so on. For that we need clean code (such as the AST visitor because 
to check literal or whatever we do not want to
have a recompile and fix ugly code everywhere).

Now we would like to be able to define new kernel inside squeak: yes a 
different Object and Class classes.
for that we need to clean SystemDictionary but we would like to avoid 
to impact anybody else and
still have a good system at the end.  After trying last year (with some 
successes and some lose of brain cells
for example Beeper), we would like to fix that class once for all.

Here is the plan:
	- 1 introduce a clean namespace class:
		(warning warning not something complex, no composition, no nesting, 
no inheritance....
		just a class that holds binding but does not inherits from Dictionary 
and has a cool interface and not 12 responsibilities)

	- 2 delegates from system dictionary to it
				Namespace smalltalk would return Smalltalk

	- 3 fixes all the ugly Smalltalk at: ...to use the new interface of 
Namespace but keeping the old ones in SystemDict
	 so that people can still load their code without any problems

Note that point 4 and 5 should be atomic
	- 4 deprecate everything "move" **everything** from SystemDictionary 
to SmalltalkImage and other classes
	- 5 then introduce Smalltalk as a pointer to SmalltalkImage default
	
this way after this period of time: 	
	- Smalltalk will work for old code
	- Smalltalk will be not a subclass of Dictionary
	- We will have a clean Namespace and the tools using it
	- And Smalltalk/SmalltalkImage will be clean.

So we are looking for feedback.

Stef






More information about the Squeak-dev mailing list