At Red Hat we are expected to set, and meet, goals each quarter if we want our “full” bonus. One of those is around introducing AI into our daily work. You’ve probably seen various Red Hat employees talking about using AI. It’s hard to deny there is financial incentive to do so. Astute students of … Continue reading mi2-glib| Happenings in GNOME
It’s the time of year where the Oregon allergens has me laid out. Managed to get some stuff done while cranking up the air purifier. VTE Work on GtkAccessibleHypertext implementation. Somewhat complicated to track persistent accessible objects for the hyperlinks but it seems like I have a direction to move forward. Ptyxis Fix CSS causing … Continue reading Status Week 39| Happenings in GNOME
I took a different approach to directory listings in Foundry. They use GListModel as the interface but behind the scenes it is implemented with futures and and fibers. A primary use case for a directory listing is the project tree of an IDE. Since we use GtkListView for efficient trees in GTK it we expose … Continue reading Directory Listings with Foundry| Happenings in GNOME
In addition to all the Libdex 1.0 fanfare, Foundry has also reached 1.0 for GNOME 49. That doesn't mean it's complete, but it does mean that what is there I feel pretty confident about from an API/ABI standpoint. If you have a project that works in GNOME Builder, it is a good time to test...| Happenings in GNOME
I’ve talked a lot about fibers before. But what are they and how do they work? From the progammer perspective they can feel a lot like a thread. They have a stack just like a real thread. They maintain a program counter just like a real thread. They can spill registers to the stack like … Continue reading Fibers in Libdex| Happenings in GNOME
VTE Little back-and-forth on what we can do to improve a11y further with VTE. Prototype’d a way to extract hyperlinks and provide them into AccessibleText, however that is not the right place. We really need an implementation of the at-spi hyperlink API in GTK so that VteTerminal may implement it. Merged a number of a11y … Continue reading Status Week 37| Happenings in GNOME
There are often needs to integrate with blocking APIs that do not fit well into the async or future-based models of the GNOME ecosystem. In those cases, you may want to use a dedicated thread for blocking calls so that you do not disrupt main loops, timeouts, or fiber scheduling. This is ideal when doing … Continue reading Dedicated Threads with Futures| Happenings in GNOME
Previously, previously, and previously. The Gio.IOStream APIs already provide robust support for asynchronous IO. The common API allows for different types of implementation based on the stream implementation. Libdex provides wrappers for various APIs. Coverage is not complete but we do expect additional APIs to be covered in future releases. File Management See dex_file_copy() for … Continue reading Asynchronous IO with Libdex| Happenings in GNOME
Previously, and previously. Schedulers The Dex.Scheduler is responsible for running work items on a thread. This is performed by integrating with the threads GMainContext. The main thread of your application will have a Dex.MainScheduler as the assigned scheduler. The scheduler manages callbacks such as work items created with Dex.Scheduler.push(). This can include blocks, fibers, and...| Happenings in GNOME
Previously. Historically if you wanted to do asynchronous work in GObject-based applications you would use GAsyncReadyCallback and GAsyncResult. There are two ways to integrate with this form of asynchronous API. In one direction, you can consume this historical API and provide the result as a DexFuture. In the other direction, you can provide this API … Continue reading Integrating Libdex and GAsyncResult| Happenings in GNOME
This week is still largely focused on finalizing API/ABI for the 1.0 of Foundry in a few weeks. Foundry Did a bunch of work on LLM completion and and conversation APIs. They are not focused on supporting everything possible but instead making some of the common stuff extremely simple. That goes for both the model...| Happenings in GNOME
Foundry Added a new gutter renderer for diagnostics using the FoundryOnTypeDiagnostics described last week. Write another new gutter renderer for "line changes". I'm really happy with how I can use fibers w/ GWeakRef to do worker loops but not keep the "owner object" alive. As long as you have a nice way to break out...| Happenings in GNOME
My approach to engineering involves an engineers notebook and pen at my side almost all the time. My ADHD is so bad that without writing things down I would very much not remember what I did.| Happenings in GNOME
With GNOME 48 I released libdex 0.10 on the march towards a 1.0. One of the major improved features there was around fiber cancellation. I'm not going to go into detail about the differences between threads and fibers as wikipedia or your local CS department can probably help you there. But what I will say...| Happenings in GNOME
The upcoming systemd v257 release will have support for a feature originating from ConEmu (a terminal emulator for Windows) which was eventually adopted by Windows Terminal. Specifically, it is an OSC (Operating System Command) escape sequence which defines progress state. Various systemd tools will natively support this. Terminal emulators which do not support it simply...| Happenings in GNOME