[Cuis-dev] [RFC] Namespaces, changes to SystemDictionary, Object and a dictionary class for tracking environment implementations

Mariano Montone marianomontone at gmail.com
Tue Oct 6 09:47:27 PDT 2020


In any case, I think the way to go about this would be to fork Cuis and
work there, until something that is good is finished and people agree
would be good to integrate.

El 6/10/20 a las 11:15, Luciano Notarfrancesco via Cuis-dev escribió:
> I think we should think more carefully about this, I'm not sure we
> really need those hooks.
> 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).
> 
> 
> On Tue, Oct 6, 2020 at 2:49 PM Gerald Klix via Cuis-dev
> <cuis-dev at lists.cuis.st <mailto:cuis-dev at lists.cuis.st>> wrote:
> 
>     On 2020-10-05 21:47, ken.dickey--- via Cuis-dev wrote:
>     > Hi Gerald,
>     >
>     > I am looking at methods in EnvironmentImplementationsDictionary.
>     >
>     > I am confused. Perhaps a class comment could clarify.
>     >
>     > In my mind, one uses Environments (Namespaces) to allow multiple
>     classes
>     > with the same name to exist without problems.
>     >
>     > But looking at (e.g.)
>     >    EnvironmentImplementationsDictionary>>classNamed:
>     > it appears that the first class with some name is returned.
>     >
>     > I would expect something more like a set of (Env->Class) where each
>     > class has the same class name.
>     >
>     > So I am missing something fundamental.
>     >
>     > Can you help me out?
>     >
>     > Thanks much!
>     > -KenD
> 
>     Good Morning Ken,
> 
>     thanks for asking. Obviously my command of English is not good
>     enough to
>     invent self-explanatory names.
> 
>     Its "EnvironmentImplementation*s*Dictionary".
>     Each environment implementation - yours, mine, anybody's -- should
>     register an instance of a environment manager class with this
>     dictionary, which in turn, dispatches most of SystemDictionary's
>     retrieving and helper
>     methods to various environment *implementations*. In many cases the
>     first
>     answer is taken.
> 
>     Clearly if two environment implementations
>     manage an environment and a class with the same names each -- what a
>     "name" is, is up the implementation -- we have a conflict,
>     but I presume this will happen seldomly.
> 
>     Do you have any suggestion for a better
>     name?
> 
> 
>     HTH,
> 
>     Gerald
>     -- 
>     Cuis-dev mailing list
>     Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
>     https://lists.cuis.st/mailman/listinfo/cuis-dev
> 
> 



More information about the Cuis-dev mailing list