💎 Ruby 3.3.0 And Rounding To Even That Rounds To Odd Part 1

Tom Smykowski
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.

--

--

Tom Smykowski

Software Engineer & Tech Editor. Top 2% on StackOverflow, 3mil views on Quora. Won Shattered Pixel Dungeon.