Ruby 3.3.0 发布首个预览版


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

  • 用 Lrama LALR 解析器生成器功能替换 Bison #19637

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/


相關推薦

2022-10-10

虚幻引擎 5.1 发布了首个预览版,目前已在 Epic Games launcher 和 GitHub 仓库中提供下载。 5.1 预览版更新概要 虚幻引擎 5.1 改进了许多在 UE5 发布时提供的功能,为实时 3D 内容的创建创造了更加精简和易用的工作流程。此版

2022-12-08

Ruby 3.2.0 RC 1 发布了,3.2.0 预览版引入基于 WASI 的 WebAssembly 支持和正则表达式超时退出机制,3.2.0 RC 1 则引入两项可显著缓解 ReDoS 攻击的改进,以及一些语言功能和性能改进。 改进的正则表达式匹配算法 从 Ruby 3.2 开始,Regexp

2023-01-07

Ronin 发布了 2.0 首个 Beta,公告称这是重大重构版本,已于今年 1 月 1 日开始公测,并计划在 2 月 1 日结束公测。 Ronin 是用于安全研究和开发的 Ruby 工具包,它包含许多不同的 CLI 命令和 Ruby 库,适用于各种安全场景,例如编码

2023-02-10

Google 于今天发布了 Android 14 的首个开发者预览版,这一发布时间与以往的发布时间类似,预计 Android 14 正式版将于今年第三季度推出。 支持多用户登录 一家人共用同一个设备的情况十分常见,尤其是共用平板电脑。除此之

2022-10-28

Docker 宣布推出与 WebAssembly 集成 (Docker+Wasm) 的首个技术预览版,并表示公司已加入字节码联盟 (Bytecode Alliance),成为投票成员。 Bytecode Alliance(字节码联盟)由 Mozilla、Fastly、Intel 与 Red Hat 联合成立,是一个推动 WebAssembly 标准

2023-03-02

Visual Studio 2022 17.6 的首个预览版现已发布!此版本扩展了最近发布的 17.5 版 Visual Studio,旨在提高您的工作效率,无论您是 .NET 开发人员、游戏开发人员和/或 C++ 开发人员。 新功能概览: IDE 生产力 括号对着色 Git 行取

2023-12-26

Ruby 3.3.0 现已正式发布。新版本添加了一个名为 Prism 的新解析器,使用 Lrama 作为解析器生成器,添加了一个名为 RJIT 的新纯 Ruby JIT 编译器,以及许多性能改进,尤其是 YJIT。 具体更新内容如下: Prism 引入 Prism 解析器作

2022-07-15

的代码库、应用级沙盒、只读操作系统、后台系统更新、发布节奏和极快的启动速度。其他相似之处还包括 Chrome 浏览器、用户界面、云同步(用于设置和书签)、Google 助理,以及对 Smart Lock、Instant Tethering 和 Nearby Sharing 的支持

2023-07-01

日,微软通过 Dev Channel 向加入测试的用户 (Windows Insiders) 发布了新的 Windows 11 测试版——内置了 Windows Copilot 预览版。 要体验 Windows Copilot,用户需要运行 Windows Build 23493 及以上版本, Microsoft Edge 版本需要 115.0.1901.150 及以上。

2023-03-10

继上个月发布了首个 Android 14 开发者预览版之后,第二版 Android 14 开发者预览版(以下简称 Android 14 DP 2)已于今天开始推出,这也是最后一个开发者预览版,之后 Android 14 将脱离开发者预览阶段,进入 Bete 测试阶段,Android 14 DP

2023-05-04

善 Swift 的跨平台开发。近日,基于 Swift 重写的 Foundation 发布了首个 Preview 预览版。 Foundation 框架是苹果 macOS 和 iOS 的基础组件支持核心,几乎所有的 Swift 项目都使用 Foundation 框架,其主要包含了大量常用的 API,为许多基本

2022-06-15

Oracle 宣布 Oracle Linux 9 首个开发者预览版已可下载,提供了适用于 Intel & AMD (x86_64) 和 Arm (aarch64) 平台的 64 位版本。 下载地址 Oracle Linux 9 包含许多新特性、功能增强和其他变动,与 Red Hat Enterprise Linux 9 GA 版本完全二进制兼

2022-11-25

Ruby 3.1.3、3.0.5、2.1.7 发布了,这几个版本都只包含一个安全修复程序,修复了同一个漏洞: CVE-2021-33621:CGI 中的 HTTP 响应拆分 如果应用程序使用带有不受信任的用户输入的 cgi gem 生成 HTTP 响应,则攻击者可以利用它来注入

2023-01-06

Pushup 发布了首个 Preview 版本:0.1。 Pushup 是一个实验性的新项目,使用 Go 创建现代、面向页面的 Web 应用。Pushup 旨在探索使用 Go 轻松构建面向页面的服务器端 Web 应用程序。 此版本目前初步实现了以下功能: 固定的 project/