An hour ago I released version 0.7.0 of rake-compiler. See the announcement at RubyInstaller mailing list (CC to Ruby-Talk too, just in case)
JRuby
This new version includes an amazing contribution by Alex Coles that allow compilation and packaging of JRuby extensions and gems!
Yes, it is now possible, under JRuby, to compile JRuby gems that bundle jar files with the extensions.
Even more, with proper tools and a valid JRuby installation, you can even compile extensions from your current 1.8 or 1.9 MRI installation!
Please take a look in the README.rdoc file for more details
Rubinius?
I couldn’t test it myself, but seems that rake-compiler got bundled in latest RC1 of Rubinius. See it for yourself here
Thanks to Rubinius support for Ruby C API and huge reverse engineered mkmf, rake-compiler should work for most of the extensions. Will check that statement later.
So, resistance is futile… the next implementations to be assimilated are MacRuby and MagLev, wanna help me out on that?
What’s next?
At the time I started with rake-compiler, none of the cool tools like Pik or rvm existed.
Because of that, the only way possible to generate fat binaries (mentioned before here) was cross-compiling.
Now that is easy to switch Ruby versions and implementations, it will be possible to implement changes to generate native fat-binaries on any platform.
This functionality is planned, but not ETA yet. Want to help? Fork the project on GitHub and start right now!
MagLev doesn’t support C extensions. We only run pure Ruby or FFI. Sorry I can’t help.
@Monty Williams: And it will not in the future?
No problem then, that means rake-compiler and lot of extensions will be dead
Seems that IronRuby will be the next candidate with C# support.
Thank you for your feedback.
We have a goal of running as much as possible in pure Ruby. It will enable more Rubyists to get involved in the MagLev project. It’s painful as some pure Ruby libs (e.g. RbYAML, BigDecimal) are incomplete or buggy. We’ll hold out as long as we can, but may have to cave in the long run.