mgr's weblog

On the different versions of the
ANSI Common Lisp Standard X3.226-1994

January 21, 2021, Lisp
Last edited on January 21, 2021

The Common Lisp standard has had different names and annual details suffixes. The standard was developed by the Technical Committee X3J13 of the “Accredited Standards Committee X3, Information Technology” founded and accredited by the American National Standards Institute (ANSI) in 1961.

In one of my professional lives I am working in the “Accredited Standards Committee X12” (also written as “ASC X12” or just “X12”; founded in 1979) since just shy of four years now and was voted “TAS Representative” of “Subcommittee X12C – Communications and Controls” (local copy) in January 2018, that is, I represent X12C in “Subcommittee X12J – Technical Assessment” (local copy), short “TAS”, since then. Having that background, I might be able to shed a light on the different versions of the Common Lisp standard and on how standardization committees' work looks in general.

I have to admit that one of the reasons I liked to start working in X12 is that I knew that the Common Lisp standard was developed by X3. I did now know how standards were developed and how such a committee worked, and I was curious to change that.

When you search in the ANSI Webstore you'll find different versions:

The standard was originally published (or, more precisely, approved for publication) in 1994, so the first version is just called “ANSI X3.226-1994”. The date of approval was December 8, 1994.

Why is it suddenly “ANSI INCITS 226-1994”?

The “Accredited Standards Committee X3, Information Technology”, or “ASC X3” in short, was established in 1961. (In the foreword to the Lisp standard it is actually referred to more legible as “Accredited Standards Committee on Information Technology, X3”.)

This body was first renamed to “Accredited Standards Committee NCITS, National Committee for Information Technology Standards”, or just “NCITS”, in 1997 and then in 2001 again renamed to “InterNational Committee for Information Technology Standards”, or just “INCITS”.

This explains why the standard is first called “ANSI X3.226-1994” but then “ANSI INCITS 226-1994”, in case of the 1999 version even retroactively.

But what about the different tags R1999, R2004 and then S2008?

Good thing that X3 is an ASC, that is, an Accredited Standards Committee and accredited by ANSI, the American National Standards Institute. That means that everything has to happen by due process, voting and Robert's Rules of Order. So we should be able to just look up what the different annotations mean and what happened when they got approved.

So let's just have a look at “ANSI Essential Requirements: Due process requirements for American National Standards”.

In the first chapter “1.0 Essential requirements for due process” we find section “1.5 Notification of standards development”, which read:

“Notification of standards activity shall be announced in suitable
media as appropriate to demonstrate an opportunity for participation
by all directly and materially affected persons.”

This is achieved by the publication called “ANSI Standards Action”:

ANSI Standards Action

Standards Action is ANSI's free weekly publication covering current standards development activities in the U.S. and internationally

Standards Action provides timely, accurate information about current standards development work in which ANSI plays a role. The publication is designed to facilitate participation in the American National Standards (ANS) development process and other domestic, regional, and international standardization activities advanced by ANSI.

There is an online Public Document Library and a Resource Center. Sadly the first issue available online is “Volume 32, #07 April 6, 2001” in the Public Document Library and “Volume 32, #05 March 9, 2001” in the Resource Center. Still, we should be able to find out about “ANSI INCITS 226-1994 (R2004)” and “INCITS 226-1994 [S2008]”.

There are four hits for issues mentioning “226-1994”:

Standards Action Volume 35, #33, August 13, 2004

In this issue we find an entry in Section “Call for Comment on Standards Proposals”, “ITI (INCITS) (InterNational Committee for Information Technology Standards)”, “Reaffirmations”:

“BSR INCITS 226-1994 (R200x), Information Technology - Programming
Language - Common Lisp (reaffirmation of ANSI INCITS 226-1994
(R1999))”

BSR is the ANSI Board of Standards Review (BSR) and it “is responsible for the approval and withdrawal of American National Standards (except in the case of ANSI Audited Designators), and for other duties delegated by […]”.

So, here the BSR is asking for comments to the then upcoming “BSR INCITS 226-1994 (R200x)” which is a “reaffirmation of ANSI INCITS 226-1994 (R1999))”; the “x” in “R200x” is filled in later when it is actually approved.

Standards Action Volume 36, #01, January 7, 2005

In this issue we find an entry in section “Final actions on American National Standards”, “ITI (INCITS) (InterNational Committee for Information Technology Standards)”, “Reaffirmations”:

“ANSI INCITS 226-1994 (R2004), Information Technology -
  Programming Language - Common Lisp (reaffirmation of ANSI
  INCITS 226-1994 (R1999)): 12/29/2004”

So the affirmation was approved and the action was published as “ANSI INCITS 226-1994 (R2004)” that is the temporary BSR prefix is replaced by ANSI and the “x” in “R200x” was replaced, resulting in “R2004”.

I assume that if I had access to earlier issues of “ANSI Standards Action” I'd find that there also would be first a “Call for Comment” for an affirmation temporarily named “R199x” and then later a “Final Action” for an affirmation approved as “R1999”.

Standards Action Volume 39, Number 42, October 17, 2008

Here we find again an entry in the main section “Call for Comment on Standards Proposals”, “ITI (INCITS) (InterNational Committee for Information Technology Standards)” but this time not under “reaffirmation” but “Stabilized Maintenance: See 3.3.3 of the ANSI Essential”:

“BSR INCITS 226-1994 (S200x), Programming Language Common Lisp
  (stabilized maintenance of ANSI INCITS 226-1994 (R2004))”

Again just asking for comments, this time for a “stabilized maintenance of ANSI INCITS 226-1994 (R200x)”, with the BSR prefix and a temporary annual detail of “S200x”.

Standards Action Volume 39, Number 52, December 26, 2008

And in the final issue we find the entry in “Final actions on American National Standards”, “ITI (INCITS) (InterNational Committee for Information Technology Standards)” and under “Stabilized Maintenance: See 3.3.3 of the ANSI Essential Requirements”:

“ANSI INCITS 226-1994 (S2008), Programming Language Common
  Lisp (stabilized maintenance of ANSI INCITS 226-1994 (R2004)):
  12/17/2008”

The action was approved and published as “ANSI INCITS 226-1994 (S2008)”, again with the prefix of a final action “ANSI” and with the “x” in “S200x” replaced: “S2008”.

As the other versions, the S2008 version is written with normal parenthesis and with the ANSI prefix as “ANSI INCITS 226-1994 (S2008)” and not with square brackets without a preceding blank space as in the ANSI Webstore: “INCITS 226-1994[S2008]”.

What do the terms “reaffirmation” and “stabilized maintenance” actually mean?

So far we have learned that “R” means “reaffirmation” (and not revision) and “S” means “stabilized maintenance”, and we got a pointer to “3.3.3 of the ANSI Essential Requirements” to learn more about the term “Stabilized Maintenance”. Let's look it up!

Consulting the already mentioned “ANSI Essential Requirements: Due process requirements for American National Standards” again, we find that section “3.3.3” does not exist for that version anymore but instead of searching for older versions I guess we can just directly look for “reaffirmation” and “stabilized maintenance” in the current version instead.

Reaffirmation:

“4.2.1.2 Reaffirmation of an American National Standard
 
The due process and consensus requirements defined herein apply to reaffirmations as they do to all approval
actions related to American National Standards. The procedures used for reaffirmation of an American National
Standard by an accredited standards developer shall be implemented according to the developer's ANSI
accredited procedures. Reaffirmations shall provide an opportunity for public comment.
 
Reaffirmations shall be accomplished without any substantive change to the main text of the standard. All non-
substantive changes in the main text of the standard shall be explained, or noted, in a foreword. An American
National Standard undergoing an update of references to standards necessary to implement the American
National Standard shall be processed as a revision unless the updated reference is only a reaffirmation of the
referenced standard. Any substantive changes in such references require processing as a revision.
 
The ANS shall clearly indicate on its cover or title page that it is a reaffirmation.”

Important in connection with reaffirmation in the follow-up section “Administrative withdrawal”:

“4.2.1.3 Criteria for withdrawal
 
4.2.1.3.1 Administrative withdrawal
 
An American National Standard shall be withdrawn five years following approval, if the standard has not been
revised or reaffirmed, unless an extension has been granted by the ExSC or its designee. An American National
Standard that has not been reaffirmed or revised within the five-year period, and that has been recommended for
withdrawal by the ExSC or its designee, shall be withdrawn at the close of a 30-day public review notice in
Standards Action. American National Standards that have not been revised or reaffirmed within ten years from
the date of their approval as American National Standards shall be withdrawn and such action shall be
announced in Standards Action.”

If you do not want the standard to disappear and be withdrawn, it has to be revised or reaffirmed within five years following approval. This means a reaffirmation has to happen even if there is not even a “non-substantive change”. In that case the standard just gets a new name and cover page. No single word of the content might have been changed at all. And even if there are changes, they can only be a minor, “non-substantive” changes. The bar is usually quite low, so we are talking typos or page references, I'd assume. The “Annex A: Definitions” specifies:

“Substantive Change: A substantive change in a proposed American National Standard is one that directly
and materially affects the use of the standard. Examples of substantive changes are below:
  - “shall” to “should” or “should” to “shall”;
  - addition, deletion or revision of requirements, regardless of the number of changes;
  - addition of mandatory compliance with referenced standards.”

Stabilized Maintenance:

In “Annex A: Definitions” there is also a definition for “Stabilized Maintenance”:

“Stabilized Maintenance: A standard that is maintained under the stabilized maintenance option shall satisfy
the following eligibility criteria:
a) the standard addresses mature technology or practices, and as a result, is not likely to require revision;
    and
b) the standard is other than safety or health related; and
c) the standard currently holds the status of American National Standard and has been reaffirmed at least
    once; and
d) at least ten years have passed since the approval or last revision of the standard as an ANS; and
e) the standard is required for use in connection with existing implementations or for reference purposes.”

If all this criteria hold, after “at least ten years” you can get out of the 5-year reaffirmation cycle and declare a previously reaffirmed standard to be “mature” and move from the normal “periodic” or “continuous” maintenance schemes to “stabilized maintenance”.

It seems to me that that could have happened already in 2004 but, from experience, I'd assume there was one person nitpicking when holding the phrase “at least ten years” against the words of section “4.2.1.3.1 Administrative withdrawal” that “An American National Standard shall be withdrawn five years following approval, if the standard has not been revised or reaffirmed[…]” and argue that the standard had first to be reaffirmed two times “within a five-year period” so that it could have existed “at least ten years” without it being automatically withdrawn, and only then the eligibility criteria of stabilized maintenance would hold. But that is just me guessing. Maybe they just forgot about stabilized maintenance in 2004 or the “ANSI Essential Requirements” were slightly different back then. But notice while there are five years between 1994 and 1999 and also between 1999 and 2004, it is just a four year interval between 2004 and 2008; maybe my assumption is not completely wrong in the end.

What is not a guess: A stabilized maintenance cannot even have a non-substantive change. The contents is identical to the previous version, only it gets a new label on the cover page.

More on Stabilized Maintenance

Actually, in addition to the “Annex A: Definitions” entry for “Stabilized Maintenance” there is a long subsection on “Stabilized maintenance of American National Standards”. The definition itself is identical to the one in the Annex but then a lot of further explanation and elaborations follow:

“4.7.3 Stabilized maintenance of American National Standards
A standard that is maintained under the stabilized maintenance option shall satisfy the following eligibility criteria:
a) the standard addresses mature technology or practices, and as a result, is not likely to require revision; and
b) the standard is other than safety or health related; and
c) the standard currently holds the status of American National Standard and has been reaffirmed at least once;
    and
—page break—
d) at least ten years have passed since the approval or last revision of the standard as an ANS; and
e) the standard is required for use in connection with existing implementations or for reference purposes.
 
The due process and consensus requirements defined herein apply to the decision to maintain an ANS under the
stabilized maintenance option. A developer who wishes to maintain one or more ANS under the stabilized
maintenance option shall include a provision or notification to this effect in its accredited procedures
 
An ANS maintained under the stabilized maintenance option is not required to be revised or reaffirmed on a
routine 5-year cycle; however, it shall be subject to review of such status by the sponsoring standards developer
on a 10-year cycle. If it is determined in connection with this review that the standard shall continue to be
maintained under the stabilized maintenance option and as such does not require revision or withdrawal, then this
shall be communicated to ANSI by the standards developer and a related announcement shall be made in
Standards Action. Notification to ANSI shall be accomplished via the submittal of an informational announcement
if the standard will continue to be maintained under the stabilized maintenance option or will be withdrawn, or via
a PINS, if the standard will be revised.
 
If a recommendation is made at any time by a materially affected and interested party that a standard maintained
under the stabilized maintenance option requires revision or should be withdrawn, then that recommendation
shall be considered in the same manner as a new proposal but within a maximum of 60 days from receipt. A
recommendation should include rationale to begin a revision, and shall not be dismissed due to the fact that it
does not necessarily suggest a specific revision. The submitter of such a recommendation shall be responded to
in writing by the standards developer within 60 days of the receipt of the recommendation and advised of the
decision relative to the maintenance status of the standard.
 
An ANS that is maintained under the stabilized maintenance option shall include a clear statement of the intent to
consider requests for change and information on the submittal of such requests.
 
The decision to maintain an ANS under the stabilized maintenance option and the process by which it is
maintained shall be subject to appeal to the standards developer. A subsequent appeal to ANSI may be made to
the ANSI Executive Standards Council based on a claim of procedural non-compliance.”

This confirms the “routine 5-year cycle” of revision or reaffirmation I mentioned earlier.

But what about this 10-year cycle for a standard under stabilized maintenance:

“An ANS maintained under the stabilized maintenance option is not required to be revised or reaffirmed on a routine 5-year cycle; however, it shall be subject to review of such status by the sponsoring standards developer on a 10-year cycle. If it is determined in connection with this review that the standard shall continue to be maintained under the stabilized maintenance option and as such does not require revision or withdrawal, then this shall be communicated to ANSI by the standards developer and a related announcement shall be made in Standards Action. Notification to ANSI shall be accomplished via the submittal of an informational announcement if the standard will continue to be maintained under the stabilized maintenance option or will be withdrawn, or via a PINS, if the standard will be revised.”

Shouldn't the sponsoring standards developer, that is INCITS, have renewed the standard in 2018?

Searching in the Resource Center again but this time for “Common Lisp” and not “226-1994” I get actually one more hit in addition to the previous four results:

In this issue we find an entry in the main section “Call for Members (ANS Consensus Bodies)”, “ITI (INCITS) (InterNational Committee for Information Technology Standards)”:

“INCITS 226-1994 [S2018], Programming Language Common Lisp
  (stabilized maintenance of INCITS 226-1994 (R2004))”

There actually is an S2018 version! I have no idea why they have dropped the ANSI prefix and now use square brackets in this official document. This is unexpected. But it seems not to be an accident as it reads the same in the official “Project Overview” of “INCITS 226-1994[S2018]: Information Technology - Programming Language - Common Lisp” at INCITS:

“Project Overview” of “INCITS 226-1994[S2018]: Information Technology
- Programming Language - Common Lisp” at INCITS
 
Project Type: National Projects (ANSI)
Updated: 2019-10-15
Project Contact: INCITS Secretariat
Project State: Published-Stabilized
 
Start: 2008-01-01; Completed: 2018-12-28
100% Complete.

The notification to ANSI on the continued stabilized maintenance itself would not be published in Standards Action and I actually do not find any other mention of the Common Lisp standard in all other issues of 2018. So this entry in “Standards Action Volume 49, No. 52, December 28, 2018” serves as the sole announcement in Standards Action of the fact that the stabilized maintenance status was continued by INCITS.

The publication date of said issue is identical to the approval date of the S2018 version on the S2018 project overview page: Friday, 28 December 2018, and as expected there was no new public review. The project overview page actually just repeats the public review start and end dates of S2008.

Current “ANS Consensus Body”?

There is actually a short introduction text to the section “Call for Members (ANS Consensus Bodies)” that contains the entry on “INCITS 226-1994 [S2018]” in “Standards Action Volume 49, No. 52, December 28, 2018”, it reads:

“Call for Members (ANS Consensus Bodies)
 
Directly and materially affected parties who are interested in participating as a member of an ANS consensus body for the standards
listed below are requested to contact the sponsoring standards developer directly and in a timely manner.”

That is, INCITS seems to be actually looking for new members to form the ANS consensus body of the standard INCITS 226-1994. (Consensus body being "The group that approves the content of a standard and whose vote demonstrates evidence of consensus." according to “Annex A: Definitions” of “ANSI Essential Requirements”.)

If you know anything about this or any currently existing consensus body for the standard I'd like to know and would be happy if you wrote me a mail.

Putting it all together

There are these versions of the ANSI Common Lisp standard:

  • ANSI X3.226-1994
  • ANSI X3.226-1994 (R1999)
  • ANSI INCITS 226-1994 (R1999)
  • ANSI INCITS 226-1994 (R2004)
  • ANSI INCITS 226-1994 (S2008) or INCITS 226-1994[S2008]
  • ANSI INCITS 226-1994 (S2018) or INCITS 226-1994[S2018]

There has never been a “revision” of the standard and that means there was never a change to the standard since first approval of the standard on December 8, 1994 that was considered “substantive”.

The contents of S2008 and S2018 must be identical to R2004. Not even non-substantive changes allowed.

I have ordered the current “ANSI INCITS 226-1994” at the IHS Markit's Standards Store (see previous blog entry Physical dimensions of ANSI Common Lisp) and got something labeled “ANSI INCITS 226-1994 (R2004) (formerly ANSI X3.226-1994 (R1999))”(sic!) on the cover page and on every other page of the contents it just reads “ANSI X3.226-1994”. From that I conclude that with exception of the cover pages also R2004 and R1999 are identical to the first version from 1994 and do not even contain any non-substantive change at all.

tl;dr

All versions of the ANSI Common Lisp standard — “ANSI X3.226-1994,” “ANSI X3.226-1994 (R1999),” “ANSI INCITS 226-1994 (R1999),” “ANSI INCITS 226-1994 (R2004),” “ANSI INCITS 226-1994 (S2008),” “INCITS 226-1994[S2008],” “ANSI INCITS 226-1994 (S2018),” and “INCITS 226-1994[S2018]” — have most probably all identical content, bar their cover pages.

And if someone bothers you saying that the standard is old and asking why there are no new versions, just reply that:

  • Common Lisp is “mature technology”,
  • the standard is “stabilized” and
  • everything just “100% Complete.”
:-)


P.S. — On “Document X3J13/94-101R”

Even though the approval date of the standard is December 9, 1994 the “Edit and Review History” of “ANSI X3.226-1994” lists one last entry in 1995:

“12-Aug-94
Pitman
Draft 15.17R (for X3 consideration). Document X3J13/94-101R.
 
15-Mar-95
Pitman
Draft 16.61 (for ANSI publication). Document ANSI X3.226-1994.
  Same kinds of changes as for 15.17R plus changes to 'book design'
  (page layout, vertical spacing, dictionary entry format). Some stray
  occurrences of “Notes” and “Examples” labels removed where
  followed by no test. New Index and Contents to match pagination.”

The second to last entry mentions “Document X3J13/94-101R” which is still available as a PDF of good quality and you can find it on several websites (but usually rendered to DIN A4 and not in the original ANSI Letter format). The only differences from that document to the official ANSI standard are those non-substantive changes that Kent M. Pitman lists in that “Edit and Review History” entry.

Still, this means that the official standard ANSI X3.226-1994 has different page numbers than X3J13/94-101R.

And a copy of the official standard comes with a short foreword on two pages with a note on top: “This foreword is not part of American National Standard X3.226-1994”. These two pages I do not find included in the versions of the document X3J13/94-101R that circulate in the web.

Trackback pings for this entry are listed below. The URL to ping for this entry is: http://blog.matroid.org/trackback/79

Select a Theme:

Basilique du Sacré-Cœur de Montmartre (Paris) Parc Floral de Paris Castillo de Santa Barbara (Alicante) About the photos

Entries: