Subject: bug#15538: 24.3; Incorrect Expansion of Nested Backquote

From: Stefan Monnier <[email-masked]>
Date: Tue, 08 Oct 2013 00:30:45 -0400

> ``(,,@q)
> (\` ((\, r s)))
> ((3 5))                                 ; Incorrect: This should be ((3 5)
> (4 6))

Indeed, it's incorrect, but I think the intention of the current code is
to consider the above expression as invalid, so the error is to return
a value at step 2 (ignoring the second argument `s' to the unquote)
instead of signalling an error.

If you really want that result, you can do

 ``(,@(list ,@q))

> ``(,@,@q)

And here, you'd have to use

  ``(,@(append ,@q))

I installed a patch into trunk which catches the above problems and
signals an error if/when encountering such situations.
Thank you,

        Stefan