Source location tracking will be the easier thing to fix than to re-re-implement backquote.
In Common Lisp we have the luxury of altering the pretty-printer, and such luxury makes the suggestion to follow Scheme somewhat naive, when Scheme does not (at least in the spec) provide for an extensible pretty-printer.
In CLISP, UNQUOTE is indeed a list, and consequently it is easy to create a list of data that by accident prints unreadably using only the builtin PPRINT-FILL, let alone user-written format-control strings.
Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
[1]> (pprint-fill *standard-output* ''(foo bar system::backquote x what))
(QUOTE (FOO BAR . `X))
The symbol WHAT has disappeared. This is not a jab at CLISP - it is an indicator of the difficulty in getting everything right, because as noted in the earlier discussions on sbcl-devel, CLISP is probably the only other open source implementation that gets as many things right as does the new SBCL implementation. (Not having also checked commercial implementations)
Source location tracking will be the easier thing to fix than to re-re-implement backquote.
In Common Lisp we have the luxury of altering the pretty-printer, and such luxury makes the suggestion to follow Scheme somewhat naive, when Scheme does not (at least in the spec) provide for an extensible pretty-printer.
In CLISP, UNQUOTE is indeed a list, and consequently it is easy to create a list of data that by accident prints unreadably using only the builtin PPRINT-FILL, let alone user-written format-control strings.
Welcome to GNU CLISP 2.49 (2010-07-07) <http:// clisp.cons. org/>
[1]> (pprint-fill *standard-output* ''(foo bar system::backquote x what))
(QUOTE (FOO BAR . `X))
The symbol WHAT has disappeared. This is not a jab at CLISP - it is an indicator of the difficulty in getting everything right, because as noted in the earlier discussions on sbcl-devel, CLISP is probably the only other open source implementation that gets as many things right as does the new SBCL implementation. (Not having also checked commercial implementations)