<div dir="ltr"><div>I think we should think more carefully about this, I'm not sure we really need those hooks.</div><div>IMO, if we want to support different implementations of environments, the first thing we should do is start by changing the current uses of SystemDictionary (like the Browser and other tools), especially the references to the global Smalltalk. We could implement #environment in Behavior, answering always Smalltalk, and everywhere the global Smalltalk is used replace it with 'someClass environment'. And then patiently change everything else in the base image that assumes a single global environment (for example the change log, refactorings like renaming classes, etc).<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 6, 2020 at 2:49 PM Gerald Klix via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2020-10-05 21:47, ken.dickey--- via Cuis-dev wrote:<br>
> Hi Gerald,<br>
> <br>
> I am looking at methods in EnvironmentImplementationsDictionary.<br>
> <br>
> I am confused. Perhaps a class comment could clarify.<br>
> <br>
> In my mind, one uses Environments (Namespaces) to allow multiple classes <br>
> with the same name to exist without problems.<br>
> <br>
> But looking at (e.g.)<br>
>    EnvironmentImplementationsDictionary>>classNamed:<br>
> it appears that the first class with some name is returned.<br>
> <br>
> I would expect something more like a set of (Env->Class) where each <br>
> class has the same class name.<br>
> <br>
> So I am missing something fundamental.<br>
> <br>
> Can you help me out?<br>
> <br>
> Thanks much!<br>
> -KenD<br>
<br>
Good Morning Ken,<br>
<br>
thanks for asking. Obviously my command of English is not good enough to <br>
invent self-explanatory names.<br>
<br>
Its "EnvironmentImplementation*s*Dictionary".<br>
Each environment implementation - yours, mine, anybody's -- should <br>
register an instance of a environment manager class with this <br>
dictionary, which in turn, dispatches most of SystemDictionary's <br>
retrieving and helper<br>
methods to various environment *implementations*. In many cases the first<br>
answer is taken.<br>
<br>
Clearly if two environment implementations<br>
manage an environment and a class with the same names each -- what a <br>
"name" is, is up the implementation -- we have a conflict,<br>
but I presume this will happen seldomly.<br>
<br>
Do you have any suggestion for a better<br>
name?<br>
<br>
<br>
HTH,<br>
<br>
Gerald<br>
-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div>