fsprojects / FSharp.Compiler.PortaCode

The PortaCode F# code format and corresponding interpreter. Used by Fabulous and others.
Other
42 stars 11 forks source link

Dynamically emit shell types #25

Closed dsyme closed 3 years ago

dsyme commented 3 years ago

This adds a capability to use RefEmit to dynamically emit "shell types" that implement the virtual slots and thunk back into the interpreter.

This is for cases where the aim is to use the interpreter to supervise and observe execution, e.g. to capture the values of variables flowing through the computation, and to only execute live checks, but where better fidelity with .NET semantics is required. The same could likely be achieved by rewriting .NET IL to intercept, or by using the .NET Core Debug API