Rubinius 1.0
После трех с половиной лет разработки вышла первая мажорная версия Rubinius — альтернативной реализации языка Ruby.
Мотив проекта — использование ruby для разработки транслятора настолько, насколько это возможно.
Основные свойства:
- VM. Изначально Rubinius использовал архитектуру, идентичную Smalltalk-80, теперь VM написана на C++ с использованием LLVM
- Компилятор ruby на ruby
- Поколенческий (generational) сборщик мусора
- Libev (epoll, kqueue) для IO
- Акторы и Каналы как одно из средств конкурентности
- Совместимость с дефолтным C-API MRI (большинство расширений ruby могут работать сразу, хотя есть и исключения)
- FFI, совместимый с MRI и JRuby
- Отсутствие сколько-нибудь вменяемой документации
Rubinius включает в себя rubygems и позволяет использовать большинство библиотек и фреймворков (Sinatra, Rails, Rails-3, etc).
Несмотря на наличие JIT, хорошего GC и IO через libev, надеяться на серьезную разницу в общей производительности по сравнению с MRI 1.8.7 все еще не стоит.
По старой доброй традиции pkunzip.zip, чтобы собрать Rubinius нужен ruby-1.8.7.