Hacker News 中文摘要

RSS订阅

Ruby 4.0.0 发布 -- Ruby 4.0.0 Released

文章摘要

Ruby 4.0.0正式发布,主要引入两项新特性:实验性功能"Ruby Box"可通过环境变量启用,实现代码隔离;新增"ZJIT"即时编译器提升性能。该版本还包含多项改进。

文章总结

Ruby 4.0.0 正式发布

我们很高兴地宣布 Ruby 4.0.0 版本发布。本次更新带来了"Ruby Box"和"ZJIT"两项重要新特性,并包含多项改进。

核心新特性

Ruby Box(实验性功能)

  • 通过环境变量 RUBY_BOX=1 启用
  • 提供定义隔离功能,可隔离以下内容:
    • 猴子补丁
    • 全局/类变量修改
    • 类/模块定义
    • 加载的原生/Ruby库
  • 主要应用场景:
    • 测试用例隔离
    • 并行运行Web应用实现蓝绿部署
    • 依赖更新评估
    • 作为底层API实现高级"包"功能

ZJIT(新一代JIT编译器)

  • 需要Rust 1.85.0+编译支持
  • 通过 --zjit 参数启用
  • 当前性能:解释器 < ZJIT < YJIT
  • 目标是在Ruby 4.1中实现生产环境就绪

Ractor改进

  • 新增 Ractor::Port 类优化消息传递
  • 引入 Ractor.shareable_proc 共享Proc对象
  • 性能优化:
    • 减少全局锁竞争
    • 降低CPU缓存争用
  • 计划明年移除"实验性"标签

语言变化

  • *nil 不再调用 nil.to_a
  • 逻辑运算符支持行首续行语法
  • 错误提示增强:ArgumentError显示调用方和定义方代码片段

标准库更新

  • Pathname和Set升级为核心类
  • 新增win32-registry默认gem
  • 多个默认gem版本更新
  • CGI库精简为仅提供转义功能
  • Net::HTTP移除自动设置Content-Type行为

兼容性变更

  • 移除Ractor相关废弃方法
  • 弃用 ObjectSpace._id2ref
  • 移除 Process::Status 的位操作方法
  • 错误回溯信息格式优化

性能优化

  • Class#new 性能提升
  • GC堆分区独立增长
  • 大对象页扫描优化
  • 实例变量访问加速
  • 多种核心对象写屏障保护

JIT改进

  • ZJIT:实验性方法编译器
  • YJIT:新增内存大小和调用阈值选项
  • 移除RJIT支持

平台支持

  • Windows平台最低要求VS2015

下载信息

提供tar.gz(23.9MB)、tar.xz(18MB)、zip(29.2MB)三种格式,包含完整校验信息。

Ruby简介

由松本行弘(Yukihiro Matsumoto)于1993年创建的开源动态语言,广泛应用于Web开发等领域。

(注:本文对原文进行了结构化精简,保留了核心技术特性和重要变更,删减了过于详细的版本更新记录和次要功能说明,总字数控制在1000字左右)

评论总结

以下是评论内容的总结,平衡呈现不同观点:

  1. 节日祝福与感谢(5条评论)
  • "It wouldn't be Christmas without a new version of Ruby"(aaronbrethorst)
  • "This really makes Christmas festive...Thank you Matz and team"(desireco42)
  1. 对新功能的兴趣(3条评论)
  • "Ruby::Box looks useful"(nish__)
  • "the ruby::box thing looks pretty interesting...this is pretty nifty too!"(maz1b)
  1. 技术特性讨论(2条评论)
  • "Ractor is still work in progress while Fiber has matured"(ksec)
  • "Does it support typing yet?"(ergocoder)
  1. 语言比较与转向(2条评论)
  • "Python has won for me: fastapi, pytorch..."(RomanPushkin)
  • "I've moved away due to the lack of typing"(ergocoder)
  1. 情感表达(4条评论)
  • "Still love Ruby deeply"(mikestorrent)
  • "My best Christmas gift <3"(ekvintroj)

关键分歧点: - 支持者赞赏节日传统和语法优雅(7条正面) - 批评者指出类型系统缺失等不足(2条) - 1位用户明确表示已转向Python生态系统

注:所有评论均无评分数据,无法评估认可度。Ruby 4.0的发布主要引发了对新功能(如Ruby::Box)、并发模型(Fiber/Ractor)和类型系统的讨论,同时伴随强烈的情感共鸣。