GraalVM 21.3.0 社区版发布,高性能跨语言虚拟机
GraalVM 是 Oracle 打造的高性能跨语言虚拟机,支持运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言(如 Java、Scala 和 Kotlin),以及基于 LLVM 的语言,如 C 和 C++。
GraalVM 21.3.0 更新内容如下:
新功能
- 现在默认使用 TRegex,这为正则表达式的匹配提供了很大的速度提升
- 添加 Polyglot.languages 以显示可用语言的列表。
- 外部对象现在有了一个基于其互操作特性的动态生成的类,如
ForeignArray,并能更好地与 Ruby 对象集成。 - 外部数组现在拥有 Ruby
Enumerable的所有方法和Array的许多方法。 - 外部哈希现在拥有 Ruby
Enumerable的所有方法和Hash的许多方法。 - 外部的迭代器 (
InteropLibrary#hasIterator) 现在拥有 RubyEnumerable的所有方法。 - 外部对象现在实现了
#instance_variables和#methods。
错误修正
- 修复
rb_str_modify_expand,以保留现有的字节。 - 修复
Dir.mkdir对Pathname路径的错误处理。 - 修复多次加载同一文件时的常量查找。
- 修正
define_method(name, &block)方法中break、next和redo的处理。 - 修复
Float#<=>中不兼容类型的处理。 - 修正
Dir.glob的大括号转义问题。 - 修复
base64解码时输出丢失的问题。
兼容性
- 实现
Process::Status.wait。 - 更新
rb_str_modify和rb_str_modify_expand,当给定一个冻结的字符串时引发FrozenError。 - 实现
rb_fiber_*函数。 - 实现
rb_str_vcatf。 - 实现
rb_str_catf。 - 接受字符串作为
StringScanner#scan和StringScanner#check的模式参数。 - ……
更多详情可查看:https://github.com/oracle/truffleruby/releases/tag/vm-21.3.0