From: Kenneth Tilton on
Kaz Kylheku wrote:
> Idiot, there is no conflict there. Something can be a form, /and/ it can be
> wrapped in a funcallable closure (for lexical transparency).

Ah, sweet reminder of the halcyon days of c.l.l!

kt


--

http://thelaughingstockatpngs.com/
http://www.facebook.com/pages/The-Laughingstock/115923141782?ref=nf
From: Ron Garret on
In article <20091013103919.775(a)gmail.com>,
Kaz Kylheku <kkylheku(a)gmail.com> wrote:

> On 2009-10-12, Madhu <enometh(a)meer.net> wrote:
> >
> > * Vassil Nikolov <snzy6nh2mbg.fsf(a)luna.vassil.nikolov.name> :
> > Wrote on Mon, 12 Oct 2009 01:49:55 -0400:
> >
> >| On Sun, 11 Oct 2009 22:14:59 -0700 (PDT), Scott Burson
> >| <fset.slb(a)gmail.com> said:
> >|> ...
> >|> Unfortunately, none of the three implementations
> >|> I just tried (Allegro, LispWorks, and CMUCL) agree with us.
> >|
> >| CLISP, though:
> >
> > This is as usual a non-conforming bug in CLISP, I wouldnt be surprised
> > if SBCL also took a similar implementation.
> >
> > Every description related to the slot-initforms indicates they are FORMS
> > inserted into the description of the structure being defined. Not some
> > funcallable closure.
>
> Idiot, there is no conflict there. Something can be a form, /and/ it can be
> wrapped in a funcallable closure (for lexical transparency).

Although I'm on your side in this debate, you are mistaken on two
counts. First, there is in fact a conflict because there are two
lexical environments in play when using the :include construct and the
spec does not specify which one is meant to be used. And second...

> Initforms are understood to be evaluated in their original lexical
> environment,
> not in the environment where the constructor is being called.

That is clearly not true. A majority of extant implementations do it
what you and I would consider the "wrong" way.

> This is not only true for DEFSTRUCT but also for DEFCLASS.

There is no :include construct for DEFCLASS (and hence no corresponding
ambiguous specification) so I don't see how this is relevant.

> A form is an ``any object meant to be evaluated'', not ``any object meant to
> be
> evaluated in the lexical environment of the point where the evaluation is
> invoked''.

Again, this is not true. The body of a (non-hygienic) macro consists of
forms that are evaluated in a lexical environment other than the one in
which the macro is evaluated. (This is in fact the definition of
non-hygienic.) So Madhu's position, while wrong IMHO, is defensible.

BTW, Dan Weinreb, a member of the ANSI committee, weighed in on another
list where this topic was raised with the following:

"Regarding the former, I think I can say pretty reliably
that during the design of CL, nobody thought about
this.  So the spec is not written in such a way as to
give unambiguous guidance about what these forms
ought to do."

rg
From: Ron Garret on
In article <m3tyy3v6p3.fsf(a)moon.robolove.meer.net>,
Madhu <enometh(a)meer.net> wrote:

> * Ron Garret Wrote on Tue, 13 Oct 2009 00:02:19 -0700:
> |
> |> I believe any alleged ambiguity in the spec is amply resolved in the
> |> remaining wording.
> |
> | Just because you are blind to the ambiguity does not mean it isn't
> | there.
>
> Just because you keep pointing out potential for ambiguity doesnt mean
> that it has not been resolved.

That is true. But when I claim that there is ambiguity I don't merely
ask you take my word for it, I offer arguments and evidence in support
of my position:

1. The structure of the English language. There are two possible
antecedents for the phrase "the lexical environment in which the
defstruct form appears" because there are two DEFSTRUCT forms in play.
That is the very definition of ambiguity.

2. The fact that different Lisp implementations implement this in
different ways.

3. The fact that experienced Lisp programmers, not just newbies (and
not just me), are disagreeing with you.

4. The fact that your interpretation of the spec violates the principle
of referential opacity of included structure definitions, which would
make it a bad design.

5. The fact that at least one member of the ANSI committee (Dan
Weinreb) has gone on the record to say that the spec is ambiguous.

Against this, you offer bogus arguments (all of which have so far been
debunked) and ad hominem attacks. So while your position might be
defensible (even though it's wrong), I have to say you aren't defending
it very well.

rg
From: Madhu on

* Ron Garret <rNOSPAMon-454508.18445313102009(a)news.albasani.net> :
Wrote on Tue, 13 Oct 2009 18:44:53 -0700:

|> Just because you keep pointing out potential for ambiguity doesnt mean
|> that it has not been resolved.
|
| That is true. But when I claim that there is ambiguity I don't merely
| ask you take my word for it, I offer arguments and evidence in support
| of my position:
|
| 1. The structure of the English language. There are two possible
| antecedents for the phrase "the lexical environment in which the
| defstruct form appears" because there are two DEFSTRUCT forms in play.
| That is the very definition of ambiguity.

There is however only one DEFSTRUCT form which is being defined, this
one includes the other. The resolution of the ambiguity is in realizing
that the lexical environment in question is this one.

| 2. The fact that different Lisp implementations implement this in
| different ways.

Thankfully!

| 5. The fact that at least one member of the ANSI committee (Dan
| Weinreb) has gone on the record to say that the spec is ambiguous.

I haven't seen Weinreb post on CLL, but it is clear where he stands on
the scheme personality test.

I also see Daniel Weinreb as a highly vested member of the community
(not necessarily for the good of Commom Lisp) and would advice people
take his recommendations with a modicum of salt.

--
Madhu
From: Ron Garret on
In article <m3pr8qvisx.fsf(a)moon.robolove.meer.net>,
Madhu <enometh(a)meer.net> wrote:

> * Ron Garret <rNOSPAMon-454508.18445313102009(a)news.albasani.net> :
> Wrote on Tue, 13 Oct 2009 18:44:53 -0700:
>
> |> Just because you keep pointing out potential for ambiguity doesnt mean
> |> that it has not been resolved.
> |
> | That is true. But when I claim that there is ambiguity I don't merely
> | ask you take my word for it, I offer arguments and evidence in support
> | of my position:
> |
> | 1. The structure of the English language. There are two possible
> | antecedents for the phrase "the lexical environment in which the
> | defstruct form appears" because there are two DEFSTRUCT forms in play.
> | That is the very definition of ambiguity.
>
> There is however only one DEFSTRUCT form which is being defined, this
> one includes the other. The resolution of the ambiguity is in realizing
> that the lexical environment in question is this one.

But that's not evidence, that's simply restating your position using
different words. Look, I can use the exact same technique to make the
opposite argument:

"There is only one DEFSTRUCT form in which the initform appears.
Because of the meaning of the word "lexical" (i.e. being defined by the
structure of the code and not what happens at run-time), the "lexical
environment" in question must be this one."

Both your argument and this one are defensible. Hence the situation is,
by definition, ambiguous.

> | 2. The fact that different Lisp implementations implement this in
> | different ways.
>
> Thankfully!

Huh? Why "thankfully"? On your view, CLisp is buggy. That does not
seem to me like something you (or anyone else for that matter) ought to
be thankful for.

> | 5. The fact that at least one member of the ANSI committee (Dan
> | Weinreb) has gone on the record to say that the spec is ambiguous.
>
> I haven't seen Weinreb post on CLL

That's because Weinreb hasn't posted on CLL. This may come as a shock
to you, but CLL is not the center of the universe. It is not even the
center of the Lisp universe.

> but it is clear where he stands on the scheme personality test.

How fortunate for you that when defending an indefensible position one
can always fall back on ad hominem attacks. Otherwise you'd have
nothing left to say.

> I also see Daniel Weinreb as a highly vested member of the community
> (not necessarily for the good of Commom Lisp) and would advice people
> take his recommendations with a modicum of salt.

He wasn't making a recommendation, he was stating a historical fact.
You really do seem to have a lot of trouble with basic rhetorical
concepts.

rg