Roger Corman



Title:  Multi-threaded Lisp: Challenges and Solutions


Abstract: Modern software engineering has embraced parallel processing, in the form of threads (lightweight processes), as a standard technique used in nearly all types of applications. Most Common Lisp implementations provide some capabilities for multi-threading. Since this is an extension to the language, the Common Lisp standard provides no assistance to language implementors attempting to add thread support. Both the public API and the underlying architecture are determined by the implementors.

A number of challenges are faced when trying to design and implement multi-threading capabilities in lisp. Areas of the language that are affected include:

Special variables
Heap access
Garbage collection
Foreign calls and callbacks
Code generation
Image saving and loading

This talk will cover how each of these areas is affected by multi-threading and how one implementation (Corman Lisp) has implemented multi-threading. The information is quite technical, and will explore
details of language implementation.