Yes, I am running out of blog titles, especially lately.
After the whole concern about the destiny of Gentoo/FreeBSD, and a lot of other things that happened in the last months, I’ve decide that it might be the moment for me to retire from Gentoo… or at least it will be the moment, in a few months.
I’ve sent a detailed mail on gentoo-core yesterday, from which I can report I’m not going to leave now. I do have a lot of stuff in my TODO list that I want to complete first, like ZFS support for Gentoo/FreeBSD, finishing clearing the licensing, completing the Gentoo/FreeBSD/SPARC64 stage, finding the cause of the misalignment there, and so on. I won’t take new complex tasks though, as if I continue adding stuff to that list, not only I won’t ever be able to leave Gentoo, but I won’t be able to live myself.
Many colleagues suggested me to take a vacation of a month or two and then come back stable; I doubt this would change anything about what happened in the past months, but I have to admit I won’t be able to finish much from the TODO list if I continue this way, I need to relieve part of my stress.
So I decided, I’ll take a week or two mostly off, then jump on again, finishing my TODO list, and when I’ll come at the end o the list, I’ll depart, unless something else happens that makes me change idea. It will be a few months as I said, so there is space for me to reconsider, but now I’m ready to go.
After this, that is just an introduction, let me write about the topic of this entry. One of the things I planned to do during my break (yes of course, I know I should try to relax during a vacation, but I’m unable to stand doing nothing :/) is to finally write some xine Ruby bindings. I talked before of my work on a script that generates Ruby bindings for C++ libraries easily, but that code wasn’t adaptable for C bindings too… so I decided to rewrite it entirely.
Why rewriting it rather than extending it or writing a different script? Well the code was mostly non maintainable as I wrote it and changed it as I needed; writing testcases for it was basically impossible, and the code was shared already between two repositories (ruby-hunspell and rubytag++) that didn’t diverge most of the time, but were difficult to make keep safely in sync. Also, I started working on Rails, and ActiveRecord way to define tables caught on me a lot.
So I started thinking a bit more about the generator script, and I decided I wanted something that would allow defining the code to bind via Ruby itself, and that would be installable in a system so I could release it on its own package, as build-time dependency for the bindings. but one big problem I had to cope with for sure: could I call it ruby-bindings-generator? Of course not, the name sucks and it doesn’t keep the mood with many other Ruby packages like Rake Rails or Gems.
But I do know someone who has a true passion for names, Markey from Amarok! And as soon as I proposed him a possible “ruby dust” name, he suggested instead the shorter “Rust”… why not? It doesn’t really sound that bad and it allows a lot of different word plays, and could easily provide a graphical logo (I’m currently thinking of some rusty jewellery piece with a Ruby in it), if the project were to actually get some work.
I have yet to publish the GIT repository with Rust sources, as it’s not really ready for prime time yet, but I’ll do so in a couple of days, or maybe even tomorrow. The code might be a bit slower than before because I use replacement over code templates rather than direct string output from methods, but it should be easy to maintain. I’ll also have to write some documentation for it so that it can easily be read, it’s time for me to learn rdoc (you’ll probably see some new Ruby links to the del.icio.us feed on the right of my blog while I do search for stuff and work on this project), as well as Rake.
And of course, after all the problems with Licenses lately, I’ve decided that even if the previous generator was licensed under GPL2, Rust will be released under a way less troublesome MIT license, as it’s after all not something anybody would be changing secretly to get any advantage (while before the generator was always copied in the sources, Rust would just be installed).