From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Old-style backquote and ,@ in *.by files Date: Mon, 09 Oct 2017 20:41:41 -0400 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1507596121 22251 195.159.176.226 (10 Oct 2017 00:42:01 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 10 Oct 2017 00:42:01 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: David Ponce Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 10 02:41:56 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e1icH-0004I1-Gd for ged-emacs-devel@m.gmane.org; Tue, 10 Oct 2017 02:41:49 +0200 Original-Received: from localhost ([::1]:60448 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e1icO-000076-Hv for ged-emacs-devel@m.gmane.org; Mon, 09 Oct 2017 20:41:56 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55770) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e1icI-00005W-4T for emacs-devel@gnu.org; Mon, 09 Oct 2017 20:41:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e1icD-0005Eu-6Q for emacs-devel@gnu.org; Mon, 09 Oct 2017 20:41:50 -0400 Original-Received: from pmta11.teksavvy.com ([76.10.157.34]:20512) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1e1icD-0005Ea-02 for emacs-devel@gnu.org; Mon, 09 Oct 2017 20:41:45 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2EATwAmFtxZ/5+ESC1cHQEFAQsBg10lP?= =?us-ascii?q?24niQeEeZANhA8BlicKEwiBE4QNhDxCFQECAQEBAQEBAQNoKIQCW4E7KCcmGDG?= =?us-ascii?q?KQ6pAIgKLNYMtggKGL4sNIAWRQI91h16PHVuIXSgNhwqRcwGDZoE5NSNCTDIhC?= =?us-ascii?q?DJJhEpQHIIDJDaIBgEBAQ?= X-IPAS-Result: =?us-ascii?q?A2EATwAmFtxZ/5+ESC1cHQEFAQsBg10lP24niQeEeZANhA8?= =?us-ascii?q?BlicKEwiBE4QNhDxCFQECAQEBAQEBAQNoKIQCW4E7KCcmGDGKQ6pAIgKLNYMtg?= =?us-ascii?q?gKGL4sNIAWRQI91h16PHVuIXSgNhwqRcwGDZoE5NSNCTDIhCDJJhEpQHIIDJDa?= =?us-ascii?q?IBgEBAQ?= X-IronPort-AV: E=Sophos;i="5.42,502,1500955200"; d="scan'208";a="6108689" Original-Received: from unknown (HELO ceviche.home) ([45.72.132.159]) by smtp.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Oct 2017 20:41:42 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id 00AB0662CA; Mon, 9 Oct 2017 20:41:41 -0400 (EDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 76.10.157.34 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:219319 Archived-At: Hi, We're in the process of getting rid of support for old-style backquote (of the form (` e) and (, e)) and we bumped into the following situation (which triggered some signal on our side): In admin/grammars/make.by (and other grammar files) we find things like: Makefile : bol newline (nil) | bol variable ( ,@$2 ) as well as targets: target opt-whitespace targets ( (car ,$1) (car ,@$3) ) But in Emacs-25, the above "(car ,@$3)" was read assuming the ,@ is a new-style unquote, i.e. it's read as "(car (\,@ $3))", whereas the earlier "( ,@$2 )" was read as "(\,@$2)", i.e. as a single list containing a funny symbol named ",@$2". I think this was a bug, which would be fixed by dropping support for old-style backquotes, so that "( ,@$2 )" would now be read as "((\,@ $2))". But I'm not sufficiently familiar with the bovine code to be sure (especially since misinterpreting "( ,@$2 )" as "(\,@$2)" would likely have been noticed, so either it's really what was intended, or else there's presumably somewhere some hack that tries to work around this quirk). In bovine-grammar-expand-form, I see: (when (and (>= emacs-major-version 24) (listp first) (or (equal (car first) '\,) (equal (car first) '\,@))) (if (listp (cadr first)) (setq form (append (cdr first) form) first (car first)) (setq first (intern (concat (symbol-name (car first)) (symbol-name (cadr first))))))) which makes me think that maybe "(\,@$2)" is indeed what was intended, and this code is designed to turn "(car (\,@ $3))" into "(car \,@$3)", so that both ways to read work (the new-style reading is transformed into the old-style reading). Could you shine some light for us? Stefan