[Cuis-dev] Haver a Cuis based Smalltalk with Modules
Gerald Klix
cuis.01 at klix.ch
Fri Apr 30 08:33:23 PDT 2021
Hi Juan,
On 2021-04-30 16:00, Juan Vuletich via Cuis-dev wrote:
> Hi Gerald,
>
> This is great! It is nice to know that you have kept developing this
> project. You have put a lot of work in this, and it is really impressive.
Thank you very much!
>
> On 4/28/2021 5:26 PM, Gerald Klix wrote:
>> Hi all, Hi Juan,
>>
>> I am proud to announce the first alpha-release
>> of Haver, a Cuis based Smalltalk with extensive
>> support for Modules, including Browsers
>> for module-management.
>>
>> No more name clashes!
>>
>>
>> Haver is a complete distribution of Cuis
>> with all packages from the various
>> Cuis Smalltalk Repos at
>> https://github.com/Cuis-Smalltalk.
>>
>> Virtual Machines for Linux X86, Windows and
>> Raspberry OS are also included.
>> Of course the virtual machines include
>> Juan's awesome VectorEnginePlugin.
>> Even if you think you don't need Modules,
>> it still provides you with
>> a turn-key Cuis-distribution.
>>
>>
>> You can find more about Haver at:
>>
>> http://haver.klix.ch
>>
>>
>> Many thanks to Juan Vuletich for providing
>> a simple and understandable Smalltalk
>> implementation.
>>
>> Please note: Haver is not a fork of Cuis,
>> it is an extension.
>>
>>
>> Have fun and Best Regards,
>>
>> Gerald
>>
>
> I just read the documentation, and started playing a bit with the system.
>
> I wanted to get a feel of how would it be do use it for real. So, I
> created 2 modules, each with a class. Then I tried to reference a class
> in M2 from a class in M1. I could do it with an explicit reference:
> toto
> "
> M1Class new toto
> "
> ^(Modules >> #M2 >> #M2Class) new
>
> This is reasonable. Then I tried to "import" M2 into M1, so M1 can use
> all the stuff in M2, without an explicit access path. I think this is
> the preferred way to reference to external stuff. But I couldn't make
> this work. I'm not sure if the Modules tool and the Module Browser allow
> some way I could not find, or if this use case is not yet supported.
Oh yes I added that tutorial to the documentation:
http://haver.klix.ch/tutorials.html#exporting-and-importing-a-class
And there a SimpleEnvironments implementation.
that is -- among other uses -- used as a indirect super-class for Modules.
If you only want explicit imports, you
can create environments like:
SimpleEnvironments environment" #MyFunnyEnv
Of course no tooling, no default module support
>
> So, my suggestions are:
> - Support my preferred style if not already supported
This should work with every environment
implementation, but it needs to be documented:
Ars longa, vita brevis ....
> - Make tools "more obvious" (i.e., what is API / SPI?)
> - HowTo docs, using the tools, following a few simple and real-life-like
> examples, and helping the user understand how to navigate the system.
As I tools you I consider implementing a simple module browser.
I filed an issue:
https://todo.sr.ht/~cy-de-fect/HaverOnCuis/9
>
> An additional idea: I think Modules and Packages should be tightly
> integrated, at least in the mind of the user. Making them completely
> orthogonal forces the user to consider many probably useless
> combinations. Especially when dependencies are included!
I will consider it. But the orthogonality has to
stay, I am making use of it.
Anyway, I filed an issue:
https://todo.sr.ht/~cy-de-fect/HaverOnCuis/8
I hope I described your wish correctly.
>
> BTW, you built VMs for various platforms with the VectorEnginePlugin!!!
> This is also wonderful. Thank you. I'll test them. May I have your
> permission to exctract those VMs and make them available to others for
> use with Cuis, until the VectorGraphics plugin gets integrated into the
> official OpenSmalltalk VMs?
Of course, you are welcome.
May I make a suggestion:
Haver contains a package named 'Distributor'.
With some refactoring, e.g. adding some abstract
super classes it can be used to create a Cuis
distribution in a zip-file.
The distributor, included in that package,
packs the running VM.
In a nutshell: With 3 hours of work, you will
have the means to create Cuis-distribution packages like breading
rabbits (or cuises).
I considered doing this myself but as i said:
Art is long, life is short ...
There is also cheap and dirty way.
Try to use the distributor package to
create a Haver distribution and write a shell
script, that strips the Haver parts, e.g.
packages/haver and the two images in Images.
HTH and Best Regards
Gerald
More information about the Cuis-dev
mailing list