Latest in branch 3.3
3.3.11
Released 26 Mar 2026
(2 months ago)
SoftwareRuby
Version3.3
Status
Supported
Initial release3.3.0
25 Dec 2023
(2 years ago)
Latest release3.3.11
26 Mar 2026
(2 months ago)
End of bug fixes01 Apr 2026
(Ended 2 months ago)
End of life31 Mar 2027
(Ends in 9 months)
Release notes https://ruby-lang.org/en/news/2026/03/26/ruby-3-3-11-released/
Source codehttps://github.com/ruby/ruby/tree/v3_3_11
Documentationhttps://ruby-doc.org
Downloadhttps://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.11.tar.gz
Ruby 3.3 ReleasesView full list

What is New in Ruby 3.3

Ruby 3.3 brings significant performance gains, especially through YJIT improvements, a new parser with Prism, an experimental M:N thread scheduler, and many updates to the garbage collector and standard libraries. It focuses on speed, concurrency, and better tooling while maintaining compatibility.

Performance Improvements

YJIT has been greatly enhanced compared to Ruby 3.2:

  • Support for splat/rest arguments and better handling of calls with optional parameters.
  • Register allocation improvements and optimized handling of exception handlers.
  • Special optimizations for common methods like #blank?, #present?, Integer#*, String#getbyte, Kernel#block_given?, and others.
  • Faster compilation and much lower memory usage.
  • New command-line options such as --yjit-call-threshold=120, --yjit-cold-threshold, and --yjit-exec-mem-size.
  • Runtime enabling with RubyVM::YJIT.enable.
  • More detailed statistics available by default.

Other general optimizations include:

  • Faster defined?(@ivar) using Object Shapes.
  • Interruptible Socket.getaddrinfo.
  • Garbage Collector changes to reduce major collections by delaying promotion of young objects.
  • Variable Width Allocation for most core classes, leading to faster object creation and less memory fragmentation.
  • Support for weak references in more scenarios.

Parser Changes

Prism is introduced as a new default gem and serves as an alternative parser:

  • A portable, error-tolerant, and maintainable recursive descent parser written in Ruby.
  • Provides methods like Prism.parse(source) for AST, Prism.parse_comments, and Prism.parse_success?.
  • Can be activated with --parser=prism flag for debugging.

Lrama replaces Bison as the parser generator, and the internal parser now uses an LR parser generated by Racc with support for parameterized rules.

Ractor and Concurrency Enhancements

An experimental M:N thread scheduler is added:

  • Maps multiple Ruby threads to fewer native threads for lower overhead.
  • Enabled with RUBY_MN_THREADS=1 (disabled by default on the main Ractor for C-extension compatibility).
  • Limited by RUBY_MAX_CPU environment variable (default 8).
  • Always active on non-main Ractors.

Standard Library Updates

New default gem: prism 0.19.0.

Many default and bundled gems have been updated to newer versions, including:

  • bigdecimal 3.1.5
  • irb 1.11.0
  • psych 5.1.2
  • rdoc 6.6.2
  • rake 13.1.0
  • And many others like rexml, debug, and openssl.

racc 1.7.3 is promoted to default gem status.

Warnings are now shown when requiring certain bundled gems without declaring them in Gemfile or gemspec (can be suppressed with Bootsnap).

IRB receives major improvements:

  • Deep integration with the debugger (irb:rdbg for stepping and breakpoints).
  • Better output paging and accurate method/source listing.
  • Experimental type-based autocompletion.
  • Customizable colors and styles.

Compatibility and Deprecation Notes

  • The ext/readline extension is retired; use the pure-Ruby reline instead (compatible API).
  • it without arguments in blocks with no parameters is deprecated.
  • Regexp.new accepts only up to two arguments.
  • Some environment variables like RUBY_GC_HEAP_INIT_SLOTS are removed or ignored.

Other Notable Changes

  • RJIT is introduced as a new experimental pure-Ruby JIT compiler (replaces MJIT), supporting x86-64 on Unix platforms without needing a C compiler at runtime.
  • Enhanced profiling and tracing options for YJIT.
  • Overall focus on better performance, modern tooling, and preparation for future concurrency improvements.

Releases In Branch 3.3

VersionRelease date
3.3.1126 Mar 2026
(2 months ago)
3.3.1023 Oct 2025
(7 months ago)
3.3.924 Jul 2025
(10 months ago)
3.3.809 Apr 2025
(1 year ago)
3.3.715 Jan 2025
(1 year ago)
3.3.605 Nov 2024
(1 year ago)
3.3.503 Sep 2024
(1 year ago)
3.3.409 Jul 2024
(1 year ago)
3.3.312 Jun 2024
(1 year ago)
3.3.230 May 2024
(2 years ago)
3.3.123 Apr 2024
(2 years ago)
3.3.025 Dec 2023
(2 years ago)
3.3.0-rc111 Dec 2023
(2 years ago)
3.3.0-preview312 Nov 2023
(2 years ago)
3.3.0-preview214 Sep 2023
(2 years ago)
3.3.0-preview112 May 2023
(3 years ago)