6 ms·
Uhm, Common Lisp, where JIT is not only available but is also manageable: the programmer can decide what deserves to be compiled and what does not. Besides run
by glum64 26d ago
Uhm, Common Lisp, where JIT is not only available but is also manageable: the programmer can decide what deserves to be compiled and what does not.
Besides run time, JIT is available also when the code is compiled or loaded for execution (i.e., do you have a compilation or loading speed-up in mind? no problem, you can also compile that speed-up into native machine code, and so ad infinitum...).
- clbrmbr 26d agois an xtensa lx7 (esp32-s3) target available that does not use llvm?
- glum64 26d agoI am told there is http://www.ulisp.com/show?2AJI http://www.ulisp.com/show?2AJI Never used it myself; I cannot attest to the completeness of the implementation.
- fweimer 26d agoNot in typical builds of SBCL: all code is compiled before evaluation.
- glum64 26d agoIt depends on the implementation. CLISP compiles when it is told to.
- pfdietz 26d agoLast I checked, CLISP compiles to byte code. Did they add a JITter for the byte code?
- malisper 26d agoEval would count as JIT compilation though[0] [0] https://www.sbcl.org/manual/#compiler-only-implementation https://www.sbcl.org/manual/#compiler-only-implementation
- pfdietz 26d agoYou can turn that off by setting or binding sb-ext:*evaluator-mode* to :interpret. Also, on my machine, compiling the identity lambda form takes about 200 usec with (optimize (compilation-speed 3) (debug 0)). SBCL could use a faster JIT mode, perhaps at compilation-speed 3/speed 0. Perhaps there are some other internal special variables that could be tweaked to reduce compile time.
- fweimer 26d agoAre you sure this is actually makes a difference in your build? Mine doesn't have the SB-INTERPRETER package, so I doubt binding the variable has an effect.
- pfdietz 26d agoWhen calling EVAL it can be much faster to use the interpreter than to go through the compiler. This has bitten me in the past. A faster compiler would get around that. One of the competing open Common Lisp implementations, CCL, has a much faster compiler (albeit one that produces worse code). This can be useful in development.