I released that the interpreter holds on to too much information when evaluating recursive functions. (TODO: link post?)
Closure conversion solves this.
I want all definitions to be typechecked (even unused ones), but performance optimisations need only apply to definitions that are actually used by a script. I made this by closure converting "just in time", when a definition is first accessed by the evaluator.
Tasks
[x] Reduce duplication between datatypes in closure_conversion and ipso_core
I released that the interpreter holds on to too much information when evaluating recursive functions. (TODO: link post?)
Closure conversion solves this.
I want all definitions to be typechecked (even unused ones), but performance optimisations need only apply to definitions that are actually used by a script. I made this by closure converting "just in time", when a definition is first accessed by the evaluator.
Tasks
closure_conversion
andipso_core