3 ms·
To be pedantic, this is an in-memory AOT compiler and not a JIT compiler. As an example, here's a JIT compiler I made for BrainFuck that defers the compilation
by teaearlgraycold 5y ago
To be pedantic, this is an in-memory AOT compiler and not a JIT compiler.
As an example, here's a JIT compiler I made for BrainFuck that defers the compilation of some loops: https://github.com/danthedaniel/BF-JIT/blob/master/src/runnable/jit_target.rs#L239 https://github.com/danthedaniel/BF-JIT/blob/master/src/runna...
- ufo 5y agoTo be a bit less pedantic, this is an area that is kind of ambiguous... From one point of view it's still fair to call this "just in time". I wish there was terminology to differentiate between kind of "on demand AOT compilation" and jits that do jitty stuff that can't be done ahead of time.
- adgjlsfhk1 5y agoJulia uses the term just ahead of time for this, which I think fits well.
- duped 5y agoThat strikes me as just-in-time optimization less so than ahead-of-time. If the code isn't compiled until it's executed, "ahead of time" seems extremely confusing
- ufo 5y agoArguably the term "ahead of time" also suffers from the same problem. Among compiler people, "ahead of time" vs "just in time" sometimes has to do with whether the compiler uses run-time information when compiling. But the names don't reflect that, they talk about when the compilation happens.
- chrisseaton 5y ago> I wish there was terminology to differentiate between kind of "on demand AOT compilation" and jits that do jitty stuff that can't be done ahead of time. Some people differentiate between dynamic JIT compilation and static JIT compilation.
- jhgb 5y ago> kind of "on demand AOT compilation" I assume you mean something like Common Lisp does with COMPILE? (http://clhs.lisp.se/Body/f_cmp.htm http://clhs.lisp.se/Body/f_cmp.htm) That's just called "compilation" in some circles.