Condensed Sources vs. Squeak Maintainence

Marcus Denker denker at
Mon Jul 24 17:44:01 UTC 2006

On 24.07.2006, at 18:21, Klaus D. Witzel wrote:

>> By the selector of a Method is not "meta"!
> I'm sorry it is "meta" by tradition. Otherwise it would have been  
> stored in the method (literals) since the 80's of the previous  
> century. And if you cannot agree with that view:
> only the VM knows about the relationship between the selector used  
> for method lookup and the found and executed method. This *is* what  
> meta is about, that's what I think.

If the model that we want to have is just "execution", then this is  
correct. This is what we have now: A model describing classes/ 
methods, where the description of the
classes is both for the machine and the programmer, but for methods  
we only model execution. What I would like to see (now that machines  
have become so
much more powerful) is to move this model up one level and make it's  
main goal to be a model of the program for engineering, while keeping  
this model executionable.

This is why a method should know it's class (this is what a developer  
thinks about a method) and it's name... the whole mode of the system  
should be on an abstraction
level of  that kind of model that you would design for a re- 
engineering or visualisation tool...

e.g. for execution, a class needs no name, just like a method needs  
no name. You could have nameless "CompiledClasses". But the objects  
encoding classes we do
have a slot for the name... Because they have not only the  
interpreter as the client, but the developer tools (and the  
developer), too. Because it makes no sense to
destinguish between the two: The higher level model with name is  
perfectly executable, too.

It makes the tools much simpler: In 3.9, methods know their class  
without having to search the whole system. As soon as that was done,  
I started to refactor a little... it
turns out that this information makes the design simpler: e.g no need  
to call "decompileClass: aClass selector: selector" on the  
compiledMethod... just call
decompile on the method, no need to funnel the extra information to  
all the places where they are needed. For the tools, it feels much  
more natural if the methods
know more than nothing... as then the class/method structure will be  
your meta model that you can use directly.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3938 bytes
Desc: not available
Url :

More information about the Squeak-dev mailing list