Benoit Daloze, Chris Seaton, Daniele Bonetta, Hanspeter Mössenböck,
"Techniques and Applications for Guest-Language Safepoints"
: Proceeding 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop, ACM New York, 2015, ISBN: 978-1-4503-3657-4
Original Titel:
Techniques and Applications for Guest-Language Safepoints
Sprache des Titels:
Englisch
Original Buchtitel:
Proceeding 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop
Original Kurzfassung:
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.