推出了 mruby 3.2 版本,这是动态面向对象编程语言 Ruby 的嵌入式解释器。 Mruby 在 Ruby 3.x 级别提供基本语法兼容性,但不支持模式匹配(“case .. in”)。 该解释器内存消耗低,专注于将 Ruby 语言支持嵌入到其他应用程序中。 应用程序内置的解释器可以执行Ruby语言的源代码和使用该项目开发的“mrbc”编译器获得的字节码。 mruby 源代码在 MIT 许可证下分发。
新版本修复了 19 个漏洞,当解释器处理特殊格式的 Ruby 代码时,这些漏洞可能导致缓冲区溢出、空指针取消引用或释放后内存访问。
非安全变更包括:
- 支持传递匿名参数(*、**、&),
- 支持大整数 (mruby-bigint)。
- 支持下载扩展名为“.mrb”的已编译二进制文件。
- 添加“--no-optimize”选项以禁用 mrbc 编译器中的优化。
- mruby-class-ext 中 Class#subclasses 和 Module#undefined_instance_methods 方法的实现。
- 新的内置库 mruby-errno、mruby-set、mruby-dir 和 mruby-data。
来源: opennet.ru