После года разработки выпущен релиз Ruby 2.6.0, динамический объектно-ориентированный язык программирования, характеризующийся высокой эффективностью разработки программного обеспечения и включающий в себя лучшие функции Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.
Код проекта распространяется по лицензиям BSD. («BSDL с двумя пунктами») и «Ruby», что относится к последней лицензии GPL и полностью соответствует GPLv2.
Ruby 2.6 - шестая основная версия, подготовленный как часть запланированного процесса разработки, который включает выделение года на подготовку функциональных улучшений и создание корректирующих версий каждые 2-3 месяца.
Основные новые функции в Ruby 2.6.0
В этом новом выпуске Ruby добавлена экспериментальная реализация JIT-компилятора, что позволяет значительно повысить производительность приложений на языке Ruby.
В отличие от традиционных JIT-компиляторов, которые генерируют машинные инструкции на лету, предлагаемый JIT-компилятор в Ruby сначала записывает код C на диск, а затем вызывает внешний компилятор C для генерации машинных инструкций (поддерживается GCC, Clang и Microsoft VC ++).
Чтобы включить JIT, вы должны указать опцию «–jit» при запуске ruby или установить эту опцию в переменной окружения RUBYOPT.
По сравнению с Ruby 2.5 включение JIT в среднем в 1.7 раза выше производительности приложений, интенсивно использующих ЦП.
В то же время разработка все еще носит экспериментальный характер и не подходит для нагрузок, связанных с интенсивной работой с памятью.
Другими улучшениями, полученными в этой версии, были: RubyVM :: AbstractSyntaxTree экспериментальный модуль, который предоставляет метод синтаксического анализа, который обрабатывает переданные строки как код Ruby и возвращает абстрактное синтаксическое дерево (AST) для этого кода.
Теперь псевдоним «#then» можно использовать для доступа к методу «Kernel # yield_self». Для методов "Массив # |" и «Array # -» предложили более удобочитаемые псевдонимы «Array # union» и «Array # Difference».
Имена констант теперь могут начинаться с прописных букв, отличных от ASCII.
Также была предоставлена поддержка Transient Heap, карты, предназначенной для объектов с коротким сроком службы, использующих определенные классы (Array, Hash, Object, Struct).
Например, благодаря theap создание небольших недолговечных существующих хэшей теперь в два раза быстрее. Тест rdoc показал увеличение урожайности на 6-7%.
Для повышения производительности переключения контекста предлагаются собственные реализации сопрограмм. для архитектур arm32, arm64, ppc64le, win32, win64, x86 и amd64. «Fiber.yield» и «Fiber # resume» в 64-битных системах Linux теперь работают почти в 5 раз быстрее.
В целом интенсивные программы показывают прирост производительности на 5%.
Основные улучшения в Ruby 2.6.0
Получена обновленная версия RubyGems 3.0.1., в котором прекращена поддержка параметров «–ri» и «–rdoc», вместо которых следует использовать «–document» и «–no-document».
Bundler теперь устанавливается по умолчанию для управления зависимостями гемов.
Добавлена поддержка незавершенных диапазонов, например "ary [1 ..]" или "(1 ..). Каждый {…} ".
Из других улучшений, которые можно выделить, можно найти:
- Параметр исключения был добавлен в системный метод Kernel #, чтобы вызывать исключение при ошибке вместо возврата false.
- Режим одиночного выстрела был добавлен в модуль покрытия, который проверяет, выполняется ли каждая строка хотя бы один раз.
- Класс Enumerator :: Chain и реализованные в нем методы "Enumerable # chain" и "Enumerator # +" добавлены для создания цепочек перечисляемых значений.
- В модули Proc и Method добавлена поддержка операторов «<<» и «>>», например, конструкция «(f << g) .call (3)» идентична «f (g (3) )) ".
Как установить Ruby 2.6.0 в Linux?
Чтобы получить эту новую версию Ruby, просто откройте терминал в своей системе и введите одну из следующих команд
Debian, Ubuntu и производные
sudo apt-get install ruby-full
CentOS, Fedora и RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
Arch Linux, Manjaro, Antergos и производные
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
Команды apt-get yum и т. Д. Попадают в репозитории дистрибутивов по умолчанию, которые, как правило, старые, и у вас будет не версия 2.6, а другая старая версия.