We coined the concept of micro virtual machines for the development of managed languages.
"Mu" is the name of our specific micro virtual machine. This project has a specification and a reference implementation which are publicly available:
- Mu Specification (v2): canonical information
- Mu Reference Implementation (v2): an implementation of the Mu spec in Scala
- Zebu (high performance Mu implementation): an implementation with a focus on performance (still in development)
- Mu Tutorial (current): a step-by-step guide
- The Micro Virtual Machine Project on ANU GitLab: this includes many sub-projects
- High-level Issue Tracker: general discussions and questions not specific to any sub-project
The project will define, develop, evaluate, and refine the essential components of a new foundation layer for managed language implementation. In doing so, it will address a key source of systemic inefficiency, by pioneering micro virtual machines as an efficient high-performance substrate for managed language implementation. The relationship between a micro VM and existing managed language implementations is analogous to the one between an operating system micro kernel and monolithic operating systems such as Linux. A micro VM captures the insight that there exists a well-defined foundation common to most modern languages that can take responsibility for fundamental abstractions over hardware, concurrency, and memory. By isolating and exposing this substrate, a micro VM embodies state-of-the-art base technology available to language implementers while isolating them from the pernicious complexities of these abstractions, freeing them to focus on all-important language-specific optimizations. This project will enable more efficient software and a distinctly sharper focus for language implementation research and development.
- Rust as a Language for High Performance GC Implementation", in Proceedings of the Sixteenth ACM SIGPLAN International Symposium on Memory Management, ISMM ‘16, Santa Barbara, CA, June 13, 2016, 2016. pdf , "
- Stop and Go: Understanding Yieldpoint Behavior", in Proceedings of the Fourteenth ACM SIGPLAN International Symposium on Memory Management, ISMM ‘15, Portland, OR, June 14, 2015, 2015. pdf , "
- Draining the Swamp: Micro Virtual Machines as Solid Foundation for Language Development", in 1st Summit on Advances in Programming Languages (SNAPL 2015), 2015. pdf url , "