“`html
Ruby 3.3.0 has entered the release candidate stage, bringing with it a new parser for the popular dynamic language.
RC1 of Ruby 3.3.0 was announced on December 11 and is available for access from ruby-lang.org.
One of the key features of Ruby 3.3.0 is the inclusion of the Prism parser as a default gem. Prism is a portable, error-tolerant, recursive-descent parser for the Ruby language, and is implemented as a C library. It can be used as an alternative to the existing Ripper parser.
Another notable addition in Ruby 3.3.0 is the Lrama LALR parser generator, which aims to provide an error-tolerant parsing solution for CRuby with minimal changes to the CRuby parse.y file. Additional highlights of Ruby 3.3.0 include:
- The experimental pure-Ruby RJIT Ruby JIT compiler, which replaces MJIT. YJIT is recommended for production use.
- Major performance improvements and enhanced memory usage in YJIT over Ruby 3.2.
- The introduction of the M:N thread scheduler.
- Optimization of
defined?(@ivar)
with Object Shapes for improved performance. - Enhancements to the garbage collector performance.
- Implementation of Variable Width Allocation for most core classes, such as
Hash
,Time
,Thread::Backtrace
,Thread::Backtrace::Location
,File::Stat
, andMethod
, resulting in faster allocation and deallocation as well as reduced memory use and heap fragmentation.
Following the release of RC1, Ruby’s developers will strive to avoid introducing ABI (application binary interface) incompatibilities wherever possible. The previous release, Ruby 3.2.2, focused on security fixes and was made available on March 30.
Copyright © 2023 IDG Communications, Inc.
“`