Доступен интерпретатор mruby 3.0

Состоялся релиз mruby 3.0, встраиваемого интерпретатора динамического объектно-ориентированного языка программирования Ruby. Mruby обеспечивает совместимость синтаксиса на уровне Ruby 1.9, но также поддерживает отдельные возможности из более новых версий. Интерпретатор отличается низким потреблением памяти и возможностью встраивания в другие приложения. Кроме того, поддерживается компиляция Ruby-программ в байткод при помощи развиваемого проектом компилятора «mrbc». Код mruby распространяется под лицензией MIT.

В новом выпуске значительно сокращено потребление памяти, используемой в mruby VM. Предыдущие версии требовали нескольких сотен КБ оперативной памяти, а mruby 3.0 потребляет около 100 КБ ОЗУ.‎ Основные улучшения:

  • Уменьшено потребление оперативной памяти за счет оптимизации выделения памяти для объектов класса Symbols. Уменьшено потребление памяти объектами класса Hash. Проведена оптимизация вызова методов.

  • Добавлена поддержка однострочного определения метода без использования ключевого слова «end»:
       def square(x) = x * x
    
  • Добавлен оператор »=›» (значения =› переменная), который используется для правостороннего присваивания значений.
       0 =› a
       p a #=› 0
       {b: 0, c: 1} =› {b:}
       p b #=› 0
    
  • Поддержка конструкции heredocs.

  • Обновлены файлы сборки интерпретатора. Добавлена компиляция с gprof. GCC теперь может собирать в режиме 32 бита на 64 битных платформах. Появилась поддержка Address Sanitizer в clang.

  • Изменение, нарушающее совместимость: константа RITE_VM_VER теперь имеет значение 0300, а RITE_BINARY_FORMAT_VER — 0200, что исключает возможность исполнения байткода от прошлых версий.

  • Класс Fixnum стал частью Integer, так же как в Ruby 3.0. Удален класс Integral.



Источник: http://www.opennet.ru/opennews/art.shtml? num=54712

© OpenNet