* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
@ 2023-03-18 13:25 Matúš Goljer
2023-03-18 13:36 ` Matúš Goljer
0 siblings, 1 reply; 9+ messages in thread
From: Matúš Goljer @ 2023-03-18 13:25 UTC (permalink / raw)
To: 62256
[-- Attachment #1: Type: text/plain, Size: 1748 bytes --]
Insert
(gv-define-simple-setter aref aset)
in a buffer and try to edebug-eval it (C-u C-M-x).
It gives an error which I don't understand, because the second argument
`aset' should match symbolp...
I also tried this on the build from master and the error is the same.
Debugger entered--Lisp error: (invalid-read-syntax "Expected" (&or symbolp lambda-expr))
signal(invalid-read-syntax ("Expected" (&or symbolp lambda-expr)))
edebug-syntax-error("Expected" (&or symbolp lambda-expr))
apply(edebug-syntax-error ("Expected" (&or symbolp lambda-expr)))
edebug-no-match(((aset) (176 . 180) . 181) "Expected" (&or symbolp lambda-expr))
edebug-match-list(((aset) (176 . 180) . 181) (&or symbolp lambda-expr))
edebug-match-one-spec(((aset) (176 . 180) . 181) (&or symbolp lambda-expr))
edebug-match-specs(((aset) (176 . 180) . 181) ((&or symbolp lambda-expr) &optional sexp) edebug-match-specs)
edebug-match-specs(((aset) (176 . 180) . 181) (sexp (&or symbolp lambda-expr) &optional sexp) edebug-match-specs)
edebug-match-sublist(((aset) (176 . 180) . 181) (sexp (&or symbolp lambda-expr) &optional sexp))
#f(compiled-function (head cursor) #<bytecode 0x194f427789f7f1ec>)(gv-define-simple-setter ((aset) (176 . 180) . 181))
edebug-list-form(((aset) (176 . 180) . 181))
edebug-form((((gv-define-simple-setter aref aset)) (146 (147 . 170) (171 . 175) (176 . 180) . 181)))
edebug-make-form-wrapper((((gv-define-simple-setter aref aset)) (146 (147 . 170) (171 . 175) (176 . 180) . 181)) 146 181 nil)
edebug-read-and-maybe-wrap-form1()
edebug-read-and-maybe-wrap-form()
edebug--read(read #<buffer *scratch*>)
apply(edebug--read read #<buffer *scratch*>)
--
Best regards,
Matúš Goljer
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 865 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-18 13:25 bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter Matúš Goljer
@ 2023-03-18 13:36 ` Matúš Goljer
2023-03-23 8:13 ` Eli Zaretskii
0 siblings, 1 reply; 9+ messages in thread
From: Matúš Goljer @ 2023-03-18 13:36 UTC (permalink / raw)
To: 62256
[-- Attachment #1: Type: text/plain, Size: 369 bytes --]
Actually, I think the problem is using the spec
(&or symbolp lambda-expr)
instead of
[&or symbolp lambda-expr]
Because the list construct here always makes "a list with content". So
this spec says "a list with one thing in it, either a symbol or a
lambda" which would match
(gv-define-simple-setter aref (aset))
--
Best regards,
Matúš Goljer
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 865 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-18 13:36 ` Matúš Goljer
@ 2023-03-23 8:13 ` Eli Zaretskii
2023-03-23 18:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2023-03-23 8:13 UTC (permalink / raw)
To: Matúš Goljer, Stefan Monnier; +Cc: 62256
> From: Matúš Goljer <matus.goljer@gmail.com>
> Date: Sat, 18 Mar 2023 14:36:53 +0100
>
> Actually, I think the problem is using the spec
>
> (&or symbolp lambda-expr)
>
> instead of
>
> [&or symbolp lambda-expr]
>
> Because the list construct here always makes "a list with content". So
> this spec says "a list with one thing in it, either a symbol or a
> lambda" which would match
>
> (gv-define-simple-setter aref (aset))
Stefan, any comments?
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-23 8:13 ` Eli Zaretskii
@ 2023-03-23 18:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-23 18:11 ` Matus Goljer
0 siblings, 1 reply; 9+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-23 18:07 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Matúš Goljer, 62256
>> From: Matúš Goljer <matus.goljer@gmail.com>
>> Date: Sat, 18 Mar 2023 14:36:53 +0100
>>
>> Actually, I think the problem is using the spec
>>
>> (&or symbolp lambda-expr)
>>
>> instead of
>>
>> [&or symbolp lambda-expr]
>>
>> Because the list construct here always makes "a list with content". So
>> this spec says "a list with one thing in it, either a symbol or a
>> lambda" which would match
>>
>> (gv-define-simple-setter aref (aset))
>
> Stefan, any comments?
He's right!
Stefan
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-23 18:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-23 18:11 ` Matus Goljer
2023-03-24 18:40 ` Eli Zaretskii
0 siblings, 1 reply; 9+ messages in thread
From: Matus Goljer @ 2023-03-23 18:11 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 62256, Eli Zaretskii
[-- Attachment #1: Type: text/plain, Size: 762 bytes --]
Do you want me to prepare a patch? I think there's more incorrect specs in
the gv package now.
m.
On Thu, 23 Mar 2023 at 19:07, Stefan Monnier <monnier@iro.umontreal.ca>
wrote:
> >> From: Matúš Goljer <matus.goljer@gmail.com>
> >> Date: Sat, 18 Mar 2023 14:36:53 +0100
> >>
> >> Actually, I think the problem is using the spec
> >>
> >> (&or symbolp lambda-expr)
> >>
> >> instead of
> >>
> >> [&or symbolp lambda-expr]
> >>
> >> Because the list construct here always makes "a list with content". So
> >> this spec says "a list with one thing in it, either a symbol or a
> >> lambda" which would match
> >>
> >> (gv-define-simple-setter aref (aset))
> >
> > Stefan, any comments?
>
> He's right!
>
>
> Stefan
>
>
[-- Attachment #2: Type: text/html, Size: 1327 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-23 18:11 ` Matus Goljer
@ 2023-03-24 18:40 ` Eli Zaretskii
2023-03-26 11:28 ` Matúš Goljer
0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2023-03-24 18:40 UTC (permalink / raw)
To: Matus Goljer; +Cc: 62256, monnier
> From: Matus Goljer <matus.goljer@gmail.com>
> Date: Thu, 23 Mar 2023 19:11:01 +0100
> Cc: Eli Zaretskii <eliz@gnu.org>, 62256@debbugs.gnu.org
>
> Do you want me to prepare a patch? I think there's more incorrect specs in the gv package now.
Feel free to submit patches for additional specs as well.
Thanks.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-24 18:40 ` Eli Zaretskii
@ 2023-03-26 11:28 ` Matúš Goljer
2023-03-26 11:40 ` Eli Zaretskii
2023-03-26 13:14 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 2 replies; 9+ messages in thread
From: Matúš Goljer @ 2023-03-26 11:28 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 62256, monnier
[-- Attachment #1.1: Type: text/plain, Size: 335 bytes --]
> Feel free to submit patches for additional specs as well.
>
> Thanks.
I was thinking about the form in `(get 'compiler-macro
'edebug-declaration-spec)` but actually that one is correct. It's a bit
confusing that top level is always wrapped in () even though that list
wrapper is ignored.
So in the end there's only this one fix.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: Fix edebug spec for gv-define-simple-setter --]
[-- Type: text/x-diff, Size: 950 bytes --]
From f99a7d4423008768d7f0a333fb72fc9cabf446ea Mon Sep 17 00:00:00 2001
From: Matus Goljer <matus.goljer@gmail.com>
Date: Sun, 26 Mar 2023 13:20:19 +0200
Subject: [PATCH] Fix edebug spec for gv-define-simple-setter
---
lisp/emacs-lisp/gv.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el
index dad91e92a45..ac001af06bd 100644
--- a/lisp/emacs-lisp/gv.el
+++ b/lisp/emacs-lisp/gv.el
@@ -271,7 +271,7 @@ instead the assignment is turned into something equivalent to
(SETTER ARGS... temp)
temp)
so as to preserve the semantics of `setf'."
- (declare (debug (sexp (&or symbolp lambda-expr) &optional sexp)))
+ (declare (debug (sexp [&or symbolp lambda-expr] &optional sexp)))
(when (eq 'lambda (car-safe setter))
(message "Use `gv-define-setter' or name %s's setter function" name))
`(gv-define-setter ,name (val &rest args)
--
2.34.1
[-- Attachment #1.3: Type: text/plain, Size: 40 bytes --]
--
Best regards,
Matúš Goljer
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 865 bytes --]
^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-26 11:28 ` Matúš Goljer
@ 2023-03-26 11:40 ` Eli Zaretskii
2023-03-26 13:14 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2023-03-26 11:40 UTC (permalink / raw)
To: Matúš Goljer; +Cc: 62256-done, monnier
> From: Matúš Goljer <matus.goljer@gmail.com>
> Cc: monnier@iro.umontreal.ca, 62256@debbugs.gnu.org
> Date: Sun, 26 Mar 2023 13:28:06 +0200
>
> I was thinking about the form in `(get 'compiler-macro
> 'edebug-declaration-spec)` but actually that one is correct. It's a bit
> confusing that top level is always wrapped in () even though that list
> wrapper is ignored.
>
> So in the end there's only this one fix.
Thanks, installed on the emacs-29 branch, and closing the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter
2023-03-26 11:28 ` Matúš Goljer
2023-03-26 11:40 ` Eli Zaretskii
@ 2023-03-26 13:14 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 0 replies; 9+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-26 13:14 UTC (permalink / raw)
To: Matúš Goljer; +Cc: 62256, Eli Zaretskii
> It's a bit confusing that top level is always wrapped in () even
> though that list wrapper is ignored.
Very much agreed, tho it's usually not completely wrong, since it
describes a *list* of arguments.
Stefan
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-03-26 13:14 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-18 13:25 bug#62256: 28.2; Invalid edebug spec gv-define-simple-setter Matúš Goljer
2023-03-18 13:36 ` Matúš Goljer
2023-03-23 8:13 ` Eli Zaretskii
2023-03-23 18:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-23 18:11 ` Matus Goljer
2023-03-24 18:40 ` Eli Zaretskii
2023-03-26 11:28 ` Matúš Goljer
2023-03-26 11:40 ` Eli Zaretskii
2023-03-26 13:14 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.