Языки программирования

Выпущен JRuby 10

Выпущен JRuby 10

Вышел JRuby 10 с поддержкой Ruby 3.4 (включая обновления 3.2 и 3.3). Минимальная версия Java также была увеличена до Java 21, что позволяет языку поддерживать более современные функции JVM.

JRuby - это высокопроизводительная, стабильная, полностью потоковая Java-реализация языка программирования Ruby. Ruby - это язык высокого уровня, использующий элементы Perl, Smalltalk, Eiffel, Ada и Lisp и поддерживающий множество концепций программирования, чтобы сбалансировать функциональное, динамическое и объектно-ориентированное программирование. Поклонники говорят, что использовать его не только интересно, но и полезно.

Разработчики говорят, что помимо обновленной совместимости с Ruby и поддержки современных функций JVM, в этом выпуске была проведена большая чистка внутреннего кода и внешних API, и команда считает, что это их самый важный выпуск в истории.

Большая часть работы в этом выпуске была направлена на улучшение производительности и времени запуска JRuby. Чарльз Наттер, пишущий о новой версии в блоге JRuby, говорит, что хотя JRuby поддерживал оптимизацию Ruby-кода с помощью функции «invokedynamic», которая учит JVM, как работает Ruby-код, до сих пор это означало, что JRuby работал на среднем уровне оптимизации из-за дополнительного времени запуска и прогрева, требуемого на старых JVM. Новая версия по умолчанию работает с полной оптимизацией invokedynamic, что означает, что пользователи получат наилучшую производительность для своих скриптов и приложений JRuby без установки дополнительных флагов.

Переход на Java 21 также означает, что JRuby может использовать предварительно кэшированный код с помощью «Хранилища данных классов приложений» (AppCDS) OpenJDK. Это позволяет предварительно кэшировать код и метаданные при запуске. По словам Наттера, основной исполняемый файл JRuby будет автоматически использовать нужные флаги AppCDS на Java 21+ для оптимизации и кэширования, что позволило вдвое сократить время запуска типичной команды JRuby.

Еще одно улучшение - Project CRaC (Coordinated Restore at Checkpoint), экспериментальная функция JVM, которая позволяет пользователям «ставить контрольную точку» на запущенном процессе и запускать несколько будущих процессов, восстанавливая эту контрольную точку.

Проект Leyden - это следующее поколение «AppCDS», в котором также хранятся такие данные, как JIT-компилированный нативный код и профили оптимизации из предыдущих запусков. Цель Leyden - в конечном итоге сохранить все необходимое для запуска сразу с оптимизированным кодом, минуя медленные ранние стадии выполнения. Команда JRuby Team будет включать флаги Leyden в программу запуска по мере их появления (предварительная поддержка уже есть в Java 24).

Новая версия поддерживает фреймворк для веб-приложений Rails, начиная с версии 7.1, и продолжается работа над поддержкой Rails 8. Планируется, что поддержка будет добавлена этим летом.

JRuby 10 доступен уже сейчас.

Читайте также