Appendix A: Implementation of Dynamic Variables in C
Appendix B: Additional Utilities for Working with Common Lisp Conditions
Appendix C: Lisp Macros 101
Appendix D: Condition System Reference
Michał "phoe" Herda is a programmer with contributions to multiple parts of the Common Lisp ecosystem: CL implementations, existing and widely-used CL utilities, documentation, and some of the new library ideas that he slowly pushes forwards and works on. The book The Common Lisp Condition System is his first work -- an attempt to create a tutorial on the condition system that was missing, even all the years after which ANSI Common Lisp was standardized.
Discover the functioning and example uses of the Common Lisp condition system. This book supplements already existing material for studying Common Lisp as a language by providing detailed information about the Lisp condition system and its control flow mechanisms; it also describes an example ANSI-conformant implementation of the condition system.
In part 1 of The Common Lisp Condition System, the author introduces the condition system using a bottom-up approach, constructing it piece by piece. He uses a storytelling approach to convey the foundation of the condition system, dynamically providing code to alter the behavior of an existing program. Later, in part 2, you’ll implement a full and complete ANSI-conformant condition system while examining and testing each piece of code that you write.
Throughout, the author demonstrates how to extend Lisp using Lisp itself by using the condition system as an example. This is done while paying proper attention to the CL restart subsystem, giving it attention on a par with the handler subsystem. After reading and using this book, you'll have learned about the inner functioning of the condition system, how to use it in your own Common Lisp coding and applications, and how to implement it from scratch, should such a need arise.
You will:
Examine the condition system and see why it is important in Common Lisp
Construct the condition system from scratch using foundational mechanisms provided by Common Lisp
Program the condition system and its control flow mechanisms to achieve practical results
Implement all parts of a condition system: conditions, restarts, handler- and restart-binding macros, signalling mechanisms, assertions, a debugger, and more