Proposal: Squeak-E = Squeak x Kernel-E

cg at cg at
Mon Jan 27 08:19:27 UTC 2003

Robert Withers <squeak-dev at> said:
>Why does Array have to be global?  It could be located through the meta 
>scope, which is exactly what VW does (I think!).
Let's define 'global' first :-). 

Global = accessible by name (rather than by capability) where the access
gives the same result for every object/environment/... in the virtual

I think the only real global is #Smalltalk in Squeak (ok, maybe this
World thingie, but I don't know a thing about Morphic), AFAIK all the
other lookups that look global are done through #Smalltalk. And VW might
have a slightly more advanced mechanism, but I wouldn't be surprised if
it boiled down to the same thing.

It is clear that this is a bad thing. It is not clear how far to 'scope
down' - do you want to give each object its own capability on (a version
of) #Smalltalk (might be the best solution, instance var set on creation
from the creator)? Or do you put it in the process environment (easy
'nuff)? Or in a 'collaboration environment' like a Vat or an Island?

Brushing all the neat terminology aside, I think this is what it boils
down to (my apologies to all the participants here, but when too many
'complex words' start to get used in a thread my bogosity meter goes off
the scale, and that's about to happen here ;-)).

BTW, what's the scoping of names in E? If I say:

def makePoint(x, y) :any {

who can get at 'makePoint' by name? Furthermore,

def myFile := <file:/etc/profile>

who can do this and where did we get the capability to do so (ok, this
is an external global namespace, but still an important one to consider)?

Cees de Groot          <cg at>
GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD  1986 F303 937F E098 9E8B
Cogito ergo evigilo

More information about the Squeak-dev mailing list