The committee formed several subcommittees to help its members better concentrate their efforts.
Cleanup subcommittee The Cleanup Subcommittee, chaired by Larry Masinter, established a standardised format for the submission of proposals for voting. These issue writeups, while not themselves part of the standard, were deemed sufficiently useful for the
Common Lisp HyperSpec to include and
cross-reference them for the benefit of readers, providing information about the original intent of the committee in its decisions. These writeups also serve as a historical record of those alternate solutions to problems which were, ultimately, not adopted.
Compiler subcommittee Chaired by Sandra Loosemore, this subcommittee created proposals for issues relating to Lisp
compiling. Guy Steele acknowledged in the second edition of
Common Lisp the Language the large contribution of the Compiler Subcommittee toward clarifying the compiling process described in the first edition, parts of which Steele describes as "vague".
Iteration subcommittee Jon L. White was the chair of the
Iteration Subcommittee. Among the issues dealt with by this group was the generalized LOOP
macro – a
domain-specific language to which the second edition of
CLtL devotes a full chapter. The "
ALGOL-like"
syntax of this macro, differing from Lisp's more usual
s-expression syntax, was and remains somewhat controversial.
Character subcommittee The Character Subcommittee, chaired by Thom Linden, had the task of defining how the standard would deal with the issues surrounding different
character sets. The resolution of these matters, particularly the ability to use any character in the name of a
symbol, was intended to make Common Lisp simpler for international users.
Error handling subcommittee Chaired by
Kent Pitman, the Error Handling Subcommittee plugged what was described as "the biggest outstanding hole in Common Lisp" to accommodate one system for handling exceptional situations of various kinds, whether fatal or non-fatal, whether continuable or not, and whether the result of program error or simple resource limit (such as stack overflow). Conditions are
signaled at one point in the code and may be handled at another point. This use of the term "signal" is different from the typical
operating system's notion of
signals (except on
Lisp machines where this variant use of the term evolved); the operating system notion of
signaling was out of scope for this committee, and consequently was not addressed in the ANSI Common Lisp standard. Asynchronous interrupts and IEEE floating point trapping was also out of scope for this committee's work and was not addressed in the standard.
Drafting subcommittee Kathy Chapman was the chair for the Drafting Subcommittee, which was responsible for the drafting of the actual
standard document. Further, the subcommittee oversaw efforts to keep
terminology consistent and accurate throughout the committee's activities. ==Final document==