Skip to content

Conversation

@luizluca
Copy link
Contributor

Ruby 4.0 introduces "Ruby Box" and "ZJIT", and adds many improvements.

  • Introduce experimental ZJIT compiler
  • Improve YJIT performance and memory usage
  • Add experimental Ruby Boxes object layout optimization
  • VM and GC performance improvements
  • Ractor runtime and scheduling enhancements
  • Update language syntax and semantics (*nil behavior, logical operator parsing)
  • Add Array#rfind and optimized Array#find
  • Improve Binding API and implicit parameter access
  • Extend Enumerator.produce with size keyword
  • Enhance ArgumentError diagnostics with caller/callee context
  • Add Fiber#raise(cause:)
  • IO.select accepts Float::INFINITY timeout
  • Improve Kernel#inspect extensibility
  • Add Math.log1p and Math.expm1
  • Promote Pathname and Set to core classes
  • Extend Ractor API (join, value, lifecycle helpers)
  • Fix endless and infinite Range behavior
  • Define new top-level Ruby module
  • Update Unicode to 17.0 and extend String strip methods
  • Update bundled gems (RubyGems, Bundler, IRB, etc.)

Packaging changes:

  • Include license files for all packages
  • As ruby set moved into core, ruby-set is gone. ruby-setsubclasscompact was added to include the set subclass compatible layer

Changelog: ruby/ruby@v3_4_0...v4.0.0

📦 Package Details

Maintainer: @luizluca (me)

Description:
Major ruby update

🧪 Run Testing Details


✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

If your PR contains a patch:

  • It can be applied using git am
  • It has been refreshed to avoid offsets, fuzzes, etc., using
  • It is structured in a way that it is potentially upstreamable

Ruby 4.0 introduces "Ruby Box" and "ZJIT", and adds many improvements.
- Introduce experimental ZJIT compiler
- Improve YJIT performance and memory usage
- Add experimental Ruby Boxes object layout optimization
- VM and GC performance improvements
- Ractor runtime and scheduling enhancements
- Update language syntax and semantics (*nil behavior, logical operator parsing)
- Add Array#rfind and optimized Array#find
- Improve Binding API and implicit parameter access
- Extend Enumerator.produce with size keyword
- Enhance ArgumentError diagnostics with caller/callee context
- Add Fiber#raise(cause:)
- IO.select accepts Float::INFINITY timeout
- Improve Kernel#inspect extensibility
- Add Math.log1p and Math.expm1
- Promote Pathname and Set to core classes
- Extend Ractor API (join, value, lifecycle helpers)
- Fix endless and infinite Range behavior
- Define new top-level Ruby module
- Update Unicode to 17.0 and extend String strip methods
- Update bundled gems (RubyGems, Bundler, IRB, etc.)

Packaging changes:
- Include license files for all packages
- As ruby set moved into core, ruby-set is gone.
  ruby-setsubclasscompact was added to include the set subclass
  compatible layer

Changelog: ruby/ruby@v3_4_0...v4.0.0
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
@luizluca
Copy link
Contributor Author

I'll take a look in that missing libatomic... That's new for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant