Eclector Manual

HTML Version

PDF Version

GNU Info Version

European Lisp Symposium 2026 Paper and Presentation

Abstract
The Common Lisp read function (usually called the Common Lisp reader) is an essential part of every Common Lisp implementation, because it is used to read Common Lisp code for subsequent evaluation. The readers of most existing Common Lisp implementations do this well, but little more. However, there are many situations where it is useful to read Common Lisp code for other purposes as well, and in those situations it can be essential to be able to configure the reader in various ways, for instance so that it does not fail for symbols with incorrect package markers. In this paper, we describe Eclector, a highly configurable Common Lisp reader. Configuration is accomplished by the extensive use of Common Lisp generic functions called by Eclector and that can be specialized by client code.

Paper (PDF)

Presentation Slides (HTML)

Recorded Video (Youtube)

Online Lisp Meeting 2020 Presentation

Abstract
The Common Lisp reader is a collection of functions and variables for turning sequences of characters into s-expressions, which are described in Chapter 2 of the specification. While some aspects of the behavior of the reader can be customized, many parts are internal to each Common Lisp implementation and thus inaccessible to portable programs. Eclector is a portable reader implementation which is set apart by 1) providing very detailed error reporting (for humans and programs) 2) allowing recovery from (almost) all syntax errors 3) allowing customization of far more aspects than other readers 4) providing a mechanism for constructing parse results with source information. This presentation introduces the Eclector project and explains the customization mechanisms built into its architecture. Everything is considered from the perspective of a user of the Eclector reader, so its implementation is not discussed. The features mentioned above are further illustrated in several (hopefully) interesting and useful demonstrations.

Presentation Slides (HTML)

Recorded Video (Youtube)