Состоялся релиз Ruby 3.1.0. Код Ruby распространяется под лицензиями BSD («2-clause BSDL») и «Ruby», которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3.
Некоторые улучшения:
- 
Добавлен новый экспериментальный внутрипроцессный JIT-компилятор YJIT. YJIT создан разработчиками платформы электронной коммерции Shopify в рамках инициативы по увеличению производительности Ruby-программ, использующих фреймворк Rails и вызывающих очень много методов. При использовании YJIT зафиксировано увеличение производительности при выполнении теста railsbench на 22%, а теста liquid-render на 39%. YJIT пока ограничен поддержкой unix-подобных ОС на системах с архитектурой x86-64 и отключён по умолчанию (для активации следует указать в командной стоке флаг «–yjit»). 
- 
Повышена производительность старого JIT-компилятора MJIT. Для проектов, использующих Ruby on Rails, максимальный размер кэша (–jit-max-cache) по умолчанию увеличен со 100 до 10000 инструкций. Прекращено неприменение JIT для методов, включающих более 1000 инструкций. Для поддержки Zeitwerk of Rails сформированный в JIT код больше не отбрасывается, если для событий класса включён TracePoint. 
- 
В состав включён полностью переписанный отладчик debug.gem. Ранее в качестве отладчика предлагался файл lib/debug.rb, теперь он удалён из базовой поставки. 
- 
В отчётах обратной трассировки вызовов реализовано наглядное выделение ошибок. Пометка ошибок обеспечивается при помощи встроенного gem-пакета error_highlight. error_highlight включён по умолчанию. Для отключения пометки ошибок можно использовать настройку «–disable-error_highlight». 
       $ ruby test.rb
       test.rb:1:in "<main>": undefined method "time" for 1:Integer  (NoMethodError)
       1.time {}
         ^^^^^
         Did you mean?  times
Перемещено hobbit из development










