Package: emacs;
Reported by: Geoff Gole <geoffgole <at> gmail.com>
Date: Sun, 13 Jun 2010 18:06:01 UTC
Severity: normal
Tags: confirmed, patch
Merged with 6566, 15587, 24885
Found in versions 23.1.50, 23.2, 26.0.50
Done: Gemini Lasswell <gazally <at> runbox.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Gemini Lasswell <gazally <at> runbox.com> Cc: tracker <at> debbugs.gnu.org Subject: bug#6566: closed (23.2; error: (invalid-read-syntax "Dotted spec required.")) Date: Sun, 26 Nov 2017 23:03:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 26 Nov 2017 15:02:27 -0800 with message-id <871skkr6d8.fsf <at> runbox.com> and subject line Re: bug#6415: [PATCH] fix edebug instrumentation of dotted pairs in macros has caused the debbugs.gnu.org bug report #6415, regarding 23.2; error: (invalid-read-syntax "Dotted spec required.") to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 6415: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6415 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Leo <sdl.web <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 23.2; error: (invalid-read-syntax "Dotted spec required.") Date: Mon, 05 Jul 2010 13:52:17 +0100To reproduce: C-u C-M-x to edebug the following example function (defun test () (destructuring-bind (beg . end) '(1 . 2))) Should see a backtrace as attached to the end of this report. In GNU Emacs 23.2.9 of 2010-06-26 on Victoria.local Debugger entered--Lisp error: (invalid-read-syntax "Dotted spec required.") signal(invalid-read-syntax ("Dotted spec required.")) edebug-syntax-error("Dotted spec required.") apply(edebug-syntax-error "Dotted spec required.") edebug-no-match((end (44 . 48) . 49) "Dotted spec required.") edebug-match-specs((end (44 . 48) . 49) ([&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg]) edebug-match-specs) edebug-match-specs((end (44 . 48) . 49) ([&rest cl-macro-arg] [&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg]) edebug-match-specs) edebug-match-specs((end (44 . 48) . 49) ([&optional "&environment" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg]) edebug-match-specs) edebug-match-sublist((end (44 . 48) . 49) ([&optional "&environment" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg])) edebug-match-list((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) ([&optional "&environment" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg])) edebug-match-one-spec((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) ([&optional "&environment" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg])) edebug-match-specs((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) (([&optional "&environment" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg])) edebug-match-specs) edebug-match((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) (([&optional "&environment" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or ... arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ... arg]] &optional "&allow-other-keys"]] [&optional ["&aux" &rest &or ... symbolp]] [&optional "&environment" arg]))) edebug-match-symbol((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) cl-macro-list) edebug-match-one-spec((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) cl-macro-list) edebug-match-specs((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) (cl-macro-list def-form cl-declarations def-body) edebug-match-specs) edebug-match-specs((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) ("destructuring-bind" cl-macro-list def-form cl-declarations def-body) edebug-match-specs) edebug-match((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) ("destructuring-bind" cl-macro-list def-form cl-declarations def-body)) edebug-make-form-wrapper((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) 18 64 ("destructuring-bind" cl-macro-list def-form cl-declarations def-body)) edebug-defining-form((((beg . end) (quote ...)) (38 (39 . 42) (44 . 48) . 49) (56 (56 . 57) (57 ... ... . 64) . 64) . 65) 18 65 ("destructuring-bind" cl-macro-list def-form cl-declarations def-body)) edebug-form((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66)) edebug-match-form((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66)) edebug-match-symbol((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) form) edebug-match-one-spec((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) form) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (form) edebug-&rest-wrapper) byte-code("\304 \n#.\305\207" [cursor specs remainder-handler result edebug-match-specs nil] 4) edebug-&optional-wrapper((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (form) edebug-&rest-wrapper) edebug-&rest-wrapper((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (form) edebug-&rest-wrapper) edebug-match-&rest((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (form)) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (&rest form) edebug-match-specs) edebug-match((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (&rest form)) edebug-match-def-body((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66)) edebug-match-symbol((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) def-body) edebug-match-one-spec((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) def-body) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (def-body) edebug-match-specs) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) ([&optional ("interactive" interactive)] def-body) edebug-match-specs) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) ([&optional stringp] [&optional ("interactive" interactive)] def-body) edebug-match-specs) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (lambda-list [&optional stringp] [&optional ("interactive" interactive)] def-body) edebug-match-specs) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) (name lambda-list [&optional stringp] [&optional ("interactive" interactive)] def-body) edebug-match-specs) edebug-match-specs((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) ("defun" name lambda-list [&optional stringp] [&optional ("interactive" interactive)] def-body) edebug-match-specs) edebug-match-sublist((((destructuring-bind ... ...)) (18 (19 . 37) (38 ... ... . 49) (56 ... ... . 64) . 65) . 66) ("defun" name lambda-list [&optional stringp] [&optional ("interactive" interactive)] def-body)) edebug-match-list((((defun test nil ...)) (1 (2 . 7) (8 . 12) (13 . 15) (18 ... ... ... . 65) . 66)) ("defun" name lambda-list [&optional stringp] [&optional ("interactive" interactive)] def-body)) edebug-match-one-spec((((defun test nil ...)) (1 (2 . 7) (8 . 12) (13 . 15) (18 ... ... ... . 65) . 66)) ("defun" name lambda-list [&optional stringp] [&optional ("interactive" interactive)] def-body)) edebug-match-specs((((defun test nil ...)) (1 (2 . 7) (8 . 12) (13 . 15) (18 ... ... ... . 65) . 66)) (("defun" name lambda-list [&optional stringp] [&optional ...] def-body)) edebug-match-specs) edebug-match((((defun test nil ...)) (1 (2 . 7) (8 . 12) (13 . 15) (18 ... ... ... . 65) . 66)) (("defun" name lambda-list [&optional stringp] [&optional ...] def-body))) edebug-make-form-wrapper((((defun test nil ...)) (1 (2 . 7) (8 . 12) (13 . 15) (18 ... ... ... . 65) . 66)) 1 65 (("defun" name lambda-list [&optional stringp] [&optional ...] def-body))) edebug-read-and-maybe-wrap-form1() byte-code("\301 .\302\207" [result edebug-read-and-maybe-wrap-form1 nil] 1) edebug-read-and-maybe-wrap-form() edebug-read-top-level-form() eval-defun((4)) call-interactively(eval-defun nil nil)
[Message part 3 (message/rfc822, inline)]
From: Gemini Lasswell <gazally <at> runbox.com> To: Stefan Monnier <monnier <at> iro.umontreal.ca> Cc: 6415-done <at> debbugs.gnu.org, Steve Yegge <stevey <at> google.com> Subject: Re: bug#6415: [PATCH] fix edebug instrumentation of dotted pairs in macros Date: Sun, 26 Nov 2017 15:02:27 -0800Gemini Lasswell <gazally <at> runbox.com> writes: > Here's a new patch for this bug, based on the ideas in Steve's patch. I've pushed this patch to emacs-26.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.