[squeak-dev] Environments: Import order
Levente Uzonyi
leves at elte.hu
Sun Dec 22 16:38:48 UTC 2013
On Fri, 20 Dec 2013, Chris Muller wrote:
> Oh, so that's my problem then, I see the sequence of import:'s as
> defining the search path, just like in Java imports. I fail to
> understand what is different about this kind of import...
>
> ....
>
> Ok, I think I got it by asking myself, should Smalltalk be first in
> the import list or last? Answer: First. Because you're "building
> up" a name space a la inheritance.
It shouldn't be imported at all. I think the only reason why an
environment is importing itself is to make the lookup in #bindingOf:
work. But since we have to change the binding lookup - because it's the
source of all kind of bugs - we can easily get rid of importing self.
You don't want a class defined in your environment to be shadowed by
another class from an imported environment, do you?
Levente
>
> And, this gives the ability to override names that might be in Smalltalk..
>
>
> On Fri, Dec 20, 2013 at 3:56 PM, Bert Freudenberg <bert at freudenbergs.de> wrote:
>> If both Griffle and Plonk provide Feep, I expect to get Plonk's Feep, not Griffle's, or worse, a Feep that was defined even before Griffle or Plonk. So to me the order makes sense.
>>
>> Importing is very different from a search path, which indeed would be resolved the other way around.
>>
>> - Bert -
>>
>> On 20.12.2013, at 22:49, Chris Muller <asqueaker at gmail.com> wrote:
>>
>>> Plus, the way the API is used
>>>
>>> myEnvironment
>>> import: #Griffle ;
>>> import: #Plonk
>>>
>>> looks more like a chain-of-responsibility list.. Not that Plonk
>>> "wraps" Griffle..
>>>
>>> On Fri, Dec 20, 2013 at 3:35 PM, Chris Muller <asqueaker at gmail.com> wrote:
>>>> Well, it's backward from how name-resolutions works in other languages
>>>> like Java, isn't it?
>>>>
>>>> On Fri, Dec 20, 2013 at 3:03 PM, Frank Shearar <frank.shearar at gmail.com> wrote:
>>>>> On 20 December 2013 20:40, Chris Muller <asqueaker at gmail.com> wrote:
>>>>>> One thing I just noticed is that the #import... methods on Environment
>>>>>> seem to chain the imports in order they are added. This means the
>>>>>> last-added is first-searched when resolving names.
>>>>>>
>>>>>> Seems like first import should be first-searched...?
>>>>>
>>>>> I think the behaviour's the correct one: adding imports is like
>>>>> wrapping a present in layers of paper: the last added layer/import is
>>>>> the outermost layer.
>>>>>
>>>>> frank
>>>>>
>>>
>>
>>
>
>
More information about the Squeak-dev
mailing list
|