oracle / truffleruby

A high performance implementation of the Ruby programming language, built on GraalVM.
https://www.graalvm.org/ruby/
Other
3.03k stars 185 forks source link

Ruby 3.3 support #3681

Open eregon opened 1 month ago

eregon commented 1 month ago

We are working on Ruby 3.3 support for the next release (24.2).

Any help is appreciated whether it is:

To make it easier to find good getting-started issues, I annotated items with easy, medium and hard. There is also pure ruby for changes which should only affect Ruby code and not require any change to Java sources or any Java knowledge. If there is no pure ruby then some Java code is involved, but it should still be fairly straightforward if easy or medium. hard typically requires more knowledge about TruffleRuby implementation details. [import] means this needs the import of Ruby 3.3 sources to happen first.

If you'd like to start on some task please mention it here or edit the description directly for committers (to avoid duplicated work).

Full list of changes for Ruby 3.3.0

NOTE: https://rubyreferences.github.io/rubychanges/3.3.html gives more details for many features and changes.

From https://github.com/ruby/ruby/blob/master/doc/NEWS/NEWS-3.3.0.md:

This document is a list of user-visible feature changes since the 3.2.0 release, except for bug fixes.

Note that each entry is kept to a minimum, see links for details.

Core classes updates

Note: We're only listing outstanding class updates.

Array

Dir

Encoding

Fiber

fiber = Fiber.new do
  while true
    puts "Yielding..."
    Fiber.yield
  end
ensure
  puts "Exiting..."
end

fiber.resume
# Yielding...
fiber.kill
# Exiting...

MatchData

Module

ObjectSpace::WeakKeyMap

ObjectSpace::WeakMap

Proc

Process

Process::Status

Range

Refinement

Regexp

String

Thread::Queue

Thread::SizedQueue

Time

Time.new('2023-12-20')
#  no time information (ArgumentError)

TracePoint

Stdlib updates

See GitHub releases like Logger or changelog for details of the default gems or bundled gems.

Prism

Compatibility issues

Stdlib compatibility issues

C API updates

rb_postponed_job updates

Some updates for internal thread event hook APIs

IO related updates:

andrykonchin commented 8 hours ago

I am working on

[medium, Java] it calls without arguments in a block with no ordinary parameters are deprecated. it will be a reference to the first block parameter in Ruby 3.4. [[Feature #18980]]