Proposal: Squeak-E = Squeak x Kernel-E

Robert Withers rwithers12 at attbi.com
Tue Jan 28 14:05:22 UTC 2003


On Tuesday, January 28, 2003, at 03:36 AM, cg at cdegroot.com wrote:

> Robert Withers <squeak-dev at lists.squeakfoundation.org> said:
>> Actually, let's define Array first.  ;-)
>>
> Good idea.

I had thought so, but...   :)

>
>> Array is the name for a object of class Class.  Global refers to the
>> visibility of that named binding inside of the parser and stack.   The
>> key is that it is the naming system, within Smalltalk.
>>
> In fact, Array is two names: the 'intrinsic' name of the class, and the
> name for a binding to find the class. We're interested in the latter 
> bit
> here.

Right on.  As an aside, how is the first distinction useful?

>
>> A compiler's access to names should be scoped to the context it
>> operates in.  That context is the Class instance, and it's
>> superclasses.    An import of name scopes is the typical way that a
>> class can get to other names.
>>
> Why the compiler?

I had it going so nicely and then I mentioned the compiler.  Darn it.  
Let's replace 'compiler' with object, as you say.

> With the whole, err, 'war' on dynamic scoping raging on
> in the other thread between Stephen and Avi ;), I think there's enough
> complexity already. Can we leave out the compiler for now?

We can.  There is no static typing we want to do, so any deferred 
discussion of the compiler would involve generation of primitive 
methods.

> AFAIK,
> external (class) references are stored in compiled method in a form 
> that
> makes late binding possible, so - again AFAIK - we can play every trick
> we want.

We should find out how this binding is represented and resolved.  It's 
a bunch of new terminology...

>
> What I really want to concentrate on is what is the best way of scope
> for a Squeak with the capabilities of E (pun intended):
> 1. Global (Squeak)
> 2. Per process (Stephen)
> 3. Stack visibility (Avi)
> 4. Per object
> 5. Static

Nice!

>
> 4. is an alternative where the sender contains the scope. I'm not sure
> it is useful, I'm just trying to make a complete list of alternatives
> here. Seems a bit mundane compared with the high-flying discussions
> we've been seeing here on the list, but somehow I feel that the best
> approach here is strip terminology, list alternatives, and make a 
> choice
> ;-)

I had to think about this a little bit, and reassure myself that it is 
the sender that contains the scope.   In fact it is the class, or the 
meta, of the sender, which determines the scope, is it not?

There we are:  meta scope!  ;-)

cheers,
rob



More information about the Squeak-dev mailing list