След една година на разработка се публикува изданието Ruby 2.6.0, динамичен обектно-ориентиран език за програмиране, характеризиращ се с висока ефективност на разработка на софтуер и включващ най-добрите характеристики на Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.
Кодът на проекта се разпространява под лицензите BSD ("BSDL с 2 клаузи") и "Ruby", който се отнася до най-новия GPL лиценз и е напълно съвместим с GPLv3.
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 # -" предложи по-четими псевдоними "Array # union" и "Array # Difference".
Постоянните имена вече могат да започват с главни букви, различни от ASCII.
Осигурена бе и поддръжка за Transient Heap, theap, предназначена за обекти с кратка продължителност на живота, използващи специфични класове (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 etc отиват в хранилищата по подразбиране на дистрибуциите, които обикновено са стари и няма да имате версия 2.6, а друга стара версия.