On the second to last meetup, I think someone asked about how we plan to do compile time evaluation if we're going to deprecate the interpreter. Can the answer be repeated here because I forgot :p
https://drive.google.com/file/d/1hxwZy3a6fsxDJ2yQO8k1D33ClvZ8QELd/view?usp=sharing&t=3151
You can pick with backend you want to use either the interpreter or a dev backend or even llvm.
It works by JIT compiling and evaluating and then storing the result at compile time.
We have been talking a little about deprecating the interpreter in other threads in zulip ... but I don't think there has been a decision. AFAIK the plan is to compare the performance and use data to inform that decision.
My personal experience trying to debug the interpreter is that it is a rabbit warren of bugs lurking because we are necessarily re-doing all the type-checking and polymorphism stuff at runtime (in a context with multiple modules interacting etc). It's kind of the worst case scenario for complexity and I feel like it's going to be a challenge to tease all of those out and get a correct implementation.
because we are necessarily re-doing all the type-checking and polymorphism stuff at runtime
Yeah, I guess if you wanted it to be simple, you would have to at least get past mono before kicking of the interpreter.
Yeah -- I'm very tempted to refactor it and baseline the interpreter off the MIR or maybe even LIR?? instead when those land. It would mean we can support any exotic target that Zig supports which is pretty cool.
Last updated: Mar 20 2026 at 12:28 UTC