TruffleRuby 社区版 1.0 RC7 发布了,TruffleRuby 是 Ruby 编程语言的高性能实现,与 MRI 2.4.4 兼容,基于 Oracle Labs 的 GraalVM。可以使用 gu 程序在 GraalVM 中安装 Ruby 语言组件。 TruffleRuby 运行 Rails,并通过了大部分 Rails 测试套件的测试。但它缺少对 Nokogiri 和 ActiveRecord 数据库驱动程序的支持,这使得它目前运行真正的 Rails 应用程序变得不切实际。
TruffleRuby 的目标 TruffleRuby 的系统兼容性 已在下面这些系统通过测试 Oracle Linux 7 Ubuntu 16.04 LTS Fedora 25 macOS 10.13
更新内容包括新增特性、bug 修复和提升性能。 新特性 为更多外联对象(foreign objects)添加有用的字符串检查 C 扩展 API 现在定义了预处理器宏 TRUFFLERUBY 添加了 rbconfig/sizeof 原生扩展以获得更好的 MRI 兼容性 支持 pg 1.1。扩展现在已经可以成功编译,但是可能仍有一些数据类型的问题。
Bug 修复 readline can now be interrupted by the interrupt signal (Ctrl+C). This fixes Ctrl+C to work in IRB.
Better compatibility with C extensions due to a new "managed struct" type. Fixed compilation warnings which produced confusing messages for end users (#1422). Improved compatibility with Truffle polyglot STDIO. Fixed version check preventing TruffleRuby from working with Bundler 2.0 and later (#1413). Fixed problem with Kernel.public_send not tracking its caller properly (#1425). rb_thread_call_without_gvl() no longer holds the C-extensions lock.
Fixed caller_locations when called inside method_added . Fixed mon_initialize when called inside initialize_copy (#1428). Mutex correctly raises a TypeError when trying to serialize with Marshal.dump .
性能 Reduced memory footprint for private/internal AST nodes. Increased the number of cases in which string equality checks will become compile-time constants. Major performance improvement for exceptional paths where the rescue body does not access the exception object (e.g., x.size rescue 0 ).
源码下载和发布说明:https://github.com/oracle/truffleruby/releases/tag/vm-1.0.0-rc7 |