JRuby 是一个采用 Java 实现的 Ruby 解释器,由 JRuby 团队开发。JRuby 与 Java 紧密结合,允许将解释器嵌入任何 Java 应用程序,在 Java 和 Ruby 代码之间进行完全的双向访问(类似于 Python 语言的 Jython)。
JRuby 9.3.x 与 Ruby 2.6.x 兼容,并与 C Ruby 保持同步。
兼容性
- Ruby 语言的兼容性已经更新,以匹配 Ruby 2.6.8 (#5576)
- require/load/autoload 子系统已被重写,以更好地匹配 Ruby 行为。这改善了对 Zeitwerk 加载器的支持,并修正了许多长期存在的问题 (#2794, #3656, #5403, #5466, #5590, #5618, #5638, #5717, #5763, #5764, #6347, #6445)
- 改进了处理复杂方法和常量查找的逻辑,例如在预置、细化或超级调用的情况下。这些形式的大多数已知问题已经被修复 (596, #2155, #4678, #6271, #6712, #6777, #6778, #6785)
标准库
- 标准库已经更新,以匹配 Ruby 2.6.8。一些库现在使用了官方的 gems,允许它们独立于 JRuby 进行升级 (#4875, #6150, #6797, #6796, #6795, #6794, #6533, #6802)
Java 集成
- JRuby 支持 8 到 17 版本的 Java,并且应该能与任何支持的 OpenJDK 构建良好地工作。未来的 JRuby 版本可能会放弃对 Java 8 到 10 的支持,所以鼓励用户尽快升级旧的应用程序。
- 用于从 Ruby 扩展 Java 类的 Java 集成逻辑已被重写,以更好地支持 Java 构造函数,并从我们的 Java 集成库的其他部分重用更多逻辑 (#449, #2369, #4165, #5270, #6422)
- JRuby 现在为 Maven Central 提供了一个新的 “jruby-base” jar 构件。它提供了一个基本的 JRuby jar 文件,其中不包含任何依赖项或标准库。我们将来可能会弃用并移除 “jruby-core” (#6233)
更多详情可查看:https://www.jruby.org/2021/09/22/jruby-9-3-0-0.html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/169512.html