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::Errorimport in gir: PR
from_glibconversion 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:
gpointeris an alias to
void*but in some cases, the
.girfile was using
gpointerand so gir was unable to interpret it as expected: PR
GLiblibrary 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
GStringimports generation. This issue comes from an improvement we added to avoid cloning strings where it wasn't necessary. However,
GStringcannot 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
GLibdirectly 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!