Condensed Sources vs. Squeak Maintainence
denker at iam.unibe.ch
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...
Size: 3938 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20060724/ddfd0638/smime.bin
More information about the Squeak-dev