
JRuby 社区很高兴宣布 JRuby 10.0.3.0 的发布。
- 主页:https://www.jruby.org/
- 下载:https://www.jruby.org/download
JRuby 10.0.3.x 目标兼容 Ruby 3.4。
感谢本版本的贡献者,你们帮助 JRuby 持续前进!@mrnoname1000, @ngr-ilmarh, @Earlopain, @philr, @jotamartos, @kares, @aleksandrs-ledovskis, @trinistr, @katafrakt, @chadlwilson, @khasinski, @evaniainbrooks
兼容性
- JRuby 现在报告
RbConfig::CONFIG['arch']而不带版本号,作为universal-java。这允许使用不同的 JDK 版本,而不会触发已安装宝石的 RubyGems 缺少扩展警告。主机 Java 版本仍然可用作为RbConfig::CONFIG['arch_version']。 #9107
标准库
- 非宝石的标准库升级到 Ruby 3.4.5 #8967
- rexml 已更新至 3.4.4 版本,以修复 CVE-2025-58767 漏洞。 #9011
- syslog 已迁移至默认 gem 包,版本为 0.4.0。syslog gem 现在包含 JRuby 支持。 #9109, ruby/syslog#1
- strscan 已更新至 3.1.7 版本。 #9159
文档说明
- Ruby 核心和标准库的文档现在包含在发布版本中。#9049, #9052
所有问题/PR
- #8707 警告:sun.misc.Unsafe 中调用了已废弃的方法
- #8727 无法安装最新的
rubocop - #8730 启动器:防御性修复
- #8758 自 9.3.0 起,如果类在模块内部,Require 不可用于 .class 文件
- #8810 8809 的可能修复方案
- #8923
NameError用于自动加载的常量,带有private_constant - #8934 JRuby 在 Java 22+下始终认为它正在 TTY 下运行
- #8940 验证_to_s 是否为字符串,否则回退到 anyToString
- #8947 新增对 JDK 22+下 System.console 的 tty 检查
- #8955 Range#count 对于 Integer 边界始终返回 size
- #8956 处理传递给 Range#count 的参数或块
- #8958 并发 requires 可能导致 StringIndexOutOfBoundsException
- #8960 修复搜索特征路径时 index -1 的错误
- #8962 升级 polyglot 并移除 openssl 库的 hack
- #8967 将标准库更新到 3.4.5 并清理旧文件
- #8975 使用 RuboCop 清理 poms(10.x)
- #8976 JRuby v10.0.1.0 中关键字参数匹配的回归问题
- #8978 针对基于 scheme 的 globbing 的额外修复
- #8984 glob 重构
- #8985 修复语言规范中错误字符串变更的问题
- #8987 InvokeDynamicSupport.findVirtual 因 IllegalAccessException 失败:符号引用类不可访问
- #8989 在 Lookup.find*之前明确请求访问权限
- #8994 autoload 和 private_constant 不兼容
- #8995 private_constant 应该只更新现有的 autoload
- #8996 避免绑定不可读模块的类
- #8998 Time#localtime 错误地将零时区视为 UTC(v10.0.2.0 中的回归问题)
- #9006 在搜索时将 .class 视为源扩展
- #9007 处理
warn(foo, uplevel: nil) - #9009 使用未定义字符编码字符串时失败并抛出 NoMethodError
- #9010 修复 Time#localtime 和 Time.at 将 “+00:00” 和 0 视为 UTC 的问题
- #9011 更新 rexml gem 以解决 CVE-2025-58767
- #9016 [修复] 调用 Java 代理的静态 hash() 方法时的回归问题
- #9017 无法使用具有静态 hash() 方法的 Java 类
- #9018 解析器在 Windows 上读取 \r\n 时不会转换换行符
- #9019 我们需要从 heredoc 字符串中移除\r
- #9021 停用安全的双重处理工具
- #9024 将所有主类移动到 org.jruby.main 包
- #9027 在裸 Deprecated 注解中添加“since”
- #9035 IO#read 不清除缓冲区参数的代码范围
- #9036 修复:在重用字符串缓冲区时清除代码范围
- #9038 为所有 jar 清单添加打开和本地访问
- #9039 更新所有 jnr 依赖项
- #9041 将 .java-version 内容迁移到 .jruby.release
- #9049 核心 ri 文档不可用
- #9050 Marshal 无法加载带有编码 ivar 的编码
- #9051 解析编码时忽略编码
- #9052 下载并包含到 dist 中 CRuby 的 rdoc 数据
- #9058 实现高效的 unshifting
- #9059 在 unshifting 元素前预留额外空间
- #9063 Hash 的 compare_by_identity 状态无法序列化
- #9065 保留 marshal 化 Hash 的 compare_by_identity
- #9068 Windows 持续集成规范运行
- #9073 修复:允许使用 ENV 变量覆盖 JSA 文件位置
- #9084 object_id 改进
- #9094 实现 GC.config [Ruby 3.4]
- #9097 将 jruby-openssl 更新到 v0.15.5 以解决 BouncyCastle 1.79 漏洞 (sonatype-2025-001911)
- #9098 修复 CoverageData.mergeLines 在覆盖率增加时的行为
- #9101 缓存 fixnums 以支持立即值
- #9103 将 jruby-openssl 更新到 0.15.5
- #9106 为许多集合使用更小的默认大小
- #9107 将 Java 版本从 rbconfig 的‘arch’中分离出来
- #9108 整理默认 gem
- #9109 切换到 syslog gem
- #9110 在 proc 上调用
inspect会重置source_location中的行 - #9112 防止在 RubyProc 中修改状态
- #9117 在删除不存在的文件时,向错误消息中添加文件路径
- #9122 在 Windows 上出现意外的 jruby.sh 错误消息
- #9127 修复(launcher):在 Bash/msys2 等在 Windows 上正确解析 java 版本文件
- #9138 复制数据类型的变量表管理器与新 realClass
- #9141 出于易出错的原因进行的重构和清理
- #9142 将 GC 的方法从 module_function 改为元类方法
- #9145 永远不要信任外部内容用于 FString
- #9152 Marshal.dump 对大型 Array 结构的损坏
- #9157 更新包含的宝石
- #9158 使用相同的键匹配 containsKey
- #9159 将 strscan 更新到 3.1.7
- #9182 修复使用无效编码时出现的 NoMethodError::replace 选项
- #9188 each.map 与 each 和单独的 map 的参数不同 (10.0)
- #9189 修复 #8952。嵌套
it应该是不同的its - #9190 从 10.1 回滚隐式局部变量修复
- #9191 修复 #8952。嵌套“it”行为损坏
- #9192 尝试修复 #8976
- #9194
BigDecimal#+,#-,#add,#sub总是尝试将强制转换的结果转换为RubyBigDecimal - #9196
require "bigdecimal"如果之前已经调用过,则不会安装BigDecimal() - #9199 在将 Float 转换为 JSON 时,jRuby 10.0.0.1 和 Ruby 3.4 的输出格式差异
- #9200 将浮点数格式提取为静态方法以用于 to_json
- #9203 从生成的 populators 中使方法缓存失效
- #9204 修复 BigDecimal#+, #-, #add, #sub 在强制转换不返回 BigDecimal 时失败的问题
- #9205 修复编码回退错误处理和错误消息格式问题
Linuxeden开源社区