Conversation

Yeah, I think we'll eventually do the IR compilation in Lean 4 lazily to mostly avoid it in interactive use. The interpreter works on the IR as well, no more bytecode, so locality is at least as bad as for an AST interpreter. Probably worse. Native speedup is often >100x.
1
6
#eval interprets the lambda_RC IR from arxiv.org/abs/1908.05647 (any prior IR/Core could be problematic for guaranteeing destructive updates). The interpreter is designed for simplicity, not performance; the goal has always been to compile anything perf-sensitive to native code.
2
1
I'd however agree with András that NbE is easier than capture-avoiding substitution and about as easy as a normal CBV interpreter: essentially you just add the right traversal on the values produced by the interpreter, applying them to fresh variables :-)
1
1
You’re unable to view this Tweet because this account owner limits who can view their Tweets. Learn more
I thought at least that smalltt was implemented with the `Strict` language feature on, and the lazy stuff is opt-in with the tilde? Or are we talking about something different here?
1