From unknown Fri Aug 22 01:04:06 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#28759 <28759@debbugs.gnu.org> To: bug#28759 <28759@debbugs.gnu.org> Subject: Status: 26.0.60; Bovine apparently generates Elisp code with oldstyle backquotes Reply-To: bug#28759 <28759@debbugs.gnu.org> Date: Fri, 22 Aug 2025 08:04:06 +0000 retitle 28759 26.0.60; Bovine apparently generates Elisp code with oldstyle= backquotes reassign 28759 emacs submitter 28759 Philipp severity 28759 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 09 10:19:24 2017 Received: (at submit) by debbugs.gnu.org; 9 Oct 2017 14:19:24 +0000 Received: from localhost ([127.0.0.1]:58422 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e1Ytu-0004GU-7z for submit@debbugs.gnu.org; Mon, 09 Oct 2017 10:19:23 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34593) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e1Ytr-0004GF-5t for submit@debbugs.gnu.org; Mon, 09 Oct 2017 10:19:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e1Ytj-0002qQ-BS for submit@debbugs.gnu.org; Mon, 09 Oct 2017 10:19:14 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_50, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:46467) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e1Ytj-0002qF-7x for submit@debbugs.gnu.org; Mon, 09 Oct 2017 10:19:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53772) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e1Ytg-0007AV-2v for bug-gnu-emacs@gnu.org; Mon, 09 Oct 2017 10:19:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e1Ytd-0002my-E0 for bug-gnu-emacs@gnu.org; Mon, 09 Oct 2017 10:19:08 -0400 Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:52676) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1e1Ytd-0002ma-3M for bug-gnu-emacs@gnu.org; Mon, 09 Oct 2017 10:19:05 -0400 Received: by mail-wm0-x22a.google.com with SMTP id k4so23948976wmc.1 for ; Mon, 09 Oct 2017 07:19:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=boIdEIRP47EX+Mmmhjei5yWi9TMB6EJJOPZdMgG1d6o=; b=Ig+CL+JPEAZsauigc2Rw9mQjHJcRazDOQwysV+oC0OQgKF1ZyFx956lrg9dVP165sY nVkYIy+dhH4BTt+xKO8LyVlxV4yuYyNPf7uAsVGnGnnemc7dnKdPfCq9C7NQejc7QNwh x8tdzc32I9z97B1g2tBqWN8kJph3OFqfutXiMUHv0Vh/+tyz8m+6KPfn3OVa12gIZkZK qrSv5ZgJSr5f4G0HCRS5/db8u2m7l6KsVQF+yICWGDebHK72VLJZa7Nf7x0FqE8uhZ6y 8mBHz+f1DMgBV8vfdJv0Abw7r5v8cfEqJLeX8ox44ixn2QUx1FpejUGoDvdSefmz5z6T P1aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=boIdEIRP47EX+Mmmhjei5yWi9TMB6EJJOPZdMgG1d6o=; b=EDJXOHngHHXV9185VxxIJgFDCffCViOblIs8mHnCTUS9Z9nzZ9nw2wZ1BP58455+C2 eHGC6pShnp11/qYCSIYfMq5HT2o7uC1uhjaMVOYAyIF3CfshIBs8LPVCqO0TDzgftK/8 rB6yCPP70j3ExLf71MNddt1uLFQq98T5WRPEV2TCZ6Wp5pmV08K0R4gtp/Z7kGGIxeq6 s0HSfFp1yyESE3RU/rmdExmOLK2OWSafw2foLylkBZLcoT7uFP261gqSmNC64KG/e3Fe Hb8ErfgkMjGSC+Wzm2fTSswDPuvThsC+mx7+gokbgw+AHSOMAAL/q4A+xEfo9ncC2cgo AH4w== X-Gm-Message-State: AMCzsaWI3+/YLI1l1bpeTeUSSg0TM7LTmtJYRsUzGzrSJw221Y3WX6Uj SgH0pUfvCBwPkKn09/gaeOSPbdF/ X-Google-Smtp-Source: AOwi7QDqAMJPIuvEO2Sg26KLsOz2+IE8ntwEpsscbZvsX5pDVl6SVGAQiZQWHElK/AyIIgTlErJxSA== X-Received: by 10.28.138.202 with SMTP id m193mr9888202wmd.63.1507558743138; Mon, 09 Oct 2017 07:19:03 -0700 (PDT) Received: from a.muc.corp.google.com ([2a00:79e0:15:4:bfda:710c:4a38:a674]) by smtp.gmail.com with ESMTPSA id o24sm7123864wmi.39.2017.10.09.07.19.02 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 09 Oct 2017 07:19:02 -0700 (PDT) From: Philipp To: bug-gnu-emacs@gnu.org Subject: 26.0.60; Bovine apparently generates Elisp code with oldstyle backquotes Date: Mon, 09 Oct 2017 16:19:01 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -3.8 (---) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.8 (---) See https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00313.html The backtrace I got was $ (cd admin/grammars && EMACSLOADPATH=3D "../../src/emacs" -batch --no-site= -file --no-site-lisp -eval '(setq debug-on-error t)' -l semantic/bovine/gra= mmar -f bovine-batch-make-parser -o "../../lisp/cedet/semantic/bovine/make= -by.el" make.by) ../../lisp/emacs-lisp/eieio.el: =E2=80=98eieio-object-name-string=E2=80=99 = is an obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2= =80=99 instead. ../../lisp/emacs-lisp/eieio.el: =E2=80=98object-print=E2=80=99 is an obsole= te generic function (as of 26.1); use =E2=80=98cl-print-object=E2=80=99 ins= tead. ../../lisp/emacs-lisp/eieio-base.el: =E2=80=98eieio-object-name-string=E2= =80=99 is an obsolete generic function (as of 25.1); use =E2=80=98eieio-nam= ed=E2=80=99 instead. Debugger entered--Lisp error: (error "Loading =E2=80=98nil=E2=80=99: old-st= yle backquotes detected!") read("( ,@$2 )") (let ((sexp (read textform))) (insert "\n") (cond ((eq (car sexp) 'EXPAND= ) (insert ",(lambda (vals start end)") (bovine-grammar-expand-form (apply (= cdr (assq 'EXPAND bovine--grammar-macros)) (cdr sexp)) quotemode t)) ((and = (listp (car sexp)) (eq (car (car sexp)) 'EVAL))) (t (insert ",(semantic-lam= bda") (bovine-grammar-expand-form sexp quotemode))) (insert ")\n")) (if (string=3D "" textform) nil (let ((sexp (read textform))) (insert "\n= ") (cond ((eq (car sexp) 'EXPAND) (insert ",(lambda (vals start end)") (bov= ine-grammar-expand-form (apply (cdr (assq 'EXPAND bovine--grammar-macros)) = (cdr sexp)) quotemode t)) ((and (listp (car sexp)) (eq (car (car sexp)) 'EV= AL))) (t (insert ",(semantic-lambda") (bovine-grammar-expand-form sexp quot= emode))) (insert ")\n"))) bovine-grammar-expand-action("( ,@$2 )" backquote) (if actn (bovine-grammar-expand-action actn quotemode)) (while rules (setq items (semantic-tag-get-attribute (car rules) :value) = prec (semantic-tag-get-attribute (car rules) :prec) actn (semantic-tag-get-= attribute (car rules) :expr) rules (cdr rules)) (insert "\n(") (if (null it= ems) (insert ";;EMPTY" (if actn "" "\n")) (while items (setq item (car item= s) items (cdr items)) (if (consp item) (message "Mid-rule action %S ignored= " item) (or (char-equal (char-before) 40) (insert "\n")) (cond ((member ite= m '("bovine-toplevel" "bovine-inner-scope")) (error "`%s' is a reserved int= ernal name" item)) ((setq tag (semantic-find-first-tag-by-name item tags) t= ype (semantic-tag-get-attribute tag :type)) (insert type) (if (setq regex (= semantic-tag-get-attribute tag :value)) (insert (format "\n%S" regex)))) (t= (insert (semantic-grammar-item-text item))))))) (if prec (message "%%prec = %S ignored" prec)) (if actn (bovine-grammar-expand-action actn quotemode)) = (insert ")")) (while nterms (setq nterm (car nterms) rules (semantic-tag-components-sem= antic-grammar-mode nterm) nterm (semantic-tag-name nterm) nterms (cdr nterm= s)) (if (member nterm '("bovine-toplevel" "bovine-inner-scope")) (progn (er= ror "`%s' is a reserved internal name" nterm))) (insert "\n(" nterm) (while= rules (setq items (semantic-tag-get-attribute (car rules) :value) prec (se= mantic-tag-get-attribute (car rules) :prec) actn (semantic-tag-get-attribut= e (car rules) :expr) rules (cdr rules)) (insert "\n(") (if (null items) (in= sert ";;EMPTY" (if actn "" "\n")) (while items (setq item (car items) items= (cdr items)) (if (consp item) (message "Mid-rule action %S ignored" item) = (or (char-equal (char-before) 40) (insert "\n")) (cond ((member item '("bov= ine-toplevel" "bovine-inner-scope")) (error "`%s' is a reserved internal na= me" item)) ((setq tag (semantic-find-first-tag-by-name item tags) type (sem= antic-tag-get-attribute tag :type)) (insert type) (if (setq regex (semantic= -tag-get-attribute tag :value)) (insert (format "\n%S" regex)))) (t (insert= (semantic-grammar-item-text item))))))) (if prec (message "%%prec %S ignor= ed" prec)) (if actn (bovine-grammar-expand-action actn quotemode)) (insert = ")")) (insert "\n) ;; end " nterm "\n")) (progn (erase-buffer) (insert "`(") (insert "\n(bovine-toplevel \n(" star= t ")\n) ;; end bovine-toplevel\n") (if scopestart (progn (insert "\n(bovine= -inner-scope \n(" scopestart ")\n) ;; end bovine-inner-scope\n"))) (while n= terms (setq nterm (car nterms) rules (semantic-tag-components-semantic-gram= mar-mode nterm) nterm (semantic-tag-name nterm) nterms (cdr nterms)) (if (m= ember nterm '("bovine-toplevel" "bovine-inner-scope")) (progn (error "`%s' = is a reserved internal name" nterm))) (insert "\n(" nterm) (while rules (se= tq items (semantic-tag-get-attribute (car rules) :value) prec (semantic-tag= -get-attribute (car rules) :prec) actn (semantic-tag-get-attribute (car rul= es) :expr) rules (cdr rules)) (insert "\n(") (if (null items) (insert ";;EM= PTY" (if actn "" "\n")) (while items (setq item (car items) items (cdr item= s)) (if (consp item) (message "Mid-rule action %S ignored" item) (or (char-= equal (char-before) 40) (insert "\n")) (cond ((member item '("bovine-toplev= el" "bovine-inner-scope")) (error "`%s' is a reserved internal name" item))= ((setq tag (semantic-find-first-tag-by-name item tags) type (semantic-tag-= get-attribute tag :type)) (insert type) (if (setq regex (semantic-tag-get-a= ttribute tag :value)) (insert (format "\n%S" regex)))) (t (insert (semantic= -grammar-item-text item))))))) (if prec (message "%%prec %S ignored" prec))= (if actn (bovine-grammar-expand-action actn quotemode)) (insert ")")) (ins= ert "\n) ;; end " nterm "\n")) (insert ")\n") (buffer-string)) (unwind-protect (progn (erase-buffer) (insert "`(") (insert "\n(bovine-to= plevel \n(" start ")\n) ;; end bovine-toplevel\n") (if scopestart (progn (i= nsert "\n(bovine-inner-scope \n(" scopestart ")\n) ;; end bovine-inner-scop= e\n"))) (while nterms (setq nterm (car nterms) rules (semantic-tag-componen= ts-semantic-grammar-mode nterm) nterm (semantic-tag-name nterm) nterms (cdr= nterms)) (if (member nterm '("bovine-toplevel" "bovine-inner-scope")) (pro= gn (error "`%s' is a reserved internal name" nterm))) (insert "\n(" nterm) = (while rules (setq items (semantic-tag-get-attribute (car rules) :value) pr= ec (semantic-tag-get-attribute (car rules) :prec) actn (semantic-tag-get-at= tribute (car rules) :expr) rules (cdr rules)) (insert "\n(") (if (null item= s) (insert ";;EMPTY" (if actn "" "\n")) (while items (setq item (car items)= items (cdr items)) (if (consp item) (message "Mid-rule action %S ignored" = item) (or (char-equal (char-before) 40) (insert "\n")) (cond ((member item = '("bovine-toplevel" "bovine-inner-scope")) (error "`%s' is a reserved inter= nal name" item)) ((setq tag (semantic-find-first-tag-by-name item tags) typ= e (semantic-tag-get-attribute tag :type)) (insert type) (if (setq regex (se= mantic-tag-get-attribute tag :value)) (insert (format "\n%S" regex)))) (t (= insert (semantic-grammar-item-text item))))))) (if prec (message "%%prec %S= ignored" prec)) (if actn (bovine-grammar-expand-action actn quotemode)) (i= nsert ")")) (insert "\n) ;; end " nterm "\n")) (insert ")\n") (buffer-strin= g)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (era= se-buffer) (insert "`(") (insert "\n(bovine-toplevel \n(" start ")\n) ;; en= d bovine-toplevel\n") (if scopestart (progn (insert "\n(bovine-inner-scope = \n(" scopestart ")\n) ;; end bovine-inner-scope\n"))) (while nterms (setq n= term (car nterms) rules (semantic-tag-components-semantic-grammar-mode nter= m) nterm (semantic-tag-name nterm) nterms (cdr nterms)) (if (member nterm '= ("bovine-toplevel" "bovine-inner-scope")) (progn (error "`%s' is a reserved= internal name" nterm))) (insert "\n(" nterm) (while rules (setq items (sem= antic-tag-get-attribute (car rules) :value) prec (semantic-tag-get-attribut= e (car rules) :prec) actn (semantic-tag-get-attribute (car rules) :expr) ru= les (cdr rules)) (insert "\n(") (if (null items) (insert ";;EMPTY" (if actn= "" "\n")) (while items (setq item (car items) items (cdr items)) (if (cons= p item) (message "Mid-rule action %S ignored" item) (or (char-equal (char-b= efore) 40) (insert "\n")) (cond ((member item '("bovine-toplevel" "bovine-i= nner-scope")) (error "`%s' is a reserved internal name" item)) ((setq tag (= semantic-find-first-tag-by-name item tags) type (semantic-tag-get-attribute= tag :type)) (insert type) (if (setq regex (semantic-tag-get-attribute tag = :value)) (insert (format "\n%S" regex)))) (t (insert (semantic-grammar-item= -text item))))))) (if prec (message "%%prec %S ignored" prec)) (if actn (bo= vine-grammar-expand-action actn quotemode)) (insert ")")) (insert "\n) ;; e= nd " nterm "\n")) (insert ")\n") (buffer-string)) (and (buffer-name temp-bu= ffer) (kill-buffer temp-buffer)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer= (set-buffer temp-buffer) (unwind-protect (progn (erase-buffer) (insert "`(= ") (insert "\n(bovine-toplevel \n(" start ")\n) ;; end bovine-toplevel\n") = (if scopestart (progn (insert "\n(bovine-inner-scope \n(" scopestart ")\n) = ;; end bovine-inner-scope\n"))) (while nterms (setq nterm (car nterms) rule= s (semantic-tag-components-semantic-grammar-mode nterm) nterm (semantic-tag= -name nterm) nterms (cdr nterms)) (if (member nterm '("bovine-toplevel" "bo= vine-inner-scope")) (progn (error "`%s' is a reserved internal name" nterm)= )) (insert "\n(" nterm) (while rules (setq items (semantic-tag-get-attribut= e (car rules) :value) prec (semantic-tag-get-attribute (car rules) :prec) a= ctn (semantic-tag-get-attribute (car rules) :expr) rules (cdr rules)) (inse= rt "\n(") (if (null items) (insert ";;EMPTY" (if actn "" "\n")) (while item= s (setq item (car items) items (cdr items)) (if (consp item) (message "Mid-= rule action %S ignored" item) (or (char-equal (char-before) 40) (insert "\n= ")) (cond ((member item '("bovine-toplevel" "bovine-inner-scope")) (error "= `%s' is a reserved internal name" item)) ((setq tag (semantic-find-first-ta= g-by-name item tags) type (semantic-tag-get-attribute tag :type)) (insert t= ype) (if (setq regex (semantic-tag-get-attribute tag :value)) (insert (form= at "\n%S" regex)))) (t (insert (semantic-grammar-item-text item))))))) (if = prec (message "%%prec %S ignored" prec)) (if actn (bovine-grammar-expand-ac= tion actn quotemode)) (insert ")")) (insert "\n) ;; end " nterm "\n")) (ins= ert ")\n") (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer tem= p-buffer))))) (let* ((start (semantic-grammar-start)) (scopestart (semantic-grammar-sco= pestart)) (quotemode (semantic-grammar-quotemode)) (tags (let ((tags (seman= tic-something-to-tag-table (current-buffer))) (result nil)) (while tags (an= d (eq 'token (semantic-tag-class (car tags))) (setq result (cons (car tags)= result))) (setq tags (cdr tags))) (nreverse result))) (nterms (let ((tags = (semantic-something-to-tag-table (current-buffer))) (result nil)) (while ta= gs (and (eq 'nonterminal (semantic-tag-class (car tags))) (setq result (con= s (car tags) result))) (setq tags (cdr tags))) (nreverse result))) (bovine-= -grammar-macros (semantic-grammar-macros)) nterm rules items item actn prec= tag type regex) (cond ((null nterms) (error "Bad input grammar")) (start (= if (cdr start) (message "Extra start symbols %S ignored" (cdr start))) (set= q start (symbol-name (car start))) (if (semantic-find-first-tag-by-name sta= rt nterms) nil (error "start symbol `%s' has no rule" start))) (t (setq sta= rt (semantic-tag-name (car nterms))))) (if scopestart (progn (setq scopesta= rt (symbol-name scopestart)) (if (semantic-find-first-tag-by-name scopestar= t nterms) nil (error "scopestart symbol `%s' has no rule" scopestart)))) (l= et ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (se= t-buffer temp-buffer) (unwind-protect (progn (erase-buffer) (insert "`(") (= insert "\n(bovine-toplevel \n(" start ")\n) ;; end bovine-toplevel\n") (if = scopestart (progn (insert "\n(bovine-inner-scope \n(" scopestart ")\n) ;; e= nd bovine-inner-scope\n"))) (while nterms (setq nterm (car nterms) rules (s= emantic-tag-components-semantic-grammar-mode nterm) nterm (semantic-tag-nam= e nterm) nterms (cdr nterms)) (if (member nterm '("bovine-toplevel" "bovine= -inner-scope")) (progn (error "`%s' is a reserved internal name" nterm))) (= insert "\n(" nterm) (while rules (setq items (semantic-tag-get-attribute (c= ar rules) :value) prec (semantic-tag-get-attribute (car rules) :prec) actn = (semantic-tag-get-attribute (car rules) :expr) rules (cdr rules)) (insert "= \n(") (if (null items) (insert ";;EMPTY" (if actn "" "\n")) (while items (s= etq item (car items) items (cdr items)) (if (consp item) (message "Mid-rule= action %S ignored" item) (or (char-equal (char-before) 40) (insert "\n")) = (cond ((member item '("bovine-toplevel" "bovine-inner-scope")) (error "`%s'= is a reserved internal name" item)) ((setq tag (semantic-find-first-tag-by= -name item tags) type (semantic-tag-get-attribute tag :type)) (insert type)= (if (setq regex (semantic-tag-get-attribute tag :value)) (insert (format "= \n%S" regex)))) (t (insert (semantic-grammar-item-text item))))))) (if prec= (message "%%prec %S ignored" prec)) (if actn (bovine-grammar-expand-action= actn quotemode)) (insert ")")) (insert "\n) ;; end " nterm "\n")) (insert = ")\n") (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-bu= ffer)))))) bovine-grammar-parsetable-builder() semantic-grammar-parsetable-builder() semantic-grammar-parser-data() semantic-grammar-create-package(nil t) (save-current-buffer (set-buffer (find-file-noselect infile)) (if outdir = (setq default-directory outdir)) (semantic-grammar-create-package nil t)) (let ((packagename (save-current-buffer (set-buffer (find-file-noselect i= nfile)) (if outdir (setq default-directory outdir)) (semantic-grammar-creat= e-package nil t))) lang filename copyright-end) (if (and packagename (strin= g-match "^.*/\\(.*\\)-by\\.el\\'" packagename)) (progn (setq lang (match-st= ring 1 packagename)) (setq filename (expand-file-name (concat lang "-by.el"= ) outdir)) (let ((temp-file filename) (temp-buffer (get-buffer-create (gene= rate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-curren= t-buffer (set-buffer temp-buffer) (insert-file-contents filename) (goto-cha= r (point-min)) (re-search-forward "^;; Author:") (setq copyright-end (match= -beginning 0)) (re-search-forward "^;;; Code:\n") (delete-region copyright-= end (match-end 0)) (goto-char copyright-end) (insert ";; This file is part = of GNU Emacs.\n\n;; GNU Emacs is free software: you can redistribute it and= /or modify\n;; it under the terms of the GNU General Public License as publ= ished by\n;; the Free Software Foundation, either version 3 of the License,= or\n;; (at your option) any later version.\n\n;; GNU Emacs is distributed = in the hope that it will be useful,\n;; but WITHOUT ANY WARRANTY; without e= ven the implied warranty of\n;; MERCHANTABILITY or FITNESS FOR A PARTICULAR= PURPOSE. See the\n;; GNU General Public License for more details.\n\n;; Y= ou should have received a copy of the GNU General Public License\n;; along = with GNU Emacs. If not, see .\n\n;;; Commen= tary:\n;;\n;; This file was generated from admin/grammars/" lang ".by.\n\n;= ;; Code:\n") (goto-char (point-min)) (delete-region (point-min) (line-end-p= osition)) (insert ";;; " packagename " --- Generated parser support file") = (delete-trailing-whitespace) (re-search-forward ";;; \\(.*\\) ends here") (= replace-match packagename nil nil nil 1)) (save-current-buffer (set-buffer = temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name tem= p-buffer) (kill-buffer temp-buffer))))))) bovine--make-parser-1("make.by" "../../lisp/cedet/semantic/bovine/") (let ((debug-on-error t)) (bovine--make-parser-1 infile outdir)) bovine-batch-make-parser() command-line-1(("-eval" "(setq debug-on-error t)" "-l" "semantic/bovine/g= rammar" "-f" "bovine-batch-make-parser" "-o" "../../lisp/cedet/semantic/bov= ine/make-by.el" "make.by")) command-line() normal-top-level() So something generates the Lisp code ( ,@$2 ), which is wrong. Probably this should generate ( \,@$2 ) instead. In GNU Emacs 26.0.60 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.22.16) of 2017-10-09 built on localhost Repository revision: 5b81f65ad0050a4bbd79c9aed3648fba4f19af27 Windowing system distributor 'The X.Org Foundation', version 11.0.11903000 System Description: Debian GNU/Linux rodete (upgraded from: Ubuntu 14.04 LT= S) Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Configured using: 'configure --enable-gcc-warnings=3Dwarn-only --enable-gtk-deprecation-warnings --without-pop --with-mailutils --enable-checking --enable-check-lisp-object-type --with-modules 'CFLAGS=3D-O0 -ggdb3'' Configured features: XPM JPEG TIFF GIF PNG SOUND DBUS GSETTINGS NOTIFY GNUTLS FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib dired dired-loaddefs format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils elec-pair time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 95077 6455) (symbols 48 20376 1) (miscs 40 41 120) (strings 32 28244 1299) (string-bytes 1 740395) (vectors 16 14053) (vector-slots 8 494105 8303) (floats 8 49 68) (intervals 56 224 0) (buffers 992 12)) --=20 Google Germany GmbH Erika-Mann-Stra=C3=9Fe 33 80636 M=C3=BCnchen Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado If you received this communication by mistake, please don=E2=80=99t forward= it to anyone else (it may contain confidential or privileged information), please erase all copies of it, including all attachments, and please let the sender know it went to the wrong person. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 15 15:41:47 2017 Received: (at 28759) by debbugs.gnu.org; 15 Oct 2017 19:41:47 +0000 Received: from localhost ([127.0.0.1]:41965 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e3onC-0001A7-MC for submit@debbugs.gnu.org; Sun, 15 Oct 2017 15:41:46 -0400 Received: from mail-qt0-f177.google.com ([209.85.216.177]:49105) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e3on9-00019r-I5 for 28759@debbugs.gnu.org; Sun, 15 Oct 2017 15:41:45 -0400 Received: by mail-qt0-f177.google.com with SMTP id f8so27979190qta.5 for <28759@debbugs.gnu.org>; Sun, 15 Oct 2017 12:41:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=EQak/KGjgv8QinuH8qCtZYkbfmVb6U/5XLegbAxRn08=; b=OedyecdjsdF7dUWo3T36/h/YFzWsSXak17Ak3p9kjcDlqGnEqvCEjVU0AJ7znZd9EF vBY5sCmdPVMsxQWw9m+sOI+td0nSKDjLfBii1cUYvJcD6CjQxF0/cKh5NYDcyf+I8WW9 NPvhyG9sjIdyIOAE5pr2+c7d0YN2QQmlA272mge2wmEj1yOfp/5uWAxeLa85iXjYeL9j XzmSBQTNKOL291oOiRip8E4s/XMKLfBqtZhS6E78KKogQL7vSPAJAytPQFYbDfgPxdIu bnPKs6Wpaigofyays3iQvpKslVmQuew8W6TDKtNzzQ3xNxYknA62qhJP4DAEZgtpEXXl zLXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=EQak/KGjgv8QinuH8qCtZYkbfmVb6U/5XLegbAxRn08=; b=IRHJX2lTKiaMEe96BtLZufigXfjyBivX4dwVUis/YoU3II5zp5h18zjQwnKlTaO2VY MSHFCWaBm79WY07kDrrY33yDl5Nki13zwMXIC3A+OWpMbFvBkXzPXk0oGb1y4NSCVB9C jQzZoGKIL+QXFDdvZ9XDcNb2FJssVAntk9PbrvUfUjiccS4YUapYD+zyY6RBGIjjbRVX Nph3Yyy2T6ANU1MLn1muJI4wfUGtYAeYmYn1K0FiiX15GhOA1a37l8G2L3K4/UjnqXId IT0Pzwmaw51gjp+s9ZJGSujf4S2D5A6XacOjqKSw3vj4+3inf6CeOrATjtVO9Kcs3D/a ZBqQ== X-Gm-Message-State: AMCzsaVvj0u7s+mBH0nPPRwvW2SjDDf8LB55GRuUiCvjJPKgl7ZwYA+m cDyEMdmwC5mp3XlR/vT9uAm3ug45ur7Cl/UyxbZu+A== X-Google-Smtp-Source: ABhQp+ThA7IrE3RF3Aapl8oDFTgQY3kZ7l7YLbyqzyDxa9dxJdtrc6Zf5GezwkBsHOTvdm+KwhhsdvF4Me/uzTiDwPA= X-Received: by 10.237.55.200 with SMTP id j66mr2877514qtb.210.1508096497735; Sun, 15 Oct 2017 12:41:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Philipp Stephani Date: Sun, 15 Oct 2017 19:41:26 +0000 Message-ID: Subject: Re: bug#28759: 26.0.60; Bovine apparently generates Elisp code with oldstyle backquotes To: 28759@debbugs.gnu.org Content-Type: multipart/alternative; boundary="001a113bd9ae08dc0d055b9b1472" X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 28759 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) --001a113bd9ae08dc0d055b9b1472 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Philipp schrieb am Mo., 9. Okt. 2017 um 16:20 Uhr: > > See https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00313.html > > The backtrace I got was > > $ (cd admin/grammars && EMACSLOADPATH=3D "../../src/emacs" -batch > --no-site-file --no-site-lisp -eval '(setq debug-on-error t)' -l > semantic/bovine/grammar -f bovine-batch-make-parser -o > "../../lisp/cedet/semantic/bovine/make-by.el" make.by) > ../../lisp/emacs-lisp/eieio.el: =E2=80=98eieio-object-name-string=E2=80= =99 is an obsolete > generic function (as of 25.1); use =E2=80=98eieio-named=E2=80=99 instead. > ../../lisp/emacs-lisp/eieio.el: =E2=80=98object-print=E2=80=99 is an obso= lete generic > function (as of 26.1); use =E2=80=98cl-print-object=E2=80=99 instead. > ../../lisp/emacs-lisp/eieio-base.el: =E2=80=98eieio-object-name-string=E2= =80=99 is an > obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2=80=99= instead. > Debugger entered--Lisp error: (error "Loading =E2=80=98nil=E2=80=99: old-= style backquotes > detected!") > read("( ,@$2 )") > I looked a bit around, and found that these strings are copied verbatim from the *.by files. Looking at the comments of lread.c, this seems to be a limitation of the reader: "Because it's more difficult to peek 2 chars ahead, a new-style ,@ can still not be used outside of a `, unless it's in the middle of a list." Not sure what to do with this, though. Changing the reader would introduce a breaking change for no good reason, since we're trying to get rid of old-style backquotes. So I think this should rather be fixed in Bovine, either by escaping the offending commas, or by removing the space between ( and ,. --001a113bd9ae08dc0d055b9b1472 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


Philip= p <p.stephani2@gmail.com>= ; schrieb am Mo., 9. Okt. 2017 um 16:20=C2=A0Uhr:

See https://lists.gnu.org/archiv= e/html/emacs-devel/2017-10/msg00313.html

The backtrace I got was

$ (cd admin/grammars && EMACSLOADPATH=3D "../../src/emacs"= ; -batch --no-site-file --no-site-lisp -eval '(setq debug-on-error t)&#= 39; -l semantic/bovine/grammar=C2=A0 -f bovine-batch-make-parser -o ".= ./../lisp/cedet/semantic/bovine/make-by.el" make.by)
../../lisp/emacs-lisp/eieio.el: =E2=80=98eieio-object-name-string=E2=80=99 = is an obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2= =80=99 instead.
../../lisp/emacs-lisp/eieio.el: =E2=80=98object-print=E2=80=99 is an obsole= te generic function (as of 26.1); use =E2=80=98cl-print-object=E2=80=99 ins= tead.
../../lisp/emacs-lisp/eieio-base.el: =E2=80=98eieio-object-name-string=E2= =80=99 is an obsolete generic function (as of 25.1); use =E2=80=98eieio-nam= ed=E2=80=99 instead.
Debugger entered--Lisp error: (error "Loading =E2=80=98nil=E2=80=99: o= ld-style backquotes detected!")
=C2=A0 read("( ,@$2 )")

I looked a bit around, and found that thes= e strings are copied verbatim from the *.by files.
Looking at the= comments of lread.c, this seems to be a limitation of the reader: "Be= cause it's more difficult to peek 2 chars ahead, a new-style=C2=A0,@ ca= n still not be used outside of a `, unless it's in the middle=C2=A0of a= list."
Not sure what to do with this, though. Changing the = reader would introduce a breaking change for no good reason, since we'r= e trying to get rid of old-style backquotes. So I think this should rather = be fixed in Bovine, either by escaping the offending commas, or by removing= the space between ( and ,.
--001a113bd9ae08dc0d055b9b1472-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 15:38:57 2017 Received: (at 28759) by debbugs.gnu.org; 29 Oct 2017 19:38:57 +0000 Received: from localhost ([127.0.0.1]:40920 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e8tQ8-0004Zd-Mk for submit@debbugs.gnu.org; Sun, 29 Oct 2017 15:38:57 -0400 Received: from mail-qk0-f175.google.com ([209.85.220.175]:44554) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e8tQ4-0004ZL-TM for 28759@debbugs.gnu.org; Sun, 29 Oct 2017 15:38:55 -0400 Received: by mail-qk0-f175.google.com with SMTP id r64so13820791qkc.1 for <28759@debbugs.gnu.org>; Sun, 29 Oct 2017 12:38:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=TcCwndQmhGp14/IkX2kVe2YVVFYl559ImSHYXI1qq1c=; b=MMyUNJDVY2Qz0PvytyQSeIllbFSRgO3gTNulqrw22QA7wKJna1kYOfBaxCC0CVgkig GRgulb3qHLDIUc8bccuXGov1P/fSyLNX2SSPFQV9FoSFhRXxN1XTePaH50IJ1QaXsT87 s+h3bjEGUx/sVNG4iNzBcn6XiS9wzMH1vSCd6qQ96tkTYIEjgoRDWCPK4eppjtSwietJ Ph4qilz/Z8RaJsjSPR2a2hdjjdReCzskjzJGvOBpkfxWyNlE/ERkZab8Jx9eCj7ClS4c NSpW4q1GHkG3RbuvpUTwDAdax0G+FLMqOWe+a4DbvTq6XevTpQzV/yS1mGcMyXONPYuO e81g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=TcCwndQmhGp14/IkX2kVe2YVVFYl559ImSHYXI1qq1c=; b=H4eOv+J0HqCAyp5bD2VHwnmJr6NtsXePxLJG90waZG1yY+7L1zJ35rRydl659WbQcw U8vcWOLxEm/7sFQDJ6InKKW8ABpENSxtyMxpS/q4GDCSXPhBAoDlYvJBj5znM+cqTl9N q6lnoHjYBAcq0Oy149FjIXCkib+OptUEpPszt3NvNxgreuCogzBvTvwUCm1ACz11I3by 2vQsppo2EJF+jF02FUU15oiUrhFeq8m3tQ1/XkselA71sZOuv3LRuOBfjdOzjJVWCddS BVf1B3HyjNOco3e0qKDBrj1ClbEAsHTfE0mfG2zba2V9ZwNILWcafm+q0LU2uYithta5 Y3lQ== X-Gm-Message-State: AMCzsaXC9W8PM4NNwaQL9PAmUPsDsCts/dCLc2EocXyZ6nEkFkYqFye5 Il0gvArEwKYPsl3ZCVdvlzvW8aIh5KZohcwSxyk91A== X-Google-Smtp-Source: ABhQp+RGVbLe+3cv/sXbMIJMy8Ts/L+Q5nQXm+ABbpRr5ZA0+UQUzjVUB8hZ1eUzP2XFM+ymI9/1sTuD4HdkjBOIERI= X-Received: by 10.55.48.70 with SMTP id w67mr9630426qkw.52.1509305927103; Sun, 29 Oct 2017 12:38:47 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Philipp Stephani Date: Sun, 29 Oct 2017 19:38:35 +0000 Message-ID: Subject: Re: bug#28759: 26.0.60; Bovine apparently generates Elisp code with oldstyle backquotes To: 28759@debbugs.gnu.org Content-Type: multipart/mixed; boundary="001a11470422a495c3055cb4abd9" X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 28759 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.0 (--) --001a11470422a495c3055cb4abd9 Content-Type: multipart/alternative; boundary="001a11470422a495bf055cb4abd7" --001a11470422a495bf055cb4abd7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Philipp Stephani schrieb am So., 15. Okt. 2017 um 21:41 Uhr: > Philipp schrieb am Mo., 9. Okt. 2017 um 16:20 Uhr= : > >> >> See https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00313.html >> >> The backtrace I got was >> >> $ (cd admin/grammars && EMACSLOADPATH=3D "../../src/emacs" -batch >> --no-site-file --no-site-lisp -eval '(setq debug-on-error t)' -l >> semantic/bovine/grammar -f bovine-batch-make-parser -o >> "../../lisp/cedet/semantic/bovine/make-by.el" make.by) >> ../../lisp/emacs-lisp/eieio.el: =E2=80=98eieio-object-name-string=E2=80= =99 is an obsolete >> generic function (as of 25.1); use =E2=80=98eieio-named=E2=80=99 instead= . >> ../../lisp/emacs-lisp/eieio.el: =E2=80=98object-print=E2=80=99 is an obs= olete generic >> function (as of 26.1); use =E2=80=98cl-print-object=E2=80=99 instead. >> ../../lisp/emacs-lisp/eieio-base.el: =E2=80=98eieio-object-name-string= =E2=80=99 is an >> obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2=80= =99 instead. >> Debugger entered--Lisp error: (error "Loading =E2=80=98nil=E2=80=99: old= -style backquotes >> detected!") >> read("( ,@$2 )") >> > > I looked a bit around, and found that these strings are copied verbatim > from the *.by files. > Looking at the comments of lread.c, this seems to be a limitation of the > reader: "Because it's more difficult to peek 2 chars ahead, a new-style ,= @ > can still not be used outside of a `, unless it's in the middle of a list= ." > Not sure what to do with this, though. Changing the reader would introduc= e > a breaking change for no good reason, since we're trying to get rid of > old-style backquotes. So I think this should rather be fixed in Bovine, > either by escaping the offending commas, or by removing the space between= ( > and ,. > Here is a minimal patch. --001a11470422a495bf055cb4abd7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


Philip= p Stephani <p.stephani2@gmail.c= om> schrieb am So., 15. Okt. 2017 um 21:41=C2=A0Uhr:
Philipp <p.stephani2@gmail.com> schrieb am Mo., 9. Okt. 2017 um 16:20= =C2=A0Uhr:

See https://lists.gnu.org/archiv= e/html/emacs-devel/2017-10/msg00313.html

The backtrace I got was

$ (cd admin/grammars && EMACSLOADPATH=3D "../../src/emacs"= ; -batch --no-site-file --no-site-lisp -eval '(setq debug-on-error t)&#= 39; -l semantic/bovine/grammar=C2=A0 -f bovine-batch-make-parser -o ".= ./../lisp/cedet/semantic/bovine/make-by.el" make.by)
../../lisp/emacs-lisp/eieio.el: =E2=80=98eieio-object-name-string=E2=80=99 = is an obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2= =80=99 instead.
../../lisp/emacs-lisp/eieio.el: =E2=80=98object-print=E2=80=99 is an obsole= te generic function (as of 26.1); use =E2=80=98cl-print-object=E2=80=99 ins= tead.
../../lisp/emacs-lisp/eieio-base.el: =E2=80=98eieio-object-name-string=E2= =80=99 is an obsolete generic function (as of 25.1); use =E2=80=98eieio-nam= ed=E2=80=99 instead.
Debugger entered--Lisp error: (error "Loading =E2=80=98nil=E2=80=99: o= ld-style backquotes detected!")
=C2=A0 read("( ,@$2 )")

I looked a bit around, and found that these strings are copie= d verbatim from the *.by files.
Looking at the comments of lread.= c, this seems to be a limitation of the reader: "Because it's more= difficult to peek 2 chars ahead, a new-style=C2=A0,@ can still not be used= outside of a `, unless it's in the middle=C2=A0of a list."
<= div>Not sure what to do with this, though. Changing the reader would introd= uce a breaking change for no good reason, since we're trying to get rid= of old-style backquotes. So I think this should rather be fixed in Bovine,= either by escaping the offending commas, or by removing the space between = ( and ,.

Here is a minima= l patch.=C2=A0
--001a11470422a495bf055cb4abd7-- --001a11470422a495c3055cb4abd9 Content-Type: text/plain; charset="US-ASCII"; name="0001-Work-around-reader-limitations-for-old-style-backquote.txt" Content-Disposition: attachment; filename="0001-Work-around-reader-limitations-for-old-style-backquote.txt" Content-Transfer-Encoding: base64 Content-ID: <15f69a47cc620d786a31> X-Attachment-Id: 15f69a47cc620d786a31 RnJvbSAwYWMwMzBkMTUyNmVlN2Q3YzNiZjQ5YTIyY2RhZjRiMTc3YTk4MjEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgMTUgT2N0IDIwMTcgMjE6MzI6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBXb3Jr IGFyb3VuZCByZWFkZXIgbGltaXRhdGlvbnMgZm9yIG9sZC1zdHlsZSBiYWNrcXVvdGVzLgoKU2Vl IEJ1ZyMyODc1OS4KCiogYWRtaW4vZ3JhbW1hcnMvbWFrZS5ieTogRXNjYXBlICxAIHRvIGF2b2lk IG9sZC1zdHlsZSBiYWNrcXVvdGUKZGV0ZWN0aW9uCi0tLQogYWRtaW4vZ3JhbW1hcnMvbWFrZS5i eSB8IDE5ICsrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25z KCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FkbWluL2dyYW1tYXJzL21ha2UuYnkg Yi9hZG1pbi9ncmFtbWFycy9tYWtlLmJ5CmluZGV4IGQzYTAzZWFkNDcuLjRkMDI5MTg2ZDggMTAw NjQ0Ci0tLSBhL2FkbWluL2dyYW1tYXJzL21ha2UuYnkKKysrIGIvYWRtaW4vZ3JhbW1hcnMvbWFr ZS5ieQpAQCAtNTQsMTUgKzU0LDIwIEBACiAKICUlCiAKKzs7IEVzY2FwZSB0aGUgLEAgYmVsb3cg YmVjYXVzZSB0aGUgcmVhZGVyIGRvZXNuJ3QgY29ycmVjdGx5IGRldGVjdAorOzsgb2xkLXN0eWxl IGJhY2txdW90ZXMgZm9yIHRoaXMgY2FzZS4gIFRoZSBiYWNrc2xhc2hlcyBjYW4gYmUgcmVtb3Zl ZAorOzsgb25jZSBvbGQtc3R5bGUgYmFja3F1b3RlcyBhcmUgY29tcGxldGVseSBnb25lIChwcm9i YWJseSBpbgorOzsgRW1hY3MgMjgpLgorCiBNYWtlZmlsZSA6IGJvbCBuZXdsaW5lIChuaWwpCiAJ IHwgYm9sIHZhcmlhYmxlCi0JICAgKCAsQCQyICkKKwkgICAoIFwsQCQyICkKIAkgfCBib2wgcnVs ZQotCSAgICggLEAkMiApCisJICAgKCBcLEAkMiApCiAJIHwgYm9sIGNvbmRpdGlvbmFsCi0JICAg KCAsQCQyICkKKwkgICAoIFwsQCQyICkKIAkgfCBib2wgaW5jbHVkZQotCSAgICggLEAkMiApCisJ ICAgKCBcLEAkMiApCiAJIHwgd2hpdGVzcGFjZSAoIG5pbCApCiAJIHwgbmV3bGluZSAoIG5pbCAp CiAJIDsKQEAgLTEyNSwxMyArMTMwLDEzIEBAIGNvbG9uczogQ09MT04gQ09MT04gKCkKICAgICAg IDsKIAogZWxlbWVudC1saXN0OiBlbGVtZW50cyBuZXdsaW5lCi0JICAgICAgKCAsQCQxICkKKwkg ICAgICAoIFwsQCQxICkKIAkgICAgOwogCiBlbGVtZW50czogZWxlbWVudCBzb21lLXdoaXRlc3Bh Y2UgZWxlbWVudHMKLQkgICggLEAkMSAsQCQzICkKKwkgICggXCxAJDEgLEAkMyApCiAJfCBlbGVt ZW50Ci0JICAoICxAJDEgKQorCSAgKCBcLEAkMSApCiAJfCA7O0VNUFRZCiAJOwogCi0tIAoyLjE0 LjIKCg== --001a11470422a495c3055cb4abd9-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 09 15:17:19 2017 Received: (at 28759-done) by debbugs.gnu.org; 9 Dec 2017 20:17:19 +0000 Received: from localhost ([127.0.0.1]:54128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eNlYl-0000h0-DZ for submit@debbugs.gnu.org; Sat, 09 Dec 2017 15:17:19 -0500 Received: from mail-qk0-f180.google.com ([209.85.220.180]:35408) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eNlYj-0000gn-8K for 28759-done@debbugs.gnu.org; Sat, 09 Dec 2017 15:17:18 -0500 Received: by mail-qk0-f180.google.com with SMTP id c13so2788990qke.2 for <28759-done@debbugs.gnu.org>; Sat, 09 Dec 2017 12:17:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=HW2DNaMzHXrBCMp2YSTo2VR8jmMprh34eLOMrjEL1As=; b=XBHKK8tFYD7YUlHv60ilFLOYwOEpOF5uq9TnWcg6q6eygn64sYcxm7DOPj7uSTbN1c fElKwHWEE1p/ZVeOBeiURd3xfwer0gsgpaRDQd9ZiO+gwJbdrHLnjCAM1RHWBrRGfLKn /qvRcR82irD3QdJnQpLlG4Xy8LI7e246JJQLZXLgEkgBqToA2ENmJQ7uGZkoefcbtADF jUFP8Zt1dGHBoUttDPqmVIY1VaYXIqeibyARhzKIxb+1jjbMbvX4aHEjc6snfbq6NtF/ as9l4iEh8QaaB3y2G34ApeMmn+ehX4SodsEBiXagjzwyHVkNCSzkhSmaJWk3ezxg8pvq +1fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=HW2DNaMzHXrBCMp2YSTo2VR8jmMprh34eLOMrjEL1As=; b=ILS/VBOCpBuUSgvZWLoiXr3ar+VhQ1+IQHWabhIn7AoQiBSCZ70VQjS/H68NFQxn+E o5Q4rCRLgG87fw4LiiIqu1LSSHSmGHlDDAyFPvwjvOs+HAs60uAGg06eCm5llYg081i/ S3UAnt0ypg7Mi8TuRT5l56DAtPW0mJn3g/W7CheAZKo2+Pj6/M++q2uGTbINxa0jnErG UgAgoyCjRg+0bDUCkKH9FHhMB0kcl1yM/EU6T+kzJ2Ug+diZHFK9iJsJX20bIDz45tmG evU+x9YWbVV2QNRl5Ci2FSSAQ377C5vkL4FtzjQq5dxjPcIobx1tJPWurNAbCuZ//Kmg 4BqQ== X-Gm-Message-State: AKGB3mL8EVVjuBDGx5JgWu2Z79fOnzaiXLJ51rdhYA1873ZxWTP2WqPO AdwP6pjF5jseAaUo8eQXX07C9zqO8qyFUUev5cc+iQ== X-Google-Smtp-Source: AGs4zMZ7ygeyfutSCNlxXZ5qFiQcy1rbAPKXCHEqayMLRI0PFDTVETHBP9JFEvWZn8+tKibcBYfMwfs/kBq8YehmJKw= X-Received: by 10.233.235.207 with SMTP id b198mr42529167qkg.55.1512850631587; Sat, 09 Dec 2017 12:17:11 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Philipp Stephani Date: Sat, 09 Dec 2017 20:17:00 +0000 Message-ID: Subject: Re: bug#28759: 26.0.60; Bovine apparently generates Elisp code with oldstyle backquotes To: 28759-done@debbugs.gnu.org Content-Type: multipart/alternative; boundary="001a114f1f027e7c13055fedfc48" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 28759-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) --001a114f1f027e7c13055fedfc48 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Philipp Stephani schrieb am So., 29. Okt. 2017 um 20:38 Uhr: > Philipp Stephani schrieb am So., 15. Okt. 2017 um > 21:41 Uhr: > >> Philipp schrieb am Mo., 9. Okt. 2017 um >> 16:20 Uhr: >> >>> >>> See https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00313.htm= l >>> >>> The backtrace I got was >>> >>> $ (cd admin/grammars && EMACSLOADPATH=3D "../../src/emacs" -batch >>> --no-site-file --no-site-lisp -eval '(setq debug-on-error t)' -l >>> semantic/bovine/grammar -f bovine-batch-make-parser -o >>> "../../lisp/cedet/semantic/bovine/make-by.el" make.by) >>> ../../lisp/emacs-lisp/eieio.el: =E2=80=98eieio-object-name-string=E2=80= =99 is an >>> obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2=80= =99 instead. >>> ../../lisp/emacs-lisp/eieio.el: =E2=80=98object-print=E2=80=99 is an ob= solete generic >>> function (as of 26.1); use =E2=80=98cl-print-object=E2=80=99 instead. >>> ../../lisp/emacs-lisp/eieio-base.el: =E2=80=98eieio-object-name-string= =E2=80=99 is an >>> obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2=80= =99 instead. >>> Debugger entered--Lisp error: (error "Loading =E2=80=98nil=E2=80=99: ol= d-style >>> backquotes detected!") >>> read("( ,@$2 )") >>> >> >> I looked a bit around, and found that these strings are copied verbatim >> from the *.by files. >> Looking at the comments of lread.c, this seems to be a limitation of the >> reader: "Because it's more difficult to peek 2 chars ahead, a new-style = ,@ >> can still not be used outside of a `, unless it's in the middle of a lis= t." >> Not sure what to do with this, though. Changing the reader would >> introduce a breaking change for no good reason, since we're trying to ge= t >> rid of old-style backquotes. So I think this should rather be fixed in >> Bovine, either by escaping the offending commas, or by removing the spac= e >> between ( and ,. >> > > Here is a minimal patch. > Since there were no comments and the patch is small, I've pushed it to master as 6fc0397388. --001a114f1f027e7c13055fedfc48 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


Philip= p Stephani <p.stephani2@gmail.c= om> schrieb am So., 29. Okt. 2017 um 20:38=C2=A0Uhr:
Philipp Stephani <p.stephani2@gmail.com> schrieb am So., 15. Okt. 2017= um 21:41=C2=A0Uhr:
Philipp <p.stephani2@gmail.com> sch= rieb am Mo., 9. Okt. 2017 um 16:20=C2=A0Uhr:

See https://lists.gnu.org/archiv= e/html/emacs-devel/2017-10/msg00313.html

The backtrace I got was

$ (cd admin/grammars && EMACSLOADPATH=3D "../../src/emacs"= ; -batch --no-site-file --no-site-lisp -eval '(setq debug-on-error t)&#= 39; -l semantic/bovine/grammar=C2=A0 -f bovine-batch-make-parser -o ".= ./../lisp/cedet/semantic/bovine/make-by.el" make.by)
../../lisp/emacs-lisp/eieio.el: =E2=80=98eieio-object-name-string=E2=80=99 = is an obsolete generic function (as of 25.1); use =E2=80=98eieio-named=E2= =80=99 instead.
../../lisp/emacs-lisp/eieio.el: =E2=80=98object-print=E2=80=99 is an obsole= te generic function (as of 26.1); use =E2=80=98cl-print-object=E2=80=99 ins= tead.
../../lisp/emacs-lisp/eieio-base.el: =E2=80=98eieio-object-name-string=E2= =80=99 is an obsolete generic function (as of 25.1); use =E2=80=98eieio-nam= ed=E2=80=99 instead.
Debugger entered--Lisp error: (error "Loading =E2=80=98nil=E2=80=99: o= ld-style backquotes detected!")
=C2=A0 read("( ,@$2 )")

I looked a bit around, and found that these strings are copie= d verbatim from the *.by files.
Looking at the comments of lread.= c, this seems to be a limitation of the reader: "Because it's more= difficult to peek 2 chars ahead, a new-style=C2=A0,@ can still not be used= outside of a `, unless it's in the middle=C2=A0of a list."
<= div>Not sure what to do with this, though. Changing the reader would introd= uce a breaking change for no good reason, since we're trying to get rid= of old-style backquotes. So I think this should rather be fixed in Bovine,= either by escaping the offending commas, or by removing the space between = ( and ,.

Here is a minimal patch.=C2=A0

Since there were no comments= and the patch is small, I've pushed it to master as 6fc0397388.=C2=A0<= /div>
--001a114f1f027e7c13055fedfc48-- From unknown Fri Aug 22 01:04:06 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 07 Jan 2018 12:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator