Good point, but are there really "plenty" of Java implementations that lack an interpreter? There's Graal and Excelsior JET for AOT. Any others? Which implementations do JIT without any interpretation?
BEA J/Rockit was one of them.
Although not the right kind of coffee, Android during versions 5 and 6.
Also most JVMs with interpretation step, have command line options to set the interpretation threshold to zero, thus directly JIT compiling on load.
I might be wrong here, as I'm not so close to Java development. But a language implementing JIT, at least to me, is interpreted.
Could you please point an implementation detail where a JIT-capable engine doesn't include interpretation in its runtime?
In every case, thanks a lot for your feedback!
Well, from CS compiler theory point of view it is not.
For example in .NET, MSIL goes directly into a pipeline that produces native. You can easily validate that RyuJIT has no interpretation.
Or for example, watchOS applications packaged with bitcode, get JIT compiled at installation time.
Re:Deep Dive into PHP 8's JIT
by jashmatthews on Sunday August 30, 2020 @06:40AM
(#24322548)
V8 had only baseline compilation until much later https://v8.dev/blog/ignition-interpreter
It's not super exotic to do this.
Since 25 years, time to learn that implementations and languages are not the same.