Код
#новости

Вышел Ruby 3.1.0 — с новым компилятором и дебагером

Кроме этого, там теперь есть точечное подсвечивание ошибок и IRB-автодополнение кода.

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


Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована