I think a lot of this is confusion between online versus batch compilation? Most of us have only ever seen/used batch compilation. To that end, many people assume that JIT in an interpreter is how online compilation is done.
I probably am more guilty of that than I should be.
> online compilation
? incremental compilation
I confess I wasn't positive what the correct term would be. "Online" is common for some uses of it. And I "knew" that what we call compilation for most programs used to be called "batch compilation." Searching the term was obnoxious, though, such that I gave up. :(
Re:Porting SBCL to the Nintendo Switch
by Shinmera on Friday September 13, 2024 @01:08PM
(#41533096)
I specifically talk about the fast evaluator for SBCL. But even without that contrib, SBCL does have another evaluator as well that's used in very specific circumstances.
Re:Porting SBCL to the Nintendo Switch
by akira2501 on Friday September 13, 2024 @03:40PM
(#41534454)
> the form is not interpreted, but first compiled then executed
That's TempleOS technology right there.
Re:Porting SBCL to the Nintendo Switch
by Filligree on Friday September 13, 2024 @05:33PM
(#41535388)
Other way around.
Re:Porting SBCL to the Nintendo Switch
by darby_nine on Friday September 13, 2024 @06:28PM
(#41535788)
Do either CCL or SBCL have any kind of partial evaluation or tracing compilation?
SBCL and other implementations compile code to machine code then execute it. That is to say, when a form is submitted to the REPL, the form is not interpreted, but first compiled then executed. The reason execution finishes quickly is because compilation finishes quickly.
There are some implementations, like CCL, with a special interpreter mode exclusively for REPL-usage.[1] However, at least SBCL and ECL will compile code, not interpret.
[1] https://github.com/Clozure/ccl/blob/v1.13/level-1/l1-readloo...