💎 Ruby 3.3.0 And Rounding To Even That Rounds To Odd Part 1
5 min readJun 27, 2023
I was browsing today through changelogs of major programming lamguages, frameworks and libraries, as I usually do.
So far I’ve learned there is nothing new in some. Eventually I stumbled upon Ruby changelogs.
In May a preview of Ruby 3.3.0 was released with some performance improvements.
Thw documentation is pretty scarse though:
- YJIT
- Significant performance improvements over 3.2
- Splat and rest arguments support has been improved.
- Registers are allocated for stack operations of the virtual machine.
- More calls with optional arguments are compiled.
- Integer#!=, String#!=, Kernel#block_given?, Kernel#is_a?, Kernel#instance_of?, Module#=== are specially optimized.
- Instance variables no longer exit to the interpreter with megamorphic Object Shapes.
- Metadata for compiled code uses a lot less memory.
- Improved code generation on ARM64
There is lack of links or details of these so I headed to commit history and stumbled upon something interesting that was done in December 2022.