Levente Uzonyi-2 wrote
On Tue, 3 Feb 2015, Marcus Denker wrote:
On 03 Feb 2015, at 09:17, Marcus Denker <
marcus.denker@
> wrote:
On 02 Feb 2015, at 21:47, Eliot Miranda <
eliot.miranda@
> wrote:
Hi All, Â Â code as in the double bars forming the end of block arguments and the beginning of block temporaries in
This is fixed in Pharo4 (I think we did that in Pharo3 already):
I should search the issue in the issue tracker⦠it seems to be Pharo4, so just 1296 closed issues to check there⦠I will search for it.
Another question: In the code I saw. ReadOnlyVariableBinding. I removed that in Pharo relatively early as it was not used: half of the classes were stored that binding (old ones) all newer ones where just associations. The code to make a binding "read only" was never called.
Is this now used in Squeak? Is it worth the complexity?
Squeak doesn't use ReadOnlyVariableBinding anymore. The bindings of classes are instances of the ClassBinding class. Without using separate class it's a bit cumbersome (and less OO) to decide if an assignment to a global variable should be allowed or not. E.g.:
Foo := 1.
should work if Foo is a global, but not a behavior. It should raise an error if it's a behavior.
I have mixed feelings about that. In most Smalltalks one can write something like the following and expect it to work. | original | original := SomeClass. [SomeClass := SomeReplacementClass. ... some code involving SomeClass (typically a passed in Block) ... ] ensure: [SomeClass := original] That is, the name of the thing is not the thing itself. Of course, as long as one could write /Smalltalk at: #SomeClass put: SomeReplacementClass/, it would still be possible to achieve the same effect. (And of course, "Smalltalk" could be any namespace.)
Levente
Marcus
-- View this message in context: http://forum.world.st/-tp4803298p4803783.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.