End of the year, meaning it's time for a new GNOME+Rust hackfest and its feedback!
The goal of these hackfests is to improve the interactions between Rust and the GNOME libraries. This sixth edition happened in Rome.
This time, we focused on two things: polishing and cleaning up. If you haven't guess at this point, a new gtk-rs release is coming soon!
We had (and still have) a lot of issues open. I decided it was time to reduce this number a bit. So let's take a quick look to what I worked on:
glib::Error import in gir: PR
from_glib conversion into gir (very useful for glib!): PR
Vec<A, B> instead of
Vec<(A, B)>, the compiler wasn't very happy...): PR
void*. To provide more details on this:
gpointer is an alias to
void* but in some cases, the
.gir file was using
void* instead of
gpointer and so gir was unable to interpret it as expected: PR
GLib library with one of its dependency:
libffi. It resulted into the impossibility of building glib on OSX until we wrote a small hack to avoid this issue. It's not needed anymore: issue
GString imports generation. This issue comes from an improvement we added to avoid cloning strings where it wasn't necessary. However,
GString cannot be used in every case but we still kept its import because the imports computation and types computation are in two parts of the code: PR
All these fixed issues will allow to make our users' and contributors life easier!
But that's not all! In the meantime, @antoyo also worked on a few things like:
clone! macro. The current version is relying mostly on
GLib directly to handle objects' memory. However, we realized that a lot of memory leaks occured and decided to use strong/weak references instead. And to make their use easier, it'll be handled into this macro.
I can only recommend you to take a look at his blog post for more details!
I said at the beginning that the next gtk-rs release was coming soon. If you want to follow it more closely, you can take a look at the release issue. A lot of nice things will come in as usual but I prefer to keep the announcement for when it'll actually come out. For now, the biggest blocker to this new release is that we want to wait for the Rust 1.39 release and the stabilization of the async/await feature. More to come later!
As usual, many thanks to the GNOME Foundation for sponsoring my travel and accomodation during the hackfest!
Previous articleRust 2020: what about feedbacks?
Next articleNew NodeJS framework to improve rustdoc UI tests