[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