Christopher Allan Webber

Christopher Allan Webber at

Another bit, revolving how to handle extensibility and standards:

One issue that came up early on is worth mentioning, because it is at the heart of one of the major attacks on Common Lisp, which was mounted during the ISO work on Lisp (see section 2.12). This is the issue of modularization, which had two aspects: (1) whether Common Lisp should be divided into a core language plus modules and (2) whether there should be a division into the so-called white, yellow, and red pages. These topics appear to have been blended in the discussion.

"White pages" refers to the manual proper, and anything that is in the white pages must be implemented somehow by a Lisp whose developers claim it is a Common Lisp. "Yellow pages" refers to implementation-independent packages that can be loaded in, for example, TRACE and scientific subroutine packages. The "red pages" were intended to describe implementation-dependent routines, such as device drivers.

Nevertheless, the first question is brought up by a direct reading of the issue: Division of Common Lisp into a core plus modules.

If this were taken to mean a proposal that would have partitioned the language into layers with a central layer and outer layers that depend on the inner ones, then Common Lisp could have been more easily subsetted, which would have led to obvious implementations on smaller machines. This would have satisfied the need to cheap, prolific implementations. This would also have made providing educational versions of the language more readily available. It also would have prevented the strong attack during the ISO meetings by Europe and by, to a lesser degree, Japan.

The response from influential members is revealing: "This seems weird. Motivate it. Maybe these modules are optional at the implementation's choice?" "Keeping things modular is a good goal, but don't expect to succeed completely." "The division only makes a little sense." [?; ?] The group focussed too much on the funny white-yellow-red distinction and not on the corelanguage/extended-language distinction. Had this gone differently, so would have the future of Common Lisp.

Note, this sounds not too unlike the decision to break r7rs into r7rs-small and r7rs-large, for anyone who knows/cares about that in Scheme-land...

Arne Babenhauserheide, Tyng-Ruey Chuang, ❌ likes this.

Arne Babenhauserheide shared this.