Ruby 4.0.0已正式发布,这是面向对象解释型Ruby编程语言的最新版本。此次更新的亮点包括全新的即时编译器ZJIT,以及用于进程内类和模块分离的实验性"Ruby Box"功能。
Ruby 4.0.0于2025年12月25日发布,用户可从ruby-lang.org下载使用。
Ruby Box隔离功能
Ruby Box是一项全新功能,旨在为Ruby进程提供独立空间,实现代码、库和monkey代码的隔离。Ruby Box的预期应用场景包括:在隔离环境中运行测试用例,当测试用例使用monkey补丁覆盖某些功能时保护其他测试;在应用服务器的Ruby进程中并行运行Web应用盒子,实现蓝绿部署;并行运行Web应用盒子,通过检查响应差异在特定时间段内评估依赖更新。需要注意的是,Ruby Box目前仍处于实验阶段,存在一些已知问题。
ZJIT即时编译器
Ruby 4.0.0还引入了ZJIT,这是一个新的即时编译器,旨在成为YJIT的下一代产品。ZJIT内置于Ruby的YARV参考实现中,性能优于解释器,但尚未达到YJIT的速度水平。开发者可以尝试使用ZJIT进行实验,但暂时不建议在生产环境中部署。建议用户关注Ruby 4.1版本中的ZJIT改进。
Ractor并行执行优化
在Ruby 4.0.0中,Ruby的并行执行机制Ractor也得到了显著改进。新增了Ractor::Port类,用于解决消息发送和接收相关问题,以及Ractor.shareable_proc功能,简化了Ractor间Proc对象的共享。在性能方面,Ractor的许多内部数据结构都得到了优化,减少了全局锁的竞争,从而实现更好的并行性。Ractor现在共享的内部数据更少,在并行运行时减少了CPU竞争。
其他功能改进
Ruby自1995年首次发布以来不断发展。Ruby 4.0.0的其他新功能包括:
*nil不再调用nil.to_a,与**nil不调用nil.to_hash的行为保持一致。
针对核心类,新增了Array#rfind方法,作为array.reverse_each.find的更高效替代方案。
Enumerator.produce现在接受可选的size关键字参数,用于指定枚举器大小。
Kernel#inspect现在会检查#instance_variables_to_inspect方法的存在,允许控制在#inspect字符串中显示哪些实例变量。
Q&A
Q1:Ruby Box隔离功能有什么用途?
A:Ruby Box为Ruby进程提供独立空间,实现代码隔离。主要用途包括:在隔离环境中运行测试用例保护其他测试、在应用服务器中并行运行Web应用实现蓝绿部署、并行评估依赖更新等。目前仍处于实验阶段。
Q2:ZJIT编译器性能如何?可以用于生产环境吗?
A:ZJIT是新的即时编译器,性能优于解释器但尚未达到YJIT水平。开发者可以进行实验,但不建议在生产环境中部署。建议等待Ruby 4.1版本中的ZJIT改进。
Q3:Ruby 4.0.0对Ractor并行执行做了哪些改进?
A:主要改进包括:新增Ractor::Port类解决消息传递问题、添加Ractor.shareable_proc简化对象共享、优化内部数据结构减少全局锁竞争、减少内部数据共享降低CPU竞争,整体提升了并行性能。
好文章,需要你的鼓励
埃森哲投资AI零售平台Profitmind,该平台通过智能代理自动化定价决策、库存管理和规划。研究显示AI驱动了2025年假日购物季20%的消费,约2620亿美元。部署AI代理的企业假日销售同比增长6.2%,而未部署的仅增长3.9%。Profitmind实时监控竞争对手价格和营销策略,并可创建生成式引擎优化产品文案。
上海AI实验室联合团队开发RoboVIP系统,通过视觉身份提示技术解决机器人训练数据稀缺问题。该系统能生成多视角、时间连贯的机器人操作视频,利用夹爪状态信号精确识别交互物体,构建百万级视觉身份数据库。实验显示,RoboVIP显著提升机器人在复杂环境中的操作成功率,为机器人智能化发展提供重要技术突破。
日立公司在CES 2026技术展上宣布了重新定义人工智能未来的"里程碑式"战略,将AI直接应用于关键物理基础设施。该公司与英伟达、谷歌云建立重要合作伙伴关系,并扩展其数字资产管理平台HMAX,旨在将AI引入社会基础设施,变革能源、交通和工业基础设施领域。日立强调其独特地位,能够将AI集成到直接影响社会的系统中,解决可持续发展、安全和效率方面的紧迫挑战。
英伟达研究团队提出GDPO方法,解决AI多目标训练中的"奖励信号坍缩"问题。该方法通过分别评估各技能再综合考量,避免了传统GRPO方法简单相加导致的信息丢失。在工具调用、数学推理、代码编程三大场景测试中,GDPO均显著优于传统方法,准确率提升最高达6.3%,且训练过程更稳定。该技术已开源并支持主流AI框架。