Squeak and Namespaces

Klaus D. Witzel klaus.witzel at cobss.com
Thu Nov 30 10:24:59 UTC 2006


On Thu, 30 Nov 2006 10:17:41 +0100, G"oran wrote:
> Hi!
>> Hi G"oran,
>> on Thu, 30 Nov 2006 01:19:41 +0100, you wrote:
>>> Hi!
>>> Giovanni Corriga <giovanni at corriga.net> wrote:
>>>> Il giorno gio, 30/11/2006 alle 12.07 +1300, Michael van der Gulik ha
>>>> > Also, your message names are capitalised, which will have a negative
>>>> > affect on your karma.
>>>>
>>>> Isn't this what Henryk's Environments do?
>>>
>>> Henrik, not Henryk. And I would probably say Dan's/Henrik's  
>>> Environments
>>> - Dan started that path and Henrik tried to fulfil it.
>>>
>>> Personally I think it is too complicated - I dislike hierarchies in
>>> general :).
>>
>> My mistake: I wrote "hierarchy" but in fact the space is organized like
>> the space in Trait (users of a trait composition and the composition's
>> components).
>
> You lost me. You have "System >~ Default >~ Compiler" - that is a path
> down a hierarchy, right?

Inasmuch as containers and components form a hierarchy: yes. Inasmuch as  
the atom of a hierarchy can always root a subhierarchy versus, an atom of  
a namespace can always be subdivided: no.

Suggestion: you take the branch marked with *yes* :)

>>> But yes, the idea was to use late binding using message
>>> sends etc.
>>
>> No, this was not my idea. The compiler reduces the #>~ message symbol:
>
> Ok, but it was in Henrik's/Dan's code. :)
:)
>
>>   (A >~ B) "results in"
>>   (Association key: #B value: B) "which is a component of A"
>
> Eh... so you do compile time binding just like I do? Then what was the
> point of using a "binary message"? Just syntactic?

Partially; more specific: an attempt to use the same syntax for coding and  
for maintenance (for doIt and friends) which *also* can be overridden  
(specialized) at will (like, for example, in the Smalltalk language every  
method can be overridden at will :)

In this particular discussion, I mean *not* to override your  
#scopeVariable method in Parser. Instead, here's the difference:

  binding := scope perform: #>~ with: varName asSymbol "cannot just send >~  
here ;-)"

Note the difference between #bindingOf: and #>~ (the latter is a binary  
message, suitable for easy doIt).

/Klaus

> regards, Göran
>




More information about the Squeak-dev mailing list