IT资讯 Ruby 3.3.0 发布首个预览版

antoine · 2023-05-15 10:30:06 · 热度: 13

Ruby 3.3.0-preview1 已发布,作为 3.3 的第一个预览版。Ruby 3.3 最重大的改动是添加了一个名为 RJIT 的新纯 Ruby JIT 编译器,使用 Lrama 作为解析器生成器,并带来许多性能改进。

RJIT

Ruby 3.3.0-preview1 引入纯 Ruby JIT 编译器 RJIT 替换了 MJIT。与 MJIT 不同,RJIT在运行时不需要 C 编译器。

有关 RJIT 的详细介绍,可查看此前的报道:《Ruby 引入新 JIT 编译器 RJIT,替代 MJIT》。

但要注意:RJIT 仅支持 Unix 平台上的 x86_64 架构。而且目前 RJIT 仅用于实验目的。应该在生产中继续使用 YJIT。

使用 Lrama 而不是 Bison

YJIT

性能改进

  • 改进了 Splat 和 rest 参数支持。
  • 为虚拟机的堆栈操作分配寄存器。
  • 编译更多带有可选参数的调用。
  • Integer#!= , String#!= , Kernel#block_given? , Kernel#is_a? , Kernel#instance_of? , Module#=== 特别优化。

编译代码的元数据使用更少的内存

改进了 ARM64 上的代码生成

可选择以暂停模式启动 YJIT,然后手动启用它:--yjit-pause  RubyVM::YJIT.resume。注意:只有在应用程序完成启动后,才可以使用它来启用 YJIT 。

退出跟踪选项现在支持采样:--trace-exits-sample-rate=N

多个错误修复

标准库更新:

  • RubyGems 3.5.0.dev
  • bigdecimal 3.1.4
  • bundler 2.5.0.dev
  • csv 3.2.7
  • fiddle 1.1.2
  • fileutils 1.7.1
  • irb 1.6.4
  • optparse 0.4.0.pre.1
  • psych 5.1.0
  • reline 0.3.3
  • stringio 3.0.7
  • strscan 3.0.7
  • syntax_suggest 1.0.4
  • time 0.2.2
  • timeout 0.3.2
  • uri 0.12.1

详情查看更新公告:https://www.ruby-lang.org/en/news/2023/05/12/ruby-3-3-0-preview1-released/

为您推荐与 ruby 相关的帖子:

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册