#InvokeDynamic
InvokeDynamic is JRuby's switchboard. Dynamic calls get compiled to raw assembly, all inlined: Ruby into Java, Java into Ruby. Pure JVM magic. #JRuby #JVM #InvokeDynamic
October 10, 2026 at 10:28 PM
New blog post landed: tvcutsem.github.io/raftviz-post
RaftViz: visualizing Raft for the classroom · Invokedynamic | Tom Van Cutsem's blog
Tom Van Cutsem's blog
tvcutsem.github.io
September 2, 2026 at 10:33 AM
Full write-up, including some take-home lessons for educators: tvcutsem.github.io/raftviz-post
RaftViz: visualizing Raft for the classroom · Invokedynamic | Tom Van Cutsem's blog
Tom Van Cutsem's blog
tvcutsem.github.io
September 2, 2026 at 10:33 AM
The other half of the story: I wrote zero of the ~6,000 lines of code. All agent-generated (mostly Claude Opus), spec-driven, tests from phase one, Playwright-based end-to-end smoke tests promoted out of the agent's own visual checks.
RaftViz: visualizing Raft for the classroom · Invokedynamic | Tom Van Cutsem's blog
Tom Van Cutsem's blog
tvcutsem.github.io
September 2, 2026 at 10:33 AM
I mean fully compiling Ruby to JVM bytecode. I don't believe that performance would be bad enough to outweigh the benefits. JRuby already can do that now but Native Image can't handle invokedynamic.
November 14, 2025 at 7:59 PM
It is nice to be back in San Francisco proper. Probably been 6 years since I was here last, with a bunch of visits to San Jose area in between. I'll fly out for a talk any time. JVM internals, invokedynamic, JRuby, profiling, optimizing, whatever.
June 5, 2025 at 6:34 AM
Slides from my FOSDEM 2025 Free Java talk "Invokedynamic in Practice with JRuby" are now posted! The video may take a bit longer because the FOSDEM system has Java and another room mixed up, but I'll post it when they do.
InvokeDynamic in Practice with JRuby
A tour of invokedynamic use in JRuby, with challenges and future plans. Delivered at FOSDEM 2025 in the Free Java Room on February 1, 2025.
buff.ly
February 5, 2025 at 2:20 PM
I'm rocking a cane and a medical boot for a recent foot injury but that's not going to stop me from getting to FOSDEM! I'll do a quick presentation on JRuby's use of invokedynamic and do some networking with FOSS and Java friends. See you there?
January 29, 2025 at 10:20 PM
First tough business decision of 2024: how to fund travel to Brussels for FOSDEM. 😟 I'm looking forward to speaking about deep invokedynamic internals in JRuby (with plenty of x86 and Arm ASM output) but cash is very limited at this stage. Help is needed! 🙏🥺
January 8, 2025 at 2:56 AM
A benchmark of "super" invocation on JRuby performs 60-70% better with just a trivial cache in the call site (currently almost entirely uncached). Will be many times faster with proper invokedynamic + inlining. Just a taste of the perf improvements coming in JRuby 10!
November 2, 2024 at 6:03 PM
I (finally) modernized my personal blog: tvcutsem.github.io This was done literally overnight with Claude's help over a cup of evening tea (Keemun Congou - fwiw) and morning coffee (long black). Joking aside: I am impressed - either saved me a full week of work or an expensive web designer bill
Invokedynamic | Tom Van Cutsem's blog
Tom Van Cutsem's blog
tvcutsem.github.io
July 15, 2026 at 6:47 AM
"AI was built in Python. But the code AI agents write will increasingly be TypeScript." That's the tagline of my latest post: tvcutsem.github.io/ai-python-ty...
Invokedynamic | Tom Van Cutsem's blog
tvcutsem.github.io
April 2, 2026 at 6:59 AM
Just published a short write-up of a fun experiment: I vibe-coded a Boids simulation with AI copilots in about 30 minutes.

I built it for CS outreach, then documented what worked, what surprised me, and what I got wrong.

tvcutsem.github.io/vibe-coding-...
Invokedynamic | Tom Van Cutsem's blog
tvcutsem.github.io
March 19, 2026 at 12:09 PM
Weihong will present our paper on this new protocol at IEEE #ICDCS 2025 in Glasgow next Monday.

For a high-level overview of our work, read my blog:
👉 tvcutsem.github.io/2025/07/parp...

#blockchain #web3 #research
Invokedynamic | Tom Van Cutsem's blog
tvcutsem.github.io
July 15, 2025 at 11:57 AM
To address this, we designed a new RPC protocol that enables interaction with permissionless blockchains in a way that remains truly depermissioned — without sacrificing data integrity or accountability, two issues that often arise when relying on anonymous public RPC endpoints.
Invokedynamic | Tom Van Cutsem's blog
tvcutsem.github.io
July 15, 2025 at 11:57 AM
One of our key findings is that, despite the “permissionless” nature of most major blockchain networks, access to them is often highly permissioned in practice. Due to both technical and economic constraints, access is typically funneled through centralized gatekeepers.
Invokedynamic | Tom Van Cutsem's blog
tvcutsem.github.io
July 15, 2025 at 11:57 AM
🔬 Research update: Depermissioning Web3’s Serving Layer

Over the past few months, my PhD student Weihong Wang and I have been exploring challenges in Web3’s “serving layer” — the infrastructure responsible for making blockchain data accessible to decentralized applications (dapps).
Invokedynamic | Tom Van Cutsem's blog
tvcutsem.github.io
July 15, 2025 at 11:57 AM
Só alguns ajustes na explicação: pode-se usar == para comparação, e o operador vai comparar baseado em _valor_ e não em _identidade_ . Da mesma forma que atualmente é no Record, que é também "ValueBased", tanto que seu hashCode(), equals() e toString() são invokedynamic @jeffquesado.ulivre.dev
December 14, 2024 at 4:32 PM
Uma coisa bem interessante que pode usar o Github pra verificar, é olhar quando libs/frameworks e ports tiveram seu ápice. Entra no repo e bota "/graphs/code-frequency" muita coisa em Java tem picos ali pós Java 7 (invokedynamic), com queda pós Java 8 (Streams, Lambdas, Function, Optional, etc).
December 4, 2024 at 8:40 PM
It was the kickstart of the modern Java renaissance for sure. I was talking in other thread, that invokedynamic came as a feature for dynamic languages in the JVM, but enabled Lambda, that together with Stream and Optional began the demise of those same dynamic languages that needed the feature...
November 15, 2024 at 9:42 PM
Aqui uma palestra de 11 anos atrás do grande @briangoetz.bsky.social justamente sobre Lambda, MethodHandle e invokedynamic: www.youtube.com/watch?v=MLks... e toca justamente naquela parte que conversamos sobre facilidades para multicore, está no início da apresentação dele. @jeffquesado.ulivre.dev
Lambdas in Java: A Peek under the Hood • Brian Goetz • GOTO 2013
YouTube video by GOTO Conferences
www.youtube.com
November 15, 2024 at 6:33 PM
From slow reflection to the optimized MethodHandle and invokedynamic—let's explore the evolution of dynamism on the JVM and dive into how MethodHandle works under the hood, along with the roles played by CallSite and invokedynamic.

pvs-studio.com/en/blog/post...

#java #jvm #programming
Method Handles faster reflection (sometimes)
How does Java support dynamic calls? From slow reflection to the optimized MethodHandle and invokedynamic—let′s explore the evolution of dynamism on the JVM and dive into how MethodHandle works under....
pvs-studio.com
July 25, 2025 at 2:13 PM
こんなJEPあったのか
2018年から進捗がないので、もうやらないんだろうな。
今だとClassfile APIがあるし...

JEP 303: Intrinsics for the LDC and INVOKEDYNAMIC Instructions
openjdk.org/jeps/303
JEP 303: Intrinsics for the LDC and INVOKEDYNAMIC Instructions
openjdk.org
December 26, 2025 at 12:56 PM
My experience with Kotlin lambda compilation - anonymous classes vs. invokedynamic: A 12% speedup in a real-world use case.

How invokedynamic makes lambdas fast: www.ej-technologies.com/blog/2024/01...
January 10, 2024 at 7:50 PM
In einer guten Stunde ist es soweit. InvokeDynamic auf dem #JavaLand
meine.doag.org/events/javal...
meine.doag.org
April 2, 2025 at 6:25 AM