3 ms·
The fact that they had to make up a new term for the technique (a "meta-tracing JIT") should be a hint that what they're doing is somewhat novel/unusual. If yo
by oasisaimlessly 2y ago
The fact that they had to make up a new term for the technique (a "meta-tracing JIT") should be a hint that what they're doing is somewhat novel/unusual.
If you read the paper[1] linked in your quote, you'd see that it is not "just a tracing JIT"; the interpreter being run under the JIT has some special hooks that let it tell the JIT e.g. where the program counter is:
> Since the tracing JIT cannot know which parts of the language interpreter are the program counter, the author of the
language interpreter needs to mark the relevant variables of
the language interpreter with the help of a hint. The tracing interpreter will then effectively add the values of these
variables to the position key. This means that the loop will
only be considered to be closed if these variables that are
making up the program counter at the language interpreter
level are the same a second time. Loops found in this way
are, by definition, user loops.
This is vastly distinct from how Jython works.
[1]: https://foss.heptapod.net/pypy/extradoc/-/blob/branch/extradoc/talk/icooolps2009/bolz-tracing-jit-final.pdf?ref_type=heads https://foss.heptapod.net/pypy/extradoc/-/blob/branch/extrad...
- almostgotcaught 2y ago> The fact that they had to make up a new term for the technique (a "meta-tracing JIT") should be a hint that what they're doing is somewhat novel/unusual. you say this and then quote directly what the novelty is and so i ask you - does that piece warrant a whole new term? > This is vastly distinct from how Jython works. jython isn't doing anything - it's a python interpreter that runs on the jvm. my point was that that's the same thing: an interpreter for a language that itself is being jitted.
- oasisaimlessly 2y ago> does that piece warrant a whole new term? In my opinion: Yes, definitely! Without meta-tracing techniques, a JIT'd interpreter can only hope to be on par with a compiled interpreter, never significantly faster. It will never go beyond the limitations of an interpreter, because the JIT can't "see" the user code that the interpreter is running.