söndag, november 25, 2007

JRuby regular expression update

It's been some time since I wrote about what's happening in JRuby trunk right now, and what we're working on. The reason is I've been really boring. All my time I've spent on Regular Expressions and the REJ implementation. Well, that's ended now. After Marcin got the Oniguruma port close enough, we are both focusing on that instead. REJ's implementation had some fundamental problems that would make it really hard to get better performance. In this regard, Joni is a better implementation. Also, Marcin is incredible at optimization so if everything goes as planned, we're looking at better general Regular Expression performance, better compatibility and a much more competent implementation.

And boy am I bored by this now. =) I'd really like to get back to fixing bugs and get JRuby ready for the next release. That might happen soon, though - I've spent the weekend getting Joni integrated with JRuby inside a branch and today reached the goal of getting everything to compile. Also, easier programs run, like jirb. Our test suite fails, though, so there are still things to do. But getting everything compiling and ditching JRegex is a major point on the way of replacing JRegex in JRuby core. It shouldn't be too far off, and I think it will be fair to say we will have Joni in JRuby 1.1. Actually, 1.1 is really going to be an awesome release.

1 kommentar:

Charles Oliver Nutter sa...

I want to pipe in and also thank Marcin for his amazing work on Joni, the Oniguruma port. When he said he would attempt the port, we thought it would be extremely difficult. When he claimed it would be done for 1.1, we thought it was nearly impossible. And he did it. And it's faster on most of our tests than JRegex, one of the fastest regex libraries for Java. Unbelievable.

This is what I mean when I say that JRuby is a community project. Without herculean efforts like those from Marcin (ground-up ports of String, Hash, Array, Numeric classes, metaclass logic, and now Joni), Ola (OpenSSL, YAML, heavy Rails compat fixing), and many others like them, we would not be here. Thank you all so much.