We gave a talk "Fast, integrated and debuggable Interpreters in MPS and beyond" at LangDev conference.
Links from the presentation:
Jobs @ F1RE: https://www.f1re.nl/alle-vacatures
GraalVM: https://www.graalvm.org/
Truffle: https://www.graalvm.org/22.2/graalvm-as-a-platform/language-implementation-framework/
Tartufo will be Open Source, we first need to sort out some licensing details. Contact niko@f1re.io for early access.
Interpretation enables highly interactive scenarios for many DSLs, such as live execution of test cases, consistency checks, or spreadsheet-like immediate evaluation and feedback. Implementing interpreters is usually boring: Each concept in the DSL needs a typically simple evaluator, and a lot of boilerplate infrastructure. This cries for an interpreter DSL!
After prototyping the first (and by now, widely used) interpreter in MPS, and showing a much faster proof of concept some time ago, we now present a well-engineered, fully integrated new language aspect for interpreters in Jetbrains MPS. The new language aspect:
is based on GraalVM’s Truffle framework to achieve top performance
runs on stock MPS
allows interactive debugging from within the same MPS instance
enables non-blocking asynchronous execution
can be re-used outside MPS. It follows the ideas outlined in an overview blog post.
This talk focuses on demonstrating the interpreter in action. We show aforementioned features, discuss known drawbacks and look at future enhancements. The implementation will be available as Open Source.