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
Debugging
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.