GNU bug report logs - #61281
“`(a \, b)” equals to “`(a . ,b)”

Previous Next

Package: emacs;

Reported by: Xie Shynur <one.last.kiss <at> outlook.com>

Date: Sat, 4 Feb 2023 23:29:02 UTC

Severity: normal

Full log


Message #80 received at 61281 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Andreas Schwab <schwab <at> suse.de>, Michael Heerdegen
 <michael_heerdegen <at> web.de>
Cc: Xie Shynur <one.last.kiss <at> outlook.com>,
 "61281 <at> debbugs.gnu.org" <61281 <at> debbugs.gnu.org>
Subject: RE: [External] : Re: bug#61281: “`(a \,
  b)” equals to “`(a . , b)”
Date: Mon, 6 Feb 2023 16:43:32 +0000
> > S-exps are defined recursively.  ",X" is read syntax of a valid s-exp,
> > and I don't think we want to make the reader raise an error for it.
> 
> FWIW, clisp generates an error if the comma occurs outside of backquote.
> If you quote the comma, it is treated as an ordinary symbol character.
> 
> $ clisp -q -x ',X'
> *** - READ: comma is illegal outside of backquote
> $ clisp -q -x '\,X'
> *** - SYSTEM::READ-EVAL-PRINT: variable |,X| has no value
> 
> $ clisp -q -x '`\,X'
> |,X|

Thanks for that info, confirming what clisp does.
Those are all what I'd expect/hope: the \,x
inside the backquote sexp is read as the symbol
|,x|.

The Elisp question (bug) is really only about a
_bare_ escaped comma, not one that's immediately
followed by symbol chars (e.g. x).

E.g., what do these give?

$ clisp -q -x '`\,'
$ clisp -q -x '`(\, x)'




This bug report was last modified 2 years and 127 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.