Tom --
I think this is a good approach. I've always thought of the "levels" as more on the same level, but with different kinds of fences around them ...
Cheers,
Alan
At 11:05 PM -0000 12/28/98, Tom Morgan wrote:
SystemDictionary become: nil.
I got curious when the fragment was posted, to think about what exactly this means and what it does (in addition to crashing the VM).
In the responses to this post and in the discussion of other impressively disruptive expressions, the idea of 'levels' kept coming up. Plainly,
SystemDictionary become: nil.
*means* more than a 'simple' assignment does.
One of the points that has been made on the list is that even 'simple' assignment is/can be thought of as a meta operation -- it is, in effect, the recompilation of the accessor for the variable assigned to.
Worthy of Lord Shiva, the operation:
SystemDictionary become: nil.
is spectacularly a meta-operation, since it destroys every name in the image, and the possibility of ever naming anything, at *any* meta level, ever again.
One way of thinking about this could be to regard the assignment as properly happening all the way up the reflective tower, at the 'top' of an infinite number of meta levels.
This might be a clue about how to arrange an environment, where these kinds of spectacular operations are possible, yet the environment is safe for mere mortals.
-As a mere mortal, I may make and revise the values in my image. -As a demigod, I may make and destroy the names of mere objects. -... -... -... -As Shiva, destroyer of worlds, I may destroy the very ability to name. (It would be also nice to imagine the ability to re-create the ability to name, within the confines of the self same meta structure) -- I think that an important element of a re-do of the Smalltalk meta structure should be an incorporation of the 'levels' of meta operation in an explicit way.
People seem to do live life with blurry use/mention distinctions *most of the time*, so there should a light touch to the explicitness of the meta levels -- there if you needed them, in the background if not.
...Tom M
-- +---Tom Morgan ------------------------------ (tmorgan@acm.org) -----+ I Brooklyn Union Phone: 1 718 403 2427 I I 1 MetroTech Center Fax: 1 718 488 1752 I +---Brooklyn, New York 11201 USA ------------------------------------+
Hmmmm.
Maybe like this:
+ + + + + + + | | | | | | | | | | | | | | | | | | |.......| | | | | | | | | | | | | | | | + + + + + + +
+--+--+--+--+.......+--+
Where mostly we run around the bottom alley, heedless of 'levels'; or if need be, move up and start to hop over those little vertical fences when we need to keep the metalevels straight?
I wonder how to make this drawing out of software.
I have the thesis with the 3-lisp implementation in it around here some place. That might be a good place to look.
It certainly knew how to make the fences, but no alley, I think.
squeak-dev@lists.squeakfoundation.org