Как стать автором
Поиск
Написать публикацию
Обновить

Вышел Ruby 3.3

Время на прочтение2 мин
Количество просмотров4.7K

25 декабря 2023 года состоялся релиз языка программирования Ruby 3.3.0, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Исходный код проекта Ruby распространяется на GitHub под лицензиями BSD (2-clause BSDL) и 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) в удобную платформу для других инструментов.

Теги:
Хабы:
Всего голосов 10: ↑9 и ↓1+9
Комментарии3

Другие новости

Ближайшие события