Вышел Ruby 3.3

25 декабря 2023 года состоялся релиз языка программирования Ruby 3.3.0, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Исходный код проекта Ruby распространяется на GitHub под лицензиями BSD и Ruby, которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3.

Основные улучшения, изменения, обновления и доработки в Ruby 3.3:

  • в основной состав проекта включён парсер Prism, реализованный в форме C-библиотеки libprism, задействованной в интерпретаторе CRuby, и gem-пакета на языке Ruby, предоставляющем общедоступный API для нисходящего рекурсивного разбора кода на языке Ruby, пригодный для использования в рабочих проектах вместо парсера Ripper;

  • вместо внешнего пакета Bison для генерации парсеров задействован проект Lrama, предоставляющий реализацию алгоритма LALR на языке Ruby, поддерживающий Bison-совместимые определения грамматик (parse.y), используемые в CRuby, и реализующий расширенные возможности, такие как обработка ошибок и параметризированные правила (?, *, +);

  • проведена значительная оптимизация производительности JIT-компилятора YJIT, развиваемого разработчиками платформы электронной коммерции Shopify в рамках инициативы по увеличению производительности Ruby-программ, использующих фреймворк Rails и вызывающих очень много методов;

  • предложен новый JIT-компилятор RJIT, написанный целиком на языке Ruby и заменяющий MJIT, но в отличие от последнего при использовании не требующий C-компилятора. RJIT поддерживает только архитектуру x86-64 и Unix-подобные платформы;

  • добавлен планировщик потоков "M:N", позволяющий для сокращения накладных расходов на создание и управление потоками использовать ограниченное число потоков операционной системы для обработки потоков в коде на языке Ruby;

  • расширены возможности оболочки интерактивных вычислений IRB(REPL, Read-Eval-Print-Loop), добавлен режим отладки irb:rdbg, эквивалентный по своим возможностям отладчику pry-byebug, добавлена поддержка многостраничного просмотра вывода команд ls, show_source и show_cmds, реализована экспериментальная поддержка автоматического дополнения ввода, учитывающая типы данных, предоставлены команды для изменения цвета и стиля шрифта. Объявлен устаревшим вызов метода "it" без аргументов в блоке без параметров (например, "[1, 2, 3].each { puts it }");

  • RubyGems и Bundler включён вывод предупреждения в случае указания в "require" gem-пакетов abbrev, base64, bigdecimal, csv, drb, getoptlong, mutex_m, nkf, observer, racc, resolv-replace, rinda и syslog, если они не добавлены в Gemfile или gemspec. В будущих версиях Ruby данные gem-пакеты будут встроены в основной состав;

  • обновлены версии встроенных и входящих в стандартную библиотеку gem-модулей.

26 декабря 2022 года состоялся релиз Ruby 3.2.

В Ruby 3.4 разработчики хотят добавить такие опции: команда help в терминале будет выводить справочные сообщения вместо ввода запроса для поиска документов Ruby, а также планируется представить стандартные API для поддержки новых команд или вспомогательных методов. Цель проекта далее — превратить IRB (Interactive Ruby Shell) в удобную платформу для других инструментов.

Материал опубликован при поддержке сайта habr.com
Комментарии

    Актуальные новости по теме "Array"