While dynamic linking has become an integral part of the run-time execution of modern programming languages, there is increasing recognition of the need for support for hot swapping of running modules, particularly in long-lived server applications. The interesting challenge for such a facility is to allow the new module to change the types exported by the original module, while preserving type safety. This paper describes a type-based approach to hot swapping running modules. The approach is based on a reflective mechanism for dynamically adding type sharing constraints to the type system, realized by programmer-defined
version adapters in the run-time.
Received: 19 September 2002, Accepted: 21 September 2004, Published online: 16 February 2005An extended abstract of this work appeared in International Conference on Functional Programming (ICFP), Florence, Italy, September 2001.