Fear and loathing of the "perification" of Smalltalk

Igor Stasenko siguctua at gmail.com
Thu Sep 13 12:36:11 UTC 2007


I don't see how [...] values can be implemented without modifying VM.
You need to call some primitive to activate a block and execute
statements. Of course, having a source(or parse tree) , you can parse
it and then convert each statement in separate block and execute them
one by one. Then you don't need to modify VM code. But speed ...

Also, some use patterns don't fit the purpose and can lead to errors
and undefined behavior.
Consider following:

block := [ | temp |    temp := 1.   temp:= temp+1.   temp ].

and somewhere later:

result := block doInParralell

Suppose you sending #doInParralell message to some unknown block
(which contents is unknown at compile time). It's very interesting
what results will be.



More information about the Squeak-dev mailing list