[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


    Date: Sun, 13 Nov 88 20:04:56 PST
    From: Jon L White <jonl@lucid.com>

    re: Could you forward this doubly nested example to me, so that the Genera
	reader >will< be able to parse it in future releases?

    I think it is ``(,@,@x).  Believe it or not, one can "crank" the rules
    of CLtL p349-50 to come up with a meaning for it.  
Once you mention the example, it's not hard to believe at all.

The bug in the Symbolics implementation is that it tries to optimize
`(,@<form>) to just be <form>.  This isn't legal when you are inside
another backquote, and <form> might have a ",." or a ",@" that might
have to be further expanded.

I've submitted a patch.
							Lucid, Xerox, and
    VAXLISP get it "right" according to that meaning.  Several others generate
    a read-time error (which is what I think Symbolics 7.0 does).  I've seen
    some that parse it without error but subsquently generate wrong code.

    As to whether this was ever used in naturally occurring code -- I dunno.
    Ask QUUX (Guy L Steele).

    -- JonL --

    P.S.: When trying to work out an example using the rules of CLtL p340-50, 
	  it's important to remember that the square-brackets are part of the 
	  syntax of that crufty litle production-rule language. They are not