mirror of
https://github.com/openwrt/packages.git
synced 2026-02-04 12:06:29 +08:00
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 - Added conditional libatomic dependency for libruby - YJIT and ZJIT are not built when cross-compiling (almost always for openwrt, even when archs matches). However, the Makefile is ready for both when upstream adds that feature. Config entries are marked as BROKEN for now. Changelog: https://github.com/ruby/ruby/compare/v3_4_0...v4.0.0 Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>