actually I stand corrected - CMUCL silently gets these wrong but makes you think it gets them right, only in so far as eval'ing the hairy example once works, but printing that look isomorphic to a different form that it is not equivalent to.
 
So only CLISP gets it right and maybe we should follow that model.


On Wed, Apr 9, 2014 at 10:34 PM, Douglas Katzman <dougk@google.com> wrote:
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 <jmoringe@techfak.uni-bielefeld.de> wrote:
Hi,

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 <dougk@google.com>
        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,
Jan


------------------------------------------------------------------------------
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.
http://p.sf.net/sfu/13600_Cloudbees
_______________________________________________
Sbcl-devel mailing list
Sbcl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-devel