Results 1 -
1 of
1
Techniques and Applications for Guest-Language Safepoints
"... Safepoints are a virtual machine mechanism that allows one thread to suspend other threads in a known state so that runtime actions can be performed without interruption and with data structures in a consistent state. Many virtual machines use safepoints as a mech-anism to provide services such as s ..."
Abstract
- Add to MetaCart
(Show Context)
Safepoints are a virtual machine mechanism that allows one thread to suspend other threads in a known state so that runtime actions can be performed without interruption and with data structures in a consistent state. Many virtual machines use safepoints as a mech-anism to provide services such as stop-the-world garbage collec-tion, debugging, and modification to running code such as installing or replacing classes. Languages implemented on these virtual ma-chines may have access to these services, but not directly to the safepoint mechanism itself. We show that safepoints have many useful applications for the implementation of guest languages run-ning on a virtual machine. We describe an API for using safepoints in languages that were implemented under the Truffle language im-plementation framework on the Java Virtual Machine and show several applications of the API to implement useful guest-language functionality. We present an efficient implementation of this API, when running in combination with the Graal dynamic compiler. We also demonstrate that our safepoints cause zero overhead with re-spect to peak performance and statistically insignificant overhead with respect to compilation time. We compare this to other tech-niques that could be used to implement the same functionality and demonstrate the large overhead that they incur.