On 26.02.2009, at 10:37, Hilaire Fernandes wrote:

> It looks like Association>>isSpecialWriteBinding is gone in Pharo. Can
> someone confirm it?
>
> It hurt because it is used by Magma..
>

Yes. cleanup of un-used code.

The story was that: In the SystemDictionary ("Smalltalk") there are the
classes. Technically, Dictionaries are collections of Associations.

Now, "Smalltalk" has globals *and* classes. Which means, we can do

Object := nil.

And everthing is dead.

This is especially a problem in an ende-user scripting systems (e.g.  
something
more powerful than etoys, but targeted at non-programmers).

Sometime in the last century, someone started to work on making Squeak  
more stable (or
secure for some meaning of secure).

Now, one can fix the assignment problem in two places:

A) name analysis of the compiler. The place where all the other  
warning are generated.
B) replacing the association in the Smalltalk dictionary by one that  
can not be changed.
    (here "value:" raises an exception).

The isSpecialWriteBinding was the test to check if the binging was  
read=only or read/write.
Some classes where referenced using a read-only binging (those that  
where very old), but
all new classes where referenced using a normal association.

There was no code in the image that would create  
ReadOnlyVariableBindings. It was never used
in this century. And: is that really at the right level, that change?  
For controlling assignments,
the compiler's checking phase is much better.

If one wants to make the structure of the sytem (the "structural  
model" in the sense of structural
reflection) read-only, this does not help at all. Remember, this hack  
just touches *one* place in the
object graph that starts with "Smalltalk". It does not, for example,  
secure the method-dictonary. Nor
changes to the inhertance hierarchy.

This is actually a very cool topic of research... and we are  
incidentally actually working just now
on a paper that shows one cool direction of providing "read only"  
views on shared object graphs like
the one that represents the structure of the system.

        Marcus


--
Marcus Denker  --  [email protected]
http://www.marcusdenker.de


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to