“An R7RS Compatible Module System for Termite Scheme”, Frédéric Hamel, Marc Feeley2020-04-27 ()⁠:

[video, slides] 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 long-standing 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. [cf. Dhall, QuickLisp, Go, Nix]

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.