Write a Blog >>
Sun 22 - Fri 27 October 2017 Vancouver, Canada
Sun 22 Oct 2017 14:00 - 14:30 at Regency B - Runtime Reflection Chair(s): Cyrus Omar

Dynamic Metacircular Runtimes (DMRs) enable a new way of developing Virtual Machines (VMs). Instead of writing VMs by manipulating files, DMR programmers work on a running system by modifying its methods, classes and, more generally, objects. This development workflow has both advantages and disadvantages. While it allows us to more easily understand the behavior of the system by showing it alive, it is also problematic, because the system relies on itself to be constantly working.

In this work, we experiment with adapting such live programming tools to make them safer for the development of core DMR components. Furthermore, we make them robust so that they can work on crashed DMRs or systems not that are currently fully working. This paper describes Metaphysics, a framework that combines mirrors and proxies to reify different message execution semantics, allowing execution of code by mixing behavior of a remote, possibly broken system with a local fully-working one. With Metaphysics we were able to create native code debugging and profiling tools. These new tools make full use of the metacircularity of our Bee DMR and enable a dynamic, fast-paced edit-test workflow like the one we are used to when developing application-level code, instead of the classic edit-compile-get-coffee-test cycle used for state-of-the-art VMs.

Work-in-Progress Paper (meta17-final12.pdf)429KiB