On the different versions of the
ANSI Common Lisp Standard X3.226-1994
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:
- ANSI X3.226-1994
- ANSI INCITS 226-1994 (R1999)
(formerly ANSI X3.226-1994 (R1999)) - ANSI INCITS 226-1994 (R2004)
- INCITS 226-1994 [S2008]
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:
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
- Standards Action Volume 36, #01, January 7, 2005
- Standards Action Volume 39, Number 42, October 17, 2008
- Standards Action Volume 39, Number 52, December 26, 2008
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 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”:
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”:
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”:
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:
Important in connection with reaffirmation in the follow-up section “Administrative withdrawal”:
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:
Stabilized Maintenance:
In “Annex A: Definitions” there is also a definition for “Stabilized Maintenance”:
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:
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:
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)”:
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:
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:
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: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.