Introducing SaberVM, a compiler backend for functional languages with properties that make it both fast and safe. It takes in closure-converted and hoisted CPS code and either executes it or AOT compiles it to a native binary. The current implementation is a naive bytecode VM in Rust for rapid prototyping. The goals of SaberVM are safety, expressivity, portability, and reliability. It achieves safety through a carefully designed type system, while expressivity is maintained through runtime checks and tagging. Portability is achieved by being simple to implement on different platforms, and reliability is ensured by a built-in crash recovery system. SaberVM’s main systems are regions and exceptions, which provide efficient memory management and error handling capabilities. This young project is still in progress, but the core ideas and goals are strong. Consider supporting it on GitHub or ko-fi if you find it interesting.
https://ryanbrewer.dev/posts/announcing-svm.html