[squeak-dev] Environments

Colin Putney colin at wiresong.com
Thu Jul 5 19:56:31 UTC 2012

On Thu, Jul 5, 2012 at 12:41 PM, Frank Shearar <frank.shearar at gmail.com> wrote:

> Does that mean that given libraries Foo and Bar that both define
> Object >> #thing, you provide some conflict resolution (say, {#thing1
> -> (Foo at: #Object) >> #thing.}), and then in your Environment you
> have some method
> doIt
>  ^ self thing1

Something like that. You'd do some kind of aliasing, like with
globals, but I don't think you'd specify how #thing1 would resolve to
a compiled method (that would prevent dynamic message dispatch).
Instead you might so something like {#thing1 -> #Foo}. Then the
scanner would find Foo's version of #thing when it encountered
#thing1. That would make decompilation show #thing instead of #thing1.
Or you could do something exotic with name mangling and
ObjectsAsMethods, or... well, this is why I don't want to get into it
yet. :-)

> And while I'm drooling about the idea of a modular Squeak environment,
> what can I/we do to help this first stage?

I think the first stage is to introduce Environment, and install an
instance as "Smalltalk globals" instead of a SystemDictionary.


More information about the Squeak-dev mailing list