Вышел Ruby 3.1.0 — с новым компилятором и дебагером
2026-02-21 06:05 Diff

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Ruby 3.1 поддерживает совместимость с Ruby 3.0 и добавляет много новых фич. Главная из них — компилятор YJIT. Он выключен по умолчанию, так как является экспериментальной функцией и доступен только для Unix-подобных x86-64-систем. Чтобы его активировать, нужно указать --yjit в командной строке при компиляции.

Разработчики языка добавили полностью переписанный дебагер debug.gem. Он больше не замедляет приложение при отладке, а ещё поддерживает удалённую работу и мультипроцессный и мультипотоковый режим.

Анимация: официальный сайт Ruby

Места ошибок теперь подсвечиваются с помощью error_highlight. Но поддерживается только NameError. Эта функция включена по умолчанию — чтобы её отключить, нужно указать в командной строке --disable-error_highlight.

$ ruby test.rb test.rb:1:in `<main>': undefined method `time' for 1:Integer (NoMethodError) 1.time {} ^^^^^ Did you mean? times

В IRB встроили автодополнение кода. А если у функции или файла есть документация, то её фрагмент появится рядом.

Анимация: официальный сайт Ruby

Значения в хэш-литералах и ключевых аргументах могут быть опущены.

{x:, y:} == {x: x, y: y}. foo(x:, y:) == foo(x: x, y: y)

Pin-оператор в поиске по образцу теперь принимает выражение.

Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #=> [[3, 5], [5, 7], [11, 13]]

Подробный список изменений можно посмотреть на официальном сайте Ruby.

Вот как на это отреагировали пользователи Reddit:

«Выпускать под Новый год… Опасная игра».

Скриншот: Reddit

«Выглядит как приятный подарок для разработчиков на Ruby, мои поздравления команде Ruby. Я вот только думаю, какие планы на RBS? Похоже на интересную идею, но пользователи всё никак не могут привыкнуть к нему».

Скриншот: Reddit

«Рад слышать, что они добавили переписанный и улучшенный дебагер. Прошлый был совсем уж старым, и его производительность всегда была проблемой. Обновление для IRB — тоже классно. Я думаю, что эти изменения помогут справиться с потерей интереса к Ruby со стороны сообщества, ведь главными проблемами были экосистема, которую никак не поддерживали, и нехватка новых фич».

Скриншот: Reddit Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу