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:
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:
“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)”:
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.