Ruby, один из наиболее почтенных динамических языков, теперь имеет доступ ко второй бета-версии версии 2.6.

Ruby 2.6 добавляет начальную реализацию Just-In-time компилятора, чтобы улучшить производительность выполнения программы. JIT-компилятор Ruby "печатает" Cи-код на диск и создает процесс компилятора Cи для генерации собственного кода. Эта вторая бета-версия предназначена для того, чтобы увидеть, работает ли эта возможность JIT, а также найти риски безопасности до выпуска.

В бета-версии Just-In-time компиляция поддерживается только тогда, когда Приложение Ruby построено компилятором GCC или Clang и компилятор доступен во время выполнения. Планы требуют реализации метода подстановки в компиляторе, чтобы значительно увеличить производительность. Также планируется поддержка Microsoft Visual Studio IDE.

Другие особенности в бета-версии включают в себя:

  • При изменении языка $SAFE является глобальным состоянием процесса, и 0 может быть установлен снова.
  • Улучшена производительность блочной передачи и пропущенного блочного вызова.
  • Proc#call был ускорен.
  • Добавлен метод bytes
  • RubyVM::AS модуль, который имеет метод parse, который анализирует код строки и возвращает узлы AST, еще parse file метод анализирует файл кода и возвращает узлы AST
  • Эксперементальный RubyVM::AST::Node - информация о местоположении поверхностей класса и дочерние узлы из Node
  • Где скачать Ruby 2.6 beta

    Вы можете скачать Ruby 2.6 beta с сайта проекта Ruby

    Что нового в Ruby 2.5

    Разработан на Рождество 2017 года, Ruby 2.5.0 является первым стабильным релизом в серии 2.5.

    Повышение производительности на 5-10 процентов, удаляя трассировки из байт-кода. Кроме того, блок, проходящий по параметру блока, был сделан в три раза быстрее, чем это было в Ruby 2.4, благодаря использованию метода Lazy proc allocation.

    Другие функции, повышающие производительность:

  • Генерация документов была ускорена за счет переключения с устаревшего лексического анализатора с IRB на Ripper.
  • Mutex класс был переписан, чтобы сделать его меньше и быстрее,Mutex может использоваться для управления доступом к общим данным из параллельных потоков
  • ERB генерирует код из шаблона в два раза быстрее, чем версия 2.4.
  • улучшена производительность встроенных методов, включая Array#concat , Enumerable#sort_by и String#concat .
  • Ruby 2.5 также имеет исправление ошибок, в котором Библиотека SecureRandom для генерации случайных чисел теперь предоставляет ОС источники OpenSSL. Кроме того, стандартные библиотеки, такие как cmath, csv, date, dbm и ipaddr были повышены до gems