JEP 544: Ahead-of-Time Code Compilation
Skinney
86 points
30 comments
September 10, 2026
Related Discussions
Found 5 related stories in 86.9ms across 6,164 title embeddings via pgvector HNSW
- JIT Compiling Code in 5μs zX41ZdbW · 123 pts · August 23, 2026 · 58% similar
- Zig's Incremental Compilation Internals garyhtou · 218 pts · July 28, 2026 · 50% similar
- Fast and Hard Code lumpa · 17 pts · August 22, 2026 · 49% similar
- Fast and Hard Code tosh · 81 pts · August 23, 2026 · 49% similar
- JEP 540: Simple JSON API (Now in Incubator) theanonymousone · 95 pts · July 23, 2026 · 49% similar
Discussion Highlights (6 comments)
java-man
I hope at some point we'll get AOT-only mode (or compile to native) and maybe even cross-compilation.
cyberax
Excelsior JET did that 25 years ago: https://en.wikipedia.org/wiki/Excelsior_JET It's a shame that Sun/Oracle never partnered with them to bring native apps. This could have saved Java on the desktop.
SillyUsername
So we've gone full circle again? I suppose write once run anywhere is no longer a goal either. "It is not a goal to support all CPU architectures currently supported by HotSpot." This pretty much validates the point of view that VM design is now baggage, as a sandbox it has been flawed, for performance it's been prohibitive, and cross platform portability by virtue of being virtual, was just a convenient byproduct. AI now handles the portability, sandbox security hasn't changed (cf. docker still has sandbox problems, LLMs have sandbox problems, it's always an ongoing concern) and that just leaves Java, as always, chasing performance.
ledo9915
Data point from a small side project: I run user code in a Piston sandbox for a coding challenge site. A trivial Java program costs 2.5-3 s wall clock on a 4 vCPU box, almost all of it javac plus JVM startup. Go takes about 1.7 s for build plus run, and Swift running through the interpreter is at 0.4 s. Java is the reason I had to put a global rate limit on compiled languages at all. If AOT gets the JVM side down to a few hundred ms, that changes what a small box can serve.
cogman10
Leyden has been relying pretty heavily on training runs which I get, but man is that a pretty hard burden to setup. The tooling for doing these sorts of training runs doesn't really exist, you end up needing to do something more bespoke as part of your build pipeline if you want it there. That can be especially tricky with more complicated applications like the ones I maintain. I like what these can deliver, but dislike the effort needed to get it going.
treyd
What are the architectural differences between this and Android's ahead-of-time runtime?