Hamel, Frédéric
Feeley, Marc
2020-04-27
<p>The Termite Scheme language is an existing extension of<br>
Gambit Scheme that has features well suited for programming<br>
heterogeneous distributed systems using a message passing<br>
style. The language supports sending messages containing<br>
procedures and continuations, which simplifies migrating<br>
tasks between nodes during their execution.<br>
<br>
A longstanding issue with the original implementation of<br>
Termite is that compiled procedures and continuations can<br>
only be sent to other nodes if the compiled code is already<br>
loaded in the program receiving the message. This is tedious<br>
to arrange in the typical case, and hard or impossible for hot<br>
code updates which are an important use case (updating a<br>
service without interrupting its execution).<br>
<br>
Our work has implemented a solution to this problem:<br>
an R7RS compatible module system that automates the<br>
distribution of compiled code. The module system uses a<br>
version control system to manage module versions and provide<br>
a way to distribute code from network accessible repositories.<br>
Modules are identified uniquely using the repository location<br>
and version number. This allows multiple versions of the<br>
same module to coexist in a program, an essential feature to<br>
support hot code updates.<br>
<br>
We explain the implementation of our module system and<br>
how it solves various issues related to Termite Scheme and<br>
programming distributed systems. Through an experimental<br>
evaluation we have observed speed improvements for RPC of<br>
close to one order of magnitude.</p>
https://doi.org/10.5281/zenodo.3742443
oai:zenodo.org:3742443
eng
Zenodo
issn:2677-3465
https://zenodo.org/communities/els
https://doi.org/10.5281/zenodo.3742442
info:eu-repo/semantics/openAccess
Creative Commons Attribution 4.0 International
https://creativecommons.org/licenses/by/4.0/legalcode
ELS'20, the 13th European Lisp Symposium, Zürich, Switzerland, April 27--28 2020
Distributed systems
Concurrency
Remote Procedure Call
Mobile code
Modules
Scheme
An R7RS Compatible Module System for Termite Scheme
info:eu-repo/semantics/conferencePaper