[Cuis-dev] Porting State of Magma

Gerald Klix cuis.01 at klix.ch
Mon May 17 22:55:13 PDT 2021


Hi Philip,

Thank you very much!

At list the unit-tests of the collection classes
are all green. Maybe they are useable (and
usefull) without the other stuff.


Best Regards,

Gerald


On 2021-05-16 22:43, Philip Bernhart via Cuis-dev wrote:
> Hi,
> 
> some people were interested into porting Magma to Cuis.
> 
> After investing roughly a week into that project,
> I think I'll invest my time now a little bit in other
> more promising projects and come back to it after I
> got _atleast_ my mail re-implementation working:
> 
>    https://github.com/Phantasus/Cuis-Smalltalk-Mail/
> 
> The current state of it is documented at:
> 
>    https://github.com/Phantasus/Cuis-Smalltalk-Magma
> 
> What is the current state?
> 
> 1. Core packages converted in format for Cuis
> 
> 2. Hooks were disabled, which caused crashes when
>     magma registered them on loading the package (startup/shutdown
>     hooks)
> 
> 3. Notification handling is turned off, as there is no mechanism
>     for them in Cuis as they behave in Squeak
> 
> 4. MaCollections tests pass, Serializer tests pass. The server
>     tests don't
> 
> 5. A good bunch of the Squeak classes were replaced by Cuis versions
> 
> 6. Some code was refactored/rewritten just to make it useable in Cuis
>     or to understand an error
> 
> 7. Special hooks still exist in the codebase, but were reduced by
>     me so that Project, monticello and Environments don't need to be
>     re-programmed just to get Magma running.
> 
> 8. Creating an on-disk repository kind of works, magma asks for
>     a user id then and you need enter it twice, because for some
>     reason which I don't yet understand is that the first time is
>     discarded and then causes an corruption error, which shows
>     an error screen with the text that the database is corrupt
>     and is restoring, then it tries to read an object from it
>     and the object id isn't valid and in turn causes a new
>     MagmaInvalidOid error.
> 
> What makes it hard?
> 
> 1. Hard squeak bindings and hooks, so you need to have all the time
>     a Squeak image running, just to be able to understand some errors.
> 
> 2. Complexity, complexity
> 
> 3. Concurrency of processes and critical paths within the image as
>     Magma starts them all the time for different housekeeping tasks.
> 
> 4. Notifications and exceptions, they are signaled all over the place
>     and can contribute to the overall porting difficulty.
> 
> 5. Sometimes rather dense coding style, so things need to be rewritten
>     that even the average joe can understand it. I can't read nested
>     blocks with indentation which is for my taste rather obscure.
>     
> 
> Cheers,
> Philip
> 


More information about the Cuis-dev mailing list