Sign in

Benoit Daloze

@eregon.me
505 followers 178 following 340 posts

Expert in dynamic language runtimes and JIT compilation, TruffleRuby lead, Rubyist. eregon.me

PostsRepliesMedia
Benoit Daloze @eregon.me · 21/09/2026
« If your question is "which Ruby runs my Rails app fastest without changing a line of it," the answer here is TruffleRuby, and it isn't close. » From intertwingly.net/blog/2026/09... by @intertwingly.net. Context: Puma with 1 process and 5 threads serving a simple Rails blog app.
intertwingly.net
Two JITs, Opposite Signs
073
Benoit Daloze @eregon.me · 19/09/2026
I had a great time at #EuRuKo 2026 in Brno, an amazing single-track program, many new #RubyFriends, easy to get to and no jet lag, very walkable city, everything incl. food & even karaoke available at the venue. I wanted more karaoke so I organized a second one and it was a lot of fun!
160
Benoit Daloze @eregon.me · 17/09/2026
Here are the slides for my talk "Running Native Extensions and Ruby Code in Parallel Threads" at #EuRuKo 2026: eregon.me/blog/assets/...
074
Benoit Daloze @eregon.me · 17/09/2026
TruffleRuby runs Doom at, 🥁, 662 FPS! From the talk of @khasinski.bsky.social at #EuRuKo
1122
Benoit Daloze @eregon.me · 17/09/2026
"A language that is kind to humans is kind to AI too" Matz at #EuRuKo
050
Benoit Daloze @eregon.me · 17/09/2026
So Matz is saying you can make Campfire (a Rails app) 5 times faster and use a twelvth of the memory by using github.com/rubys/roundh... + github.com/matz/spinel
1122
Benoit Daloze @eregon.me · 17/09/2026
So part of the reason for Spinel (AOT compiler from Ruby to C) is lower memory usage, because RAM got expensive, and of course performance #EuRuKo
041
Benoit Daloze @eregon.me · 17/09/2026
"When I created Ruby 33 years ago" Matz at #EuRuKo
000
Reposted by Benoit Daloze
GraalVM @graalvm.org · 25/08/2026
GraalVM 25.3 is here!🎉 It brings performance and security improvements, along with updated language runtimes 🚀 Learn more: medium.com/graalvm/graa... Download: www.graalvm.org/downloads/
medium.com
GraalVM 25.3 is here! 🎉
Today, we’re pleased to announce the release of GraalVM 25.3!
0215
Benoit Daloze @eregon.me · 18/08/2026
For a while I searched a way to reliably GC an object on CRuby, this is hard given CRuby uses a conservative GC and might keep it alive via the native stack or some register. This seems reliable: m = ObjectSpace::WeakMap.new Thread.new { m[Object.new] = Object.new }.join GC.start p m.keys # => []
110
Reposted by Benoit Daloze
Christian Humer @chumer.dev · 13/08/2026
This is how we made bytecode interpreters in Java competitive with state of the art assembly tuned C interpreters. They partially evaluate like Truffle interpreters at the same time! Integrated in GraalPy, GraalWasm and Crema! Soon in GraalJS! Great work by Yudi Zheng!
152
Reposted by Benoit Daloze
GraalVM @graalvm.org · 13/08/2026
Escaping the Giant Switch: a deep dive into optimizing bytecode interpreters: medium.com/graalvm/esca...
medium.com
Escaping the Giant Switch
a true story about bytecode interpreters
0143
Reposted by Benoit Daloze
Jean Boussier @byroot.bsky.social · 06/08/2026
A history of Ruby's Hash tables, and how we can make them use less memory: byroot.github.io/ruby/perform...
byroot.github.io
Shrinking Ruby Hashes
As you may know, one area of Ruby performance optimization that particularly interests me is memory usage. Given that most Ruby deployments rely on fork, improving Copy-on-Write performance is general...
1329
Reposted by Benoit Daloze
Jean Boussier @byroot.bsky.social · 26/07/2026
While it has been 18 months since I blogged about it, the json gem performance has improved quite significantly since, so now is a good time to add a few more parts to my JSON serie: byroot.github.io/ruby/json/20...
byroot.github.io
Optimizing Ruby’s JSON, Part 8
It has now been about 18 months since I concluded my post series on optimising Ruby’s json.
0233
Benoit Daloze @eregon.me · 24/07/2026
Excited to speak at @euruko.org this year, see you in Brno in September! 2026.euruko.org
2026.euruko.org
EURUKO 2026 — European Ruby Conference · Brno
The annual European Ruby Conference. Two days of talks, community, and hallway hacking in Brno, Czech Republic — September 17–18, 2026.
060
Benoit Daloze @eregon.me · 16/07/2026
Just shipped my first release of the datadog gem! github.com/DataDog/dd-t...
github.com
Release 2.38.0 · DataDog/dd-trace-rb
Added Dynamic Instrumentation: Log probes now support capture expressions as an alternative to capturing the full local/argument scope (#5845) SSI: Add support for Ruby 4.0 runtime (#5981) SSI: Ad...
061
Benoit Daloze @eregon.me · 16/06/2026
concurrent-ruby 1.3.7 is released and fixes 3 security vulnerabilities: github.com/ruby-concurr...
github.com
Release v1.3.7 · ruby-concurrency/concurrent-ruby
There are 3 security fixes in this release, so updating is recommended. These security vulnerabilities are not very likely to be hit in practice and have a corresponding Low severity score. What's...
0114
Reposted by Benoit Daloze
The Verge @theverge.com · 12/06/2026
While his mountain of horrible personal conduct could fill multiple books, one fact in particular stands out: A year ago, Musk’s actions directly led to the deaths of hundreds of thousands of people. He did it knowingly. And, worse — gleefully. Read more: www.theverge.com/tech/949259/...
Verge headline: The world's first trillionaire is a killer
by TC Sottek

Image of Elon Musk doing a "fascist salute" in the form of an oil painting on a wall
28589653758
Reposted by Benoit Daloze
Jean Boussier @byroot.bsky.social · 05/06/2026
I realized it has been ~1.5 years since I concluded my series of post on JSON optimization. So I got curious how much faster it became since then. 2.7.2 was the last version before I took over maintainership. 2.9.0 was the version I released at the end of the blog series.
3498
Reposted by Benoit Daloze
Max @bernsteinbear.com · 03/06/2026
Inlining: the hard parts bernsteinbear.com/blog/inlinin...
bernsteinbear.com
A survey of inlining heuristics
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 infor...
0184
Benoit Daloze @eregon.me · 01/06/2026
You know it's going well when typing 'github' in my browser has www.githubstatus.com as the first suggestion ...
020
Reposted by Benoit Daloze
Max @bernsteinbear.com · 27/05/2026
New linear scan register allocator in ZJIT by @tenderlove.dev ! railsatscale.com/2026-05-27-a...
072
Benoit Daloze @eregon.me · 14/05/2026
What if Ruby 4.0 features could be implemented in pure Ruby? With TruffleRuby, that’s possible: 73% of the core library is written in Ruby itself. We currently have 10 issues tagged [easy, pure Ruby] waiting for contributors: github.com/truffleruby/...
github.com
Ruby 4.0 support · Issue #4231 · truffleruby/truffleruby
Any help is appreciated whether it is: implementing one of the Ruby 4.0 changes in TruffleRuby, and ensuring it is tested in specs or MRI tests and otherwise add specs. If adding specs please leave...
042
Benoit Daloze @eregon.me · 08/05/2026
I installed the Codex extension in VSCode, the result is it corrupts (!) my git repository when using VSCode as the git editor (EDITOR='code -w'). Filed github.com/openai/codex..., was a pain to figure it out.
010
Benoit Daloze @eregon.me · 05/05/2026
New take about Ruby C extensions: append_cflags "-Wall" or "-Wextra" with -Werror is a bug waiting to explode as it overrides -Wno-$category flags from RbConfig by being added at the end. It's unnecessary too because for Ruby 1.9+ RbConfig::CONFIG["warnflags"] starts with "-Wall -Wextra"
110
Benoit Daloze @eregon.me · 28/04/2026
Not only @github.com search is broken for PRs for 24+ hours but also just the list of PRs misses some PRs entirely. I have to resort to email to even find my own PRs now.
020
Reposted by Benoit Daloze
Konstantin Haase @rkh.cool · 27/04/2026
Mustermann 4.0 released! sinatrarb.com/2026/04/27/m...
Performance comparison of various Rack-based routers.Performance comparison of Sinatra with Mustermann 3.1 vs Sinatra with Mustermann 4.0
472
Benoit Daloze @eregon.me · 27/04/2026
I have been trying mise (from @jdx.dev) and rbenv recently, the winner is clear: $ time ruby -e0 mise: 51ms rbenv: 152ms 100ms overhead is way too much (due to shims). Additionally: * rbenv breaks `which` which causes tricky problems. * mise can install precompiled Rubies (much faster)
293
Benoit Daloze @eregon.me · 24/04/2026
Matz made a AOT compiler for a subset of Ruby: github.com/matz/spinel Great speedups but does not support metaprogramming
github.com
GitHub - matz/spinel
Contribute to matz/spinel development by creating an account on GitHub.
050
Benoit Daloze @eregon.me · 23/04/2026
My talk tomorrow is at 14:50 in the #RubyKaigi Large Hall and it now includes 2 demos running at speeds you have never seen before!
180
Benoit Daloze @eregon.me · 23/04/2026
TruffleRuby is running Doom at 150 FPS! In @khasinski.bsky.social #RubyKaigi talk "From C to Ruby: Porting Doom"
152
Benoit Daloze @eregon.me · 23/04/2026
Great keynote by @headius.bsky.social at #RubyKaigi about JRuby this morning, I enjoyed it
120
Benoit Daloze @eregon.me · 20/04/2026
ZRH 🛫 MUC ✈️ HND 🛬 HKD, #RubyKaigi I am on the way. I'm wearing a T-shirt of RubyKaigi 2016, time flies!
2100
Reposted by Benoit Daloze
Laurence Tratt @ltratt.bsky.social · 15/04/2026
C interpreters underlie many of our most widely used language implementations -- but they're slow. Wouldn't it be great if we could turn them into JIT compiling VMs? This video shows what happens when we do just that to the normal Lua VM (first) and "yklua" (Lua w/JIT, second).
13514
Reposted by Benoit Daloze
TruffleRuby @truffleruby.dev · 14/04/2026
TruffleRuby 34 is here 🚀 Full Ruby 3.4 compatibility, up to 23% faster parsing, and a new Prism-based Ripper with 20x speedups! More details in the blog post: truffleruby.dev/blog/truffle...
truffleruby.dev
TruffleRuby 34 is Released
TruffleRuby 34 is here, bringing full Ruby 3.4 compatibility, major parsing optimizations (up to 23% faster parsing), and a new Prism-based Ripper implementation with 20x to 40x speedups.
096
Reposted by Benoit Daloze
Tobias Pfeiffer @pragtob.bsky.social · 13/04/2026
More than 8 months later, I finally managed to put some thoughts about the passing of my dear friend Piotr into a post. Grief is tough. Remembering Piotr @chastell.net Szotkowski pragtob.wordpress.com/2026/04/12/r...
pragtob.wordpress.com
Remembering Piotr “chastell” Szotkowski
Most of this blog post was written 8 months ago, between his passing and his funeral. I didn’t find the strength to get back to it for a long, long time, but after talking and reminiscing wit…
2165
Reposted by Benoit Daloze
GraalVM @graalvm.org · 02/04/2026
trivago runs a GraphQL gateway handling 9,000+ req/s per subgraph. After migrating to GraalVM Native Image, they: — eliminated warm-up — reduced replicas from 43 to 12 — cut CPU usage Learn more about their migration process and recommendations: medium.com/graalvm/insi...
medium.com
Inside trivago’s GraalVM Migration: Native Image for GraphQL at Scale
Introduction
0116
Benoit Daloze @eregon.me · 30/03/2026
I'm starting at Datadog today!
2201
Reposted by Benoit Daloze
Max Berger @maxberger.bsky.social · 26/03/2026
X is a fascist propaganda network by design. It‘s long past time to boycott X. It’s unfathomable no one has even tried to organize a boycott.
541238290
Benoit Daloze @eregon.me · 26/03/2026
Just received a Most Notable Paper Award for our paper “Cross-language compiler benchmarking: are we fast yet?” published at the Dynamic Languages Symposium 2016. Congratulations to my co-authors @stefan-marr.de and Hanspeter Mössenböck!
2163
Reposted by Benoit Daloze
Fabio Niephaus @fniephaus.com · 25/03/2026
GraalWasm just got faster! 🔥 The new threaded interpreter delivers significantly better interpreter performance. In interpreter benchmarks, total execution time is reduced by 5-40%! Details: github.com/oracle/graal...
github.com
[GR-69570] Wasm threaded interpreter. by graalvmbot · Pull Request #13181 · oracle/graal
This PR updates the Wasm interpreter to incorporate the recently introduced bytecode handler design (#12825). A detailed documentation of this design can be found at https://github.com/oracle/graal...
1124
Reposted by Benoit Daloze
Yusuke Endoh @mametter.bsky.social · 05/03/2026
I benchmarked which language works best with Claude Code. Ruby, Python, and JavaScript came out cheapest, fastest, and most stable! See my article in detail: dev.to/mame/which-p...
22611
Reposted by Benoit Daloze
Florentin Rochet @frochet.bsky.social · 02/02/2026
New research paper out: **Contiguous Zero-Copy for Encrypted Transport Protocols**. This paper explains we may have got the integration of symmetric cryptography into networking protocols wrong for efficiency. But we can fix it simply by ... reversing everything. A thread dl.acm.org/doi/epdf/10....
dl.acm.org
Contiguous Zero-Copy for Encrypted Transport Protocols
132
Reposted by Benoit Daloze
TruffleRuby @truffleruby.dev · 21/01/2026
We’re pleased to announce that TruffleRuby 33.0.1 is now available. This is a bug fix release that notably adds support for structured event reporting in Rails 8.1 (and any other usage of Fiber storage) along with other compatibility work. More details at: github.com/truffleruby/...
github.com
Release TruffleRuby 33.0.1 · truffleruby/truffleruby
TruffleRuby is a high-performance implementation of the Ruby programming language. TruffleRuby aims to be fully compatible with the standard implementation of Ruby, MRI. More information is availab...
041
Reposted by Benoit Daloze
Fable Tales @fable-computers.bsky.social · 17/01/2026
Rubyfmt 0.12 is out! This release is a big deal. We entirely removed ripper and replaced it with Prism. This means Rubyfmt no longer needs to compile against Ruby at all. This work wouldn't have been possible without the hard work of Reese, and as a bonus treat we now have: rubyfmt.run
rubyfmt.run
rubyfmt playground
1154
Benoit Daloze @eregon.me · 17/01/2026
Just wanted to share that @rubyevents.org looks really good, I recently found the page about TruffleRuby-related talks: www.rubyevents.org/topics/truff... and of course my own profile page: www.rubyevents.org/profiles/ere...
rubyevents.org
TruffleRuby
1104
Benoit Daloze @eregon.me · 14/01/2026
Joined the #Ruby dev meeting this morning at 7:30am local time, lasted until 10am, eating some ramen now to recover 😅
000
Reposted by Benoit Daloze
Stefan Marr @stefan-marr.de · 13/01/2026
Very cool research made it into TruffleRuby!
052
Reposted by Benoit Daloze
Kevin Menard @nirvdrum.bsky.social · 13/01/2026
This is a huge release for TruffleRuby. It’s our first under our new org. If you’ve been hesitant about contributing because of the CLA, please note that we no longer have one. We can also release more frequently so please report bugs or open PRs.
0115