This isn't quite a regression - it's yet another visible failure mode instead of silent failure.
Rolling back to one change prior to mine, here is the output for your example:

'```(,',',plet/fast ,',kernel ,@body) ; input
``,',',PLET/FAST ; output

a slightly reduced example also drops its tail in the older code and crashes in the newer code.
'```(,,body ,',',foo) ; input
``,,BODY ; output

I'll look into it.  Btw CMUCL get these right, and CLISP gets these examples right by a much simpler approach that backquoted forms retain their abstract syntax tree as read.  Maybe we should do the same. I don't see why internalizing the expression and inverting it with extremely obfuscated code is any better than just having the readmacro wrap the whole form as read in a real macro, like (backquote (backquote (backquote (list (comma ...))))) instead of having to reverse-engineer (backq-list* ...)

On Wed, Apr 9, 2014 at 8:17 PM, Jan Moringen <> wrote:

I accidentally found a regression which can be triggered by:

        (princ '```(,',',plet/fast ,',kernel ,@body))

(This is reduced from a macro in an older lparallel version)

I bisected it to:

        b0e67df8b369203e1cd0abe71a04f93285798695 is the first bad commit
        commit b0e67df8b369203e1cd0abe71a04f93285798695
        Author: Douglas Katzman <>
        Date:   Fri Jan 31 22:41:36 2014 -0500

            Fix pprinter bug reported by Didier Verna

        :040000 040000 25bc18fa3623ff2f4fb71c1e40d96db619bb2edf e558714f91659a4bb822d3c95f972670a6dd72e5 M      src
        :040000 040000 2612a07268b1e7114dfa6ef30b4e885be07d6ae2 b0796e128785766932148c72c2b0d77e4921e540 M      tests

Kind regards,

Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment
Start a new project now. Try Jenkins in the cloud.
Sbcl-devel mailing list