Представлен выпуск mruby 3.2, встраиваемого интерпретатора динамического объектно-ориентированного языка программирования Ruby. Mruby обеспечивает базовую совместимость синтаксиса на уровне Ruby 3.x, за исключением поддержки сопоставления с образцом (“case .. in”). Интерпретатор отличается низким потреблением памяти и ориентирован на встраивание поддержки языка Ruby в другие приложения. Встроенный в приложение интерпретатор может выполнять как исходный код на языке Ruby, так и байткод, полученный при помощи развиваемого проектом компилятора “mrbc”. Исходные тексты mruby распространяется под лицензией MIT.
В новом выпуске устранено 19 уязвимостей, которые могут привести к переполнению буфера, разыменованию нулевых указателей или обращению к памяти после её освобождения при обработке интерпретатором специально оформленного Ruby-кода.
Из не связанных с безопасностью изменений отмечается:
- Поддержка передачи анонимных аргументов (*, **, &),
- Поддержка больших целых чисел (mruby-bigint).
- Поддержка загрузки скомпилированных бинарных файлов с расширением “.mrb”.
- Добавление опции “–no-optimize” для отключения оптимизаций в компиляторе mrbc.
- Реализация методов Class#subclasses и Module#undefined_instance_methods в mruby-class-ext.
- Новые встроенные библиотеки mruby-errno, mruby-set, mruby-dir и mruby-data.