Well, the author of that doesn't mention anything about important developments in Lisp coming from Scheme in the first half of the 1980's, second half of the 1980's and so on. It seems to imply that the important contributions to Lisp from Scheme took place in the late 1970's, and then it dried up (as far as contributions relevant to Lisp).
Furthermore, none of the Scheme-influenced features in CL are from anything but he late 1970's Scheme. The lexical scoping is pretty much, pun intended, the extent of it.
Furthermore, the wording later in the paragraph is in the past tense: "The major contributions of Scheme were, ...".
That's it; Scheme was done contributing to Lisp by the end of the late 1970's. We took some of the good bits, thank you very much!
> You'd think they would have mentioned this if they thought that early versions of Scheme were Lisps while later versions.
Stated explicitly in such terms, it would kind of be an inappropriate rant with respect to the topic of that section, and in the context of the whole document. (That sort of extended section on history is not that common in ANSI and ISO language standards to begin with.)
You'd also think, by the same token, that if they thought Scheme continued to evolve as a Lisp, rather than something else, that they would crib newer features from Scheme. Like for instance, making the empty list a Boolean true value, and introducing a dedicated false constant.
I think the major innovations of Scheme as a language were already present by 1978 — as the CLHS says, "lexical scoping, lexical closures, first-class continuations, and simplified syntax", and also mandatory TCE and the idea of using lambdas for all kinds of perverted purposes. (And it's true that of these only lexical scoping and closures are in CL, with the result that you can use lambdas for all kinds of perverted purposes, though many CL systems also implement TCE.) After that it was basically the same language for a long time, despite the addition of details like the boolean type and case-sensitivity. (Whether or not you like a boolean type and case-sensitivity, it's clear that they're not "major contributions" to any programming language; they're nearly implementation details.) The next major innovation in Scheme from my point of view was hygienic macros, which wasn't on the horizon when Gabriel wrote his essay (he identifies the hygiene problem as one of the major difficulties of a Lisp₁ such as Scheme, but not its solution) and wasn't really solved until 1991, after Common Lisp was already well-defined, though before the final ANSI standard was finished.
(This is part of what makes it so bizarre to claim that Scheme in the late 1970s was Lisp, and then at some point stopped being Lisp: Scheme in the late 1970s was essentially the same language as Scheme in the mid-1990s, except that things like RPLACA and NREVERSE had been renamed to things like set-car! and reverse! in R²RS, a purely surface change even shallower than Dylan's infix syntax. In R⁵RS it gained hygienic macros in the form of syntax-rules, basically standardizing the Macros that Work approach published in 1991, which is a significant innovation, but R⁵RS didn't come out until 1998. syntax-rules was in R⁴RS in 1991, but only as an optional extension. Regardless, improving the macro system hardly seems to make the language less Lispy — on the contrary, really.)
But I wasn't saying that Scheme contributed a lot of things to Common Lisp. It didn't. My point was that the people who wrote the Common Lisp standard considered both Scheme and Common Lisp to both be "Lisp" — they spoke of Scheme being a "development in Lisp". In fact, they specifically cited two Scheme features that were not adopted for Common Lisp as being "major contributions of Scheme". Also, they coined the term "Lisp₁" to refer to Scheme and related languages; two of them went off and co-authored the Scheme spec, saying that Scheme was "a dialect of Lisp"; and they cited examples from Scheme when they were surveying syntactic differences between "Lisps" in their other papers. Also, they wrote papers explaining that they considered "Lisp" to refer to the family of languages, not to any one language (but occasionally it might be convenient for political reasons to exclude Scheme and Dylan from the definition of "Lisp" to avoid pressure to combine Scheme and Common Lisp into a single ANSI standard). I don't know how much clearer it can get.
You seem to be reasoning circularly; much of your reasoning to support your apparent claim that these folks are using "Lisp" to mean "Common Lisp" rests on the presumption that they are using "Lisp" to mean "Common Lisp", despite its manifest incongruence with the texts you are attempting to impose these hermeneutics on.
"Lisp" does not and should not be used to mean "Common Lisp", though such metonymy is understandable in the context discussion and documentation of a particular dialect.
When I use the word "Lisp", I'm strictly referring to a family of languages ... that feature lists terminated by a symbol nil, which is also the Boolean false, those lists being made of mutable cons cells acessed by car, cdr, rplaca and so on.
Furthermore, none of the Scheme-influenced features in CL are from anything but he late 1970's Scheme. The lexical scoping is pretty much, pun intended, the extent of it.
Furthermore, the wording later in the paragraph is in the past tense: "The major contributions of Scheme were, ...".
That's it; Scheme was done contributing to Lisp by the end of the late 1970's. We took some of the good bits, thank you very much!
> You'd think they would have mentioned this if they thought that early versions of Scheme were Lisps while later versions.
Stated explicitly in such terms, it would kind of be an inappropriate rant with respect to the topic of that section, and in the context of the whole document. (That sort of extended section on history is not that common in ANSI and ISO language standards to begin with.)
You'd also think, by the same token, that if they thought Scheme continued to evolve as a Lisp, rather than something else, that they would crib newer features from Scheme. Like for instance, making the empty list a Boolean true value, and introducing a dedicated false constant.