Proposal: Squeak-E = Squeak x Kernel-E
cg at cdegroot.com
cg at cdegroot.com
Mon Jan 27 08:19:27 UTC 2003
Robert Withers <squeak-dev at lists.squeakfoundation.org> 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
machine.
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 http://www.cdegroot.com <cg at cdegroot.com>
GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD 1986 F303 937F E098 9E8B
Cogito ergo evigilo
More information about the Squeak-dev
mailing list
|