logoalt Hacker News

JEP 544: Ahead-of-Time Code Compilation

93 pointsby Skinneyyesterday at 5:30 PM38 commentsview on HN

Comments

cogman10yesterday at 9:01 PM

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.

show 1 reply
harlan_pdxtoday at 8:34 AM

Startup time being the main benefit means simple training runs get you most of the value. Going for peak throughput is where the setup gets heavy.

treydyesterday at 9:54 PM

What are the architectural differences between this and Android's ahead-of-time runtime?

hn_submittoday at 7:14 AM

A little late, isn't it? .NET has had this for over 20 years (pre-compile).

cyberaxyesterday at 6:05 PM

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.

show 4 replies
stevefan1999today at 7:15 AM

Welcome to ngen and GAC, Java

show 1 reply
java-manyesterday at 5:45 PM

I hope at some point we'll get AOT-only mode (or compile to native) and maybe even cross-compilation.

show 4 replies
ledo9915yesterday at 6:46 PM

[dead]

SillyUsernameyesterday at 6:17 PM

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.

show 3 replies