Сегодня вышел релиз JRuby 9.0.0.0. Активная фаза разработки длилась около двух лет, за это время насчитано более 5500 коммитов от 104 разработчиков. А некоторые вещи, на которых основывается этот релиз, были начаты более пяти лет назад. В целом, в эту версию вложено огромное количество труда и сейчас очень приятно поздравлять разработчиков с успешным завершением.

Что такое 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)


  1. cvss
    23.07.2015 03:48
    +2

    В RVM stable все еще остается jruby-9.0.0.0.pre1. Релиз появился пока только в rvm head — jruby-9.0.0.0


  1. Envek
    23.07.2015 10:15

    А последняя Ruby on Rails на jRuby 9000 работает? Кто-нибудь уже пытался завести приложение, с какими гемами ожидать проблем?


    1. timetogo
      23.07.2015 10:43
      +1

      С Active Record больше всего. Здесь большое обсуждение: news.ycombinator.com/item?id=9930399