Сегодня вышел релиз JRuby 9.0.0.0. Активная фаза разработки длилась около двух лет, за это время насчитано более 5500 коммитов от 104 разработчиков. А некоторые вещи, на которых основывается этот релиз, были начаты более пяти лет назад. В целом, в эту версию вложено огромное количество труда и сейчас очень приятно поздравлять разработчиков с успешным завершением.
Спроектирован Subramanya Sastry (subbu). Производительность нового рантайма примерно соответствует производительности JRuby 1.7, но в нем заложен большой потенциал. Сейчас используется только консервативная статическая оптимизация, но позже будет реализована профилирующая оптимизация.
В предыдущих версиях JRuby работа с процессами была сопряжена с большой головной болью. Например, нельзя было посылать потомкам сигналы, принимать от них данные без блокировки, и еще множество проблем, вызванных тем, что Java скрывает от приложения настолько низкий уровень абстракции. Теперь часть функциональности вынесена в нативный код и Ruby-программы получили полноценное POSIX-окружение.
Реализована поддержка синтаксиса и библиотек, соответствующих версии Ruby 2.2.
Чтобы уменьшить путаницу с соответствием версиям MRI Ruby. Нумерация JRuby и Ruby не связана, но близость значений вводит людей в заблуждение об их эквивалентности. В JRuby 1.7 были реализованы режимы совместимости, которые позволяли в одной и той же версии JRuby выполнять код, ориентированный на разные версии MRI Ruby, например, на 1.8.7 или 1.9.3. Теперь режимы совместимости отменяются и JRuby всегда ориентируется на совместимость с последней версией Ruby (сейчас это версия 2.2). Нумерация последующих версий JRuby будет продолжаться как 9.x.
Подробности про релиз можно прочитать в блоге разработчиков.
P.S. В RVM новый релиз уже появился. Но пока только в head, а не stable. Устанавливается командой:
Что такое JRuby
JRuby — это реализация языка программирования Ruby, работающая на виртуальной машине Java. Основные достоинства: высокая скорость работы, параллелизм без GIL, возможность вызова java-библиотек из ruby-кода, а также возможность скриптинга на ruby для java-приложений.
Главные отличия от версии 1.7
Новый рантайм
Спроектирован Subramanya Sastry (subbu). Производительность нового рантайма примерно соответствует производительности JRuby 1.7, но в нем заложен большой потенциал. Сейчас используется только консервативная статическая оптимизация, но позже будет реализована профилирующая оптимизация.
POSIX-совместимая работа с процессами и вводом-выводом
В предыдущих версиях JRuby работа с процессами была сопряжена с большой головной болью. Например, нельзя было посылать потомкам сигналы, принимать от них данные без блокировки, и еще множество проблем, вызванных тем, что Java скрывает от приложения настолько низкий уровень абстракции. Теперь часть функциональности вынесена в нативный код и Ruby-программы получили полноценное POSIX-окружение.
Совместимость с Ruby 2.2
Реализована поддержка синтаксиса и библиотек, соответствующих версии Ruby 2.2.
Другие изменения
Почему после 1.7 номер версии 9.0.0.0?
Чтобы уменьшить путаницу с соответствием версиям MRI Ruby. Нумерация JRuby и Ruby не связана, но близость значений вводит людей в заблуждение об их эквивалентности. В JRuby 1.7 были реализованы режимы совместимости, которые позволяли в одной и той же версии JRuby выполнять код, ориентированный на разные версии MRI Ruby, например, на 1.8.7 или 1.9.3. Теперь режимы совместимости отменяются и JRuby всегда ориентируется на совместимость с последней версией Ruby (сейчас это версия 2.2). Нумерация последующих версий JRuby будет продолжаться как 9.x.
Подробности про релиз можно прочитать в блоге разработчиков.
P.S. В RVM новый релиз уже появился. Но пока только в head, а не stable. Устанавливается командой:
rvm install jruby-9.0.0.0
Комментарии (3)
Envek
23.07.2015 10:15А последняя Ruby on Rails на jRuby 9000 работает? Кто-нибудь уже пытался завести приложение, с какими гемами ожидать проблем?
timetogo
23.07.2015 10:43+1С Active Record больше всего. Здесь большое обсуждение: news.ycombinator.com/item?id=9930399
cvss
В RVM stable все еще остается jruby-9.0.0.0.pre1. Релиз появился пока только в rvm head — jruby-9.0.0.0