Conference paper Open Access
Hamel, Frédéric; Feeley, Marc
The Termite Scheme language is an existing extension of
Gambit Scheme that has features well suited for programming
heterogeneous distributed systems using a message passing
style. The language supports sending messages containing
procedures and continuations, which simplifies migrating
tasks between nodes during their execution.
A longstanding issue with the original implementation of
Termite is that compiled procedures and continuations can
only be sent to other nodes if the compiled code is already
loaded in the program receiving the message. This is tedious
to arrange in the typical case, and hard or impossible for hot
code updates which are an important use case (updating a
service without interrupting its execution).
Our work has implemented a solution to this problem:
an R7RS compatible module system that automates the
distribution of compiled code. The module system uses a
version control system to manage module versions and provide
a way to distribute code from network accessible repositories.
Modules are identified uniquely using the repository location
and version number. This allows multiple versions of the
same module to coexist in a program, an essential feature to
support hot code updates.
We explain the implementation of our module system and
how it solves various issues related to Termite Scheme and
programming distributed systems. Through an experimental
evaluation we have observed speed improvements for RPC of
close to one order of magnitude.