News for hackers. Stuff that matters.

tekknolagi

Re:A Survey of Inlining Heuristics on Tuesday June 09, 2026 @03:07AM (#48457612)
Please feel free to open a PR. I'm a bit AFK
Re:The acyclic e-graph: Cranelift's mid-end optimizer on Tuesday April 14, 2026 @05:40PM (#47771863)
Damn. I wish I thought of that.
Re:A Fuzzer for the Toy Optimizer on Wednesday March 18, 2026 @05:23PM (#47431601)
I will add "compiler" before "optimizer" and link to the toy optimizer series
Re:Type-based alias analysis in the Toy Optimizer on Thursday February 19, 2026 @09:43PM (#47083006)
Oh hi! Thanks for posting. As I wrote this I wasn't sure if it was enough of a post. Let me know if you wanted to hear about anything else that seemed missing.
Re:SectorC: A C Compiler in 512 bytes on Saturday February 07, 2026 @05:20PM (#46928762)
Re:Writing a Lisp JIT Interpreter with GraalVM Truffle on Tuesday January 27, 2026 @12:57AM (#46776051)
As I said on Lobsters as well, this is a superb overview.
Re:Ask HN: Could you share your personal website here? on Thursday January 15, 2026 @12:27AM (#46628423)
https://bernsteinbear.com

I write about programming languages and compilers

Re:T-Ruby is Ruby with syntax for types on Saturday December 27, 2025 @10:11AM (#46402393)
YJIT and ZJIT don't use method annotations.
Re:ZJIT is now available in Ruby 4.0 on Friday December 26, 2025 @07:59PM (#46398108)
Yes; see the first ZJIT blog post. https://railsatscale.com/2025-05-14-merge-zjit/
Re:ZJIT is now available in Ruby 4.0 on Friday December 26, 2025 @03:33PM (#46395934)
In that scenario, what would you hope to get out of the LBBV?
Re:ZJIT is now available in Ruby 4.0 on Friday December 26, 2025 @03:30PM (#46395904)
If all you're doing is summing small integers---frequently the case---it's much preferable to optimize that to be fast and then skip the very dynamic method lookup (the slower, less common case)
Re:ZJIT is now available in Ruby 4.0 on Friday December 26, 2025 @02:35PM (#46395366)
YJIT is not deprecated. That word has a specific meaning in Ruby. You can continue to use YJIT.

With any luck, this performance in the next year or two will be enough to make it a happy change. "Damn, free money" etc

Re:ZJIT is now available in Ruby 4.0 on Friday December 26, 2025 @01:58PM (#46395055)
Earnestly: why are you annoyed? I tried to make it clear that you don't have to make any changes. If you want, you can try ZJIT (which should not be anything other than a one character change), but you don't have to.
Re:ZJIT is now available in Ruby 4.0 on Friday December 26, 2025 @01:55PM (#46395017)
In this case, we used to abort (i.e. abort(); intentionally crash the entire process) but now we jump into the interpreter to handle the dynamic behavior.

If someone writes dynamic ruby code to add two objects, it should succeed in both integer and string cases. The JIT just wants to optimize whatever the common case is.

Re:Introduction to Software Development Tooling (2024) on Wednesday December 17, 2025 @11:47AM (#46301908)
It's a "teach people how to teach themselves to fish" class
Re:Introduction to Software Development Tooling (2024) on Wednesday December 17, 2025 @11:46AM (#46301894)
You'll never guess what we talk about later on in the unit. Spoiler: exactly that!

It notionally focuses on make but the concepts apply much more broadly than the one specific tool

Re:Introduction to Software Development Tooling (2024) on Tuesday December 16, 2025 @10:47PM (#46298010)
The schedule is generated from a Python script, but doesn't involve YAML
Re:MIT Missing Semester 2026 on Monday December 15, 2025 @10:36AM (#46275845)
If you're interested, see also https://bernsteinbear.com/isdt/ by me and Tom
Re:Abstract Interpretation in the Toy Optimizer on Saturday December 06, 2025 @05:11PM (#46177020)
This kind of compiler/runtime feedback about source code is really interesting and (imo) under-studied. Especially when you take into account something like PGO data.
Re:The Easiest Way to Build a Type Checker on Sunday November 30, 2025 @11:54AM (#46098265)
No, HM is unification based and requires no annotations at all.

Older »