Efficient GUI with Ax runtime? #552
Replies: 3 comments
-
This sounds like an interesting idea but I don't think we have any person-hours to devote to it. Lately our primary focal points are
Given that Rust lacks full OOP functionality (no struct inheritance) and a stable ABI, and that Theseus doesn't support nor intends to support a Linux syscall or POSIX compatibility layer, this seems to be a very tall order. I'm also not sure what concrete benefit there would be in supporting an old legacy OOP framework defined in an unsafe language that we couldn't run. I'm happy to explore cool research ideas, though, as long as they provide some benefit either in terms of academic novelty/merit or in terms of improved functionality, compatibility, or performance. |
Beta Was this translation helpful? Give feedback.
-
I understand. Maybe I should look into a dynamic layout engine in Rust myself. Though the OOP is so shallow in Ax that I would think trait implementations and derivation would be enough. |
Beta Was this translation helpful? Give feedback.
-
As a follow-up, https://github.com/iced-rs/iced looks like a better implementation anyway and only needs a few more gadgets and a software-renderer fallback to be useful for Theseus. |
Beta Was this translation helpful? Give feedback.
-
Greetings:
I recall having sent an email to @kevinaboos early in the development of TheseusOS about using an efficient OOP framework from the Amiga called BOOPSI and got a welcoming reply. There were at least two Amiga GUI plugin libraries that used the BOOPSI plugin format. The most popular one, Magic User Interface, has spawned an open-source derivative called Zune that has been used for years on the AROS open-source multitasking OS.
As a more public update on this discussion forum, the Linux port of Zune is called the Ax runtime and it supports multithreading unlike the original AROS version. It is written in C but is fully OOP as a BOOPSI derivative. It has a bit more dynamic dispatch than a non-OOP GUI would have but uses less RAM than any Linux-native GUIs do. If you are still interested in incorporating some of it into TheseusOS, the repository is in Deadwood's AROS fork in the alt-runtime branch if you are still interested in checking it out.
Perhaps discussion about using a Rust version of it would best be placed in this thread as well.
Beta Was this translation helpful? Give feedback.
All reactions