Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!news.mathworks.com!newsfeed.internetmci.com!in3.uu.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!uknet!newsfeed.ed.ac.uk!edcogsci!jeff
From: jeff@cogsci.ed.ac.uk (Jeff Dalton)
Subject: Re: EVAL Implementations
X-Nntp-Posting-Host: pitcairn
Message-ID: <Dwr8u5.MMq@cogsci.ed.ac.uk>
Sender: cnews@cogsci.ed.ac.uk (C News Software)
Organization: HCRC, University of Edinburgh
References: <4va9a7$ff4@mercury.mcs.com> <4vahg9$dcf@tools.bbnplanet.com> <4vd30q$1b5@Venus.mcs.com>
Date: Mon, 26 Aug 1996 17:06:05 GMT
Lines: 75

In article <4vd30q$1b5@Venus.mcs.com> munyer@MCS.COM (Robert Munyer) writes:
>In article <4vahg9$dcf@tools.bbnplanet.com>,
>
>[*] Actually I might be confused about the authorship of the
>HyperSpec.  It is not clear to me exactly how much difference there
>is between the HyperSpec and the ANSI standard.  The HyperSpec
>itself only claims that it is "derived from" the ANSI document, so
>I thought it might include some original material not from ANSI
>(just as Franz Inc.'s CLtR was "derived from" CLtL, but included
>original material authored by Franz).

I think it's pretty clear how the HyperSpec is related to the AMSI
standard.  It's basically the text of the standard put into HTML
(which alone would make it _derived_), plus the text of cleanup
issues.  It was not derived from the standard in the sense that
Franz Inc's CLtR was derived from CLtL.

Now, if someone claims that the ANSI spec, or the HyperSpec, is
inconsistent with CLtL 2nd edition, that's not very surprising in
itself.  CLtL 2 is, in effect, a snapshot of how things stood
at a certain point during the development of the standard.
The ANSI standard reflects a later point (indeed, the final
point, for that standard) and is (at least largely) separately
written text.

But is the "inconsistency" being discussed here among the actual
inconsistencies between CLtL 2 and the standard or HyperSpec?
If someone wants to show it is a real inconsistency, then, given
that the claim seems to be controversial, I wish they would do
it as follows:

  Say something like "CLtL 2 says the following is true:", followed
  by some text, which I'll call T.  Then present the evidence that
  CLtL 2 says T is true.  Finally, present the evidence that the
  standard (or the HyperSpec) says T is false.

When doing this, equivocation is _not_ allowed.  You're not to
give any word in T one meaning when arguing that CLtL 2 says T
is true and a different meaning when arguing that the standard
or Spec says T is false.

Another claim we've seen in this discussion is that Common Lisp
does not define semantics for global variables that have not been
introduced by defvar (or something like that).  If so, it's an
oversight and, in effect, an error in the standard.

To perhaps save time, let me make it clear that the only thing that
would convince me (as a former member of X3J13, etc) that it was
not an oversight (if the standard somehow fails to specify the
semantics) would be an explicit statement in the standard
that the semantics was not defined or an explicit startement in
something passed by X3J13 (and not modified or overturned later
on) that said the semantics was not defined.

>> The HyperSpec makes no attempt to be consistent with CLtL2.
>
>Now you have hit the nail on the head: I think this is the root of
>all the confusion.  I wasn't saying this inconsistency is bad or
>even unnecessary -- I was just saying that it's hard to get everyone
>using the exact same definitions for certain words.  I think that's
>probably the reason that Erik and I are having such difficulty
>understanding each other.  It's not surprising that the two of us
>have trouble communicating, since even CLtL2 and the HyperSpec
>can't agree with each other on the exact meanings of these words.

I would like to see an argument for this along the lines I
outlined above (though, clearly, the meaning of "variable"
cannot be kept fixed since it's what's in dispute).
Bear in mind that a document can use a word in more than one
sense.

-- jd



