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

Gerald Klix cuis.01 at klix.ch
Wed Oct 7 08:44:46 PDT 2020


On 2020-10-07 16:07, Juan Vuletich via Cuis-dev wrote:
> On 10/7/2020 3:19 AM, Gerald Klix via Cuis-dev wrote:
>> On 2020-10-06 21:29, ken.dickey at whidbey.com wrote:
>>> On 2020-10-06 08:52, Gerald Klix wrote:
>>>
>>>> Please bear with me until I can provide a simple example
>>>> implementation that handles environments.
>>>
>>> Gerald,
>>>
>>> Thanks much for this quick response.
>>>
>>> I am not the world's brightest light, so sometimes it takes me a 
>>> while to get things.
>>>
>>> Also, apologies for not yet completing my PackageEnvironments 
>>> proposal. You are motivating me to get back to it.
>>>
>>> With so many ways to implement Namespaces/Environments, it is good to 
>>> have a number of concrete implementations to explore to find/get the 
>>> best outcomes.
>>>
>>> I am very much looking forward to the fruits of your efforts!
>>>
>>> Good on ya,
>>> -KenD
>>>
>>
>> Good Morning Ken,
>>
>> Mentioning your PackageEnvironments approach motivates me to try again 
>> explaining ths
>> EnvironmentImplementationsDictionary thing:
>>
>> Suppose we have two packages (or set of packages) that implement 
>> environments.
>> One is your "package environments (PS) implementation", the other one 
>> a simple environment implementation (SE).
>> Both implementations should provide
>> a so called environment manager singleton,
>> that manages their implementation's environments. These managers 
>> should be registered with the EnvironmentImplementationsDictionary 
>> singleton.
>> Of course both must implement the protocol
>> demanded by this class.
>> This way two our more environment implementations can coexist in one 
>> Cuis image.
>>
>> I tried to implement Juan's (soft) requirement:
>> "
>> Yes. I want Cuis to be a good place for doing any kinds of 
>> experiments. Adding hooks for optional pluggable behavior is a big 
>> part of that."
>>
>> You can look at
>> https://gitlab.com/klgcuisstuff/environments/-/blob/master/EnvironmentsBase.pck.st 
>>
>>
>> and
>>
>> https://gitlab.com/klgcuisstuff/environments/-/blob/master/SimpleEnvironments.pck.st 
>>
>>
>> to get the details.
>> Please don't file these packages in, they are
>> currently broken.
>>
>>
>> HTH and Best Regards,
>>
>> Gerald
> 
> If this implies the base image (and people using it) to be aware of many 
> possible implementations of environments, and include the complexity 
> required to make them work smoothly together, then this sounds like too 
> much to me.
> 
> If this is really required, maybe it should go into a 
> MultiEnvironmentsImplementationsSupport.pck.st, or such. Maybe people 
> working on varios implementations of Environments could get together to 
> work on this package. And please, make it require as little as possible 
> from the base image. A few methods delegating to (most likely absent) 
> optional service is ok. Knowledge of all the complexity of 
> MultiEnvironmentsImplementationsSupport.pck.st in the base image, is not.
> 
> Thanks,
> 
Juan,

If all works according to my nefarious schemes,
the environment implementations should know about Cuis' interfaces and 
not the other way around.
I started an EnvironmentsBase.pck.st, with the intention to move 
everything, which is not strictly required in the base image into it;
especially this (in)famous EnvironmentImplementationsDictionary.
It contains an abstract super class
for an environment manager documenting Cuis' interface to it.

In a nutshell: I had the same idea.

However some additional changes in
ClassDescription>>definition will
be necessary (obviously).


HTH and Best Regards,

Gerald


More information about the Cuis-dev mailing list