Rubinius 1.0 (Fabius) Released!
Thanks
The Rubinius 1.0 release has been a long time coming and the team is very
proud to announce that it is finally ready!
This marks the end of a long and wonderful road we have all traveled over the
last 3 1/2 years. There are so many people to thank for their help and
support.
Fabius is the release name of
version 1.0. This is a reference to the great defender of Rome. This name was
given to Rubinius by Geoffrey Grosenbach, who secured
naming rights to version 1.0 many years ago by being the very first person to
provide some financial backing for the project. I can’t thank him enough.
Tom Mornini and Engine Yard deserve the lion’s share of the thanks. Back in
2007 when Tom asked me to come work on Rubinius at Engine Yard, it was a dream
come true. They’ve tirelessly supported the project over the years, even when
project momentum waned.
And lastly, thanks to everyone who has contributed to the project. Over the
years, there have been over 200 contributers who’ve given up their free time
to help make Rubinius great.
- Evan Phoenix
What’s New Since 1.0rc5
Highlights
- Supports a huge amount of Ruby code and popular C extensions:
- Rails 3 and 2.3.5
- Sinatra
- sqlite3, mysql, nokogiri, yajl-ruby
- Much, much more!
- JIT compiler to accelerate running Ruby code.
- Generational Garbage Collector.
- Integrated profiler.
Known Issues
- String#unpack and Array#pack are currently pretty slow. We’re working
on this issue and will release a fix in the near future.
- A number of String methods are a bit slower than in 1.8. Most of these are
known and being addressed.
- We’ve added much of the MRI C-API for running Ruby extensions, but
there are some extensions that don’t work yet. Typically, this is because
the extension uses RBASIC(), RHASH(), or RREGEXP(). These depend on MRI’s
internal object memory layout. In most cases, there are regular functions
available to use that do not depend on MRI internals. We will help C
extension authors to make their code portable. Additionally, extensions
that fail due to a missing rb_* function should be reported in the issue
tracker so that we can add the functions.
- Neither the builtin debugger nor ruby-debug currently work. The debugger
is a high-priority item to work on post 1.0.
- The set_trace_func hook and the C event hooks are not supported. This
means that rcov currently does not work. To profile your code, use our
builtin profiler with the
-Xint -P
options on the command line.