| website | https://bernsteinbear.com |
| github | https://github.com/tekknolagi/ |
| bsky | https://bsky.app/profile/bernsteinbear.com |
| website | https://bernsteinbear.com |
| github | https://github.com/tekknolagi/ |
| bsky | https://bsky.app/profile/bernsteinbear.com |
Also forgot to mention some small fun with Z3
Short post today. New ZJIT contributor dak2 submitted a PR to fix an overflow bug in fixnum division in ZJIT. We did the division fine, but lied about the type of the result in the case of dividing FIXNUM_MIN by -1. You can see how this is special-cased in CRuby:
Inlining: the hard parts
Compilers, especially method just-in-time compilers, operate on one function at a time. It is a natural code unit size, especially for a dynamic language JIT: at a given point in time, what more information can you gather about other parts of a running, changing system?
I wrote a blog post about Lunacy, my Lua 5.1 interpreter + JIT using Lazy Basic Block Versioning.
New linear scan register allocator in ZJIT by @tenderlove !
https://railsatscale.com/2026-05-27-a-new-register-allocator-for-zjit/