Michael Murphy (S76)

I’m a System76 engineer / Pop!_OS maintainer. I’ve been a Linux user since 2007; and Rust since 2015. I’m currently working on COSMIC-related projects.

  • 45 Posts
  • 198 Comments
Joined 3 years ago
cake
Cake day: June 12th, 2023

help-circle



  • The only code contributions that we have approved that used AI assistance so far have been minor fixes and improvements where the risk of regression and copyright violation is low. The requirement to certify contributions under the Developer Certificate of Origin also makes the person submitting the changes liable if they are submitting copyrighted code.

    Any of the more complex changes and feature developments that people have attempted have been denied and will continue be denied. If you look through all of the changes that we do merge, the vast majority of large feature developments and fixes are done by hand by trusted contributors (ie: Hojjat) and official team members who are consistently and frequently contributing large changes to COSMIC that did not involve any LLM use.

    It is more the exception when a contribution that used AI assistance was used that is able to be approved and we will likely make some policy adjustments due to the amount of burden that they’re currently causing in the review process. Truthfully the only situations where AI has been useful over the last year is when the person used it for debugging purposes rather than code generation.











  • See the Ubuntu Summit 2024 talk: https://www.youtube.com/watch?v=bwrBKccfYws

    It’s not resources, in fact, this Alpha performs pretty poorly on its own vs Gnome

    I haven’t seen any benchmark where GNOME was more performant than COSMIC. Despite alpha status, it is already much more responsive than GNOME.

    GNOME uses a single thread to render all displays in a multi-display configuration. This is often so slow that they need to rely on double or even triple buffering when the frame rate lags behind the display’s refresh rate. Meanwhile in COSMIC, thanks to the thread safety features of Rust, it was easy to implement thread-per-display multi-threaded rendering. This means that each display is rendered and composited independently on their own respective threads.

    GNOME’s compositor also has an entire JavaScript runtime bundled inside of it, which it uses for drawing interfaces and handling application logic for those interfaces. All within the same process as the compositor, slowing down its event loop. COSMIC instead keeps the compositor process very lean, with all desktop interfaces running in their own isolated processes outside of the compositor via wayland’s layer-shell protocol.







  • You can’t release a desktop operating system without a file manager or text editor. The xdg desktop portal interface for the file chooser portal dialogs requires a file manager to be implemented for the portal to be able to create a file chooser dialog for the operating system on behalf of applications requested file choosers through the portal.

    The text editor is also required to have a GUI toolkit featuring properly rendered and editable text. It is thanks to the text editor project that the Rust ecosystem now has cosmic-text as the de facto crate for handling text layout, shaping, and rendering with support for international language glyps, ligatured language scripts, and bidirectional text layouts.