Benoit Daloze reposted
I also wrote a post for work with an intentionally rage bait title. Hello compiler friends I'm sorry in advance railsatscale.com/2026-10-21-r...
Benoit Daloze
@eregon.me
Expert in dynamic language runtimes and JIT compilation, TruffleRuby lead, Rubyist. https://eregon.me
506 followers179 following343 posts
Benoit Daloze reposted
I also wrote a post for work with an intentionally rage bait title. Hello compiler friends I'm sorry in advance railsatscale.com/2026-10-21-r...
Benoit Daloze reposted
As usual @github.com is down (can't post comments anywhere) but www.githubstatus.com denies it, and so does downforeveryoneorjustme.com/github. The real-time status is updog.ai/status/github by Datadog :)
To be accurate, updog.ai/status/github detected the issue at out at 17:05, downforeveryoneorjustme.com at 17:10 and githubstatus.com at 17:14.
« 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.
Here are the slides for my talk "Running Native Extensions and Ruby Code in Parallel Threads" at #EuRuKo 2026: eregon.me/blog/assets/...
TruffleRuby runs Doom at, 🥁, 662 FPS! From the talk of @khasinski.bsky.social at #EuRuKo
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
Benoit Daloze reposted
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/
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 # => []
Benoit Daloze reposted
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!
Escaping the Giant Switch: a deep dive into optimizing bytecode interpreters: medium.com/graalvm/esca...
Benoit Daloze reposted
Escaping the Giant Switch: a deep dive into optimizing bytecode interpreters: medium.com/graalvm/esca...
Benoit Daloze reposted
A history of Ruby's Hash tables, and how we can make them use less memory: byroot.github.io/ruby/perform...
Benoit Daloze reposted
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...
Excited to speak at @euruko.org this year, see you in Brno in September! 2026.euruko.org
Just shipped my first release of the datadog gem! github.com/DataDog/dd-t...
concurrent-ruby 1.3.7 is released and fixes 3 security vulnerabilities: github.com/ruby-concurr...
Benoit Daloze reposted
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/...
Benoit Daloze reposted
Benoit Daloze reposted
Inlining: the hard parts bernsteinbear.com/blog/inlinin...
You know it's going well when typing 'github' in my browser has www.githubstatus.com as the first suggestion ...
Benoit Daloze reposted
New linear scan register allocator in ZJIT by @tenderlove.dev ! railsatscale.com/2026-05-27-a...
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/...
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.
More details in github.com/DataDog/dd-t... and how it can cause CI to fail in a very subtle way on 3.3.11 but not on 3.3.10 or any other version!
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.
Benoit Daloze reposted
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)
Maybe I should do another blog like eregon.me/blog/2021/06... but the TLDR is: use mise, the other Ruby Switchers don't come close (chruby sets GEM_HOME which causes various issues). In terms of Ruby installers, ruby-build is still the best and is used by both mise and rbenv.
Matz made a AOT compiler for a subset of Ruby: github.com/matz/spinel Great speedups but does not support metaprogramming
TruffleRuby is running Doom at 150 FPS! In @khasinski.bsky.social #RubyKaigi talk "From C to Ruby: Porting Doom"
Great keynote by @headius.bsky.social at #RubyKaigi about JRuby this morning, I enjoyed it
Benoit Daloze reposted
Benoit Daloze reposted
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...
Benoit Daloze reposted
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...