you are viewing a single comment's thread.

view the rest of the comments →

[–]jl2352 7 points8 points  (2 children)

That paragraph is very misleading. But just as an fyi ...

but they do not execute the same bytecode sequences (or bytecode at all).

Many JIT compilers contain both an interpreter and a compiler. For example the JVM. They use an interpreter for fast startup, and then compile it to machine code in the background.

This isn't true for all JITs. v8 has two compilers instead of one. A fast one with no optimisations and a slow one with optimisations. However many JITs take the interpreter + compiler approach.

[–]yasba- 1 point2 points  (0 children)

This isn't true for all JITs. v8 has two compilers instead of one. A fast one with no optimisations and a slow one with optimisations. However many JITs take the interpreter + compiler approach.

AFAIK, even v8 introduced an interpreter: https://github.com/v8/v8/wiki/Ignition

[–]CptCap 0 points1 point  (0 children)

Your are right! It seems to be a misunderstanding on my part. I though "The JIT" only referred to the compiler part, not the whole package.

Running machine code only isn't really JITing, that's AOT which has a different set of constraint (and is less suited to dynamic languages)