Състоя се пускането на mruby 3.0, вграден интерпретатор на динамичния обектно-ориентиран език за програмиране Ruby. Mruby осигурява съвместимост на синтаксиса с Ruby 1.9, но също така поддържа отделни възможности от по-нови версии. Интерпретаторът се отличава с ниска консумация на памет и възможност за вграждане в други приложения. Освен това се поддържа компилирането на Ruby програми в байткод с помощта на компилатора „mrbc“, разработван от проекта. Кодът на mruby се разпространява под лиценз MIT.
В новото издание значително е намалена консумацията на памет, използвана в mruby VM. Предишните версии изискваха няколко стотин КБ оперативна памет, а mruby 3.0 консумира около 100 КБ RAM.
- Намалена е консумацията на оперативна памет чрез оптимизация на разпределението на паметта за обекти от клас 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 е премахнат.
Източник: opennet.ru
