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: canonical information
- Holstein (Mu reference implementation): a simple but slow implementation of the Mu specification in Scala
- Zebu (high performance Mu implementation): an implementation with a focus on performance (still in development)
- Mu Tutorial: 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 virtual machine 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 virtual machine 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 virtual machine 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.
- Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM", in 14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE 2018), 2018. pdf url , "
- Micro Virtual Machines: A Solid Foundation for Managed Language Implementation", Ph.D. thesis, College of Engineering and Computer Science, The Australian National University, 2017. pdf url , "
- 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 , "