* bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation
@ 2019-04-07 21:26 Ernesto Alfonso
2019-07-09 16:08 ` Lars Ingebrigtsen
0 siblings, 1 reply; 7+ messages in thread
From: Ernesto Alfonso @ 2019-04-07 21:26 UTC (permalink / raw)
To: 35186
Originally reported on the flycheck bug tracker:
https://github.com/flycheck/flycheck/issues/1557#event-2240962448
Using a dotted pair that accidently is eagerly evaluated results in a
confusing error message and location.
From the flycheck tracker, fmdkdd's steps to reproduce:
$ cat foo.el
(defun foo ()
(some irrelevant form)
(a . b))
$ emacs -Q --batch -f batch-byte-compile foo.el
In toplevel form:
/tmp/foo.el:1:8:Error: Wrong type argument: sequencep, b
In GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
of 2019-04-01 built on debian-x1g4
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description: Debian GNU/Linux 9.8 (stretch)
Recent messages:
Saving file /home/ealfonso/git/autobuild/autobuild.el...
Wrote /home/ealfonso/git/autobuild/autobuild.el
Mark saved where search started
Loading /home/ealfonso/.gnus-gmail...done
Opening connection to imap.gmail.com via tls...
Quit [18 times]
Saving file /home/ealfonso/private-data/org/master.org...
Wrote /home/ealfonso/private-data/org/master.org
Saving file /home/ealfonso/private-data/org/master.org...
Wrote /home/ealfonso/private-data/org/master.org
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 THREADS LCMS2
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Org
Minor modes in effect:
text-scale-mode: t
diff-auto-refine-mode: t
global-erjoalgo-command-mode: t
erjoalgo-command-mode: t
show-paren-mode: t
global-text-scale-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-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
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Load-path shadows:
/home/ealfonso/git/autobuild/autobuild hides /home/ealfonso/git/dotemacs/lisp/core/autobuild
/home/ealfonso/.emacs.d/elpa/s-20180406.808/s hides /home/ealfonso/git/dotemacs/lisp/libs/s
/home/ealfonso/quicklisp/dists/quicklisp/software/slime-v2.23/contrib/slime-cl-indent hides /home/ealfonso/git/dotemacs/lisp/libs/slime-cl-indent
/home/ealfonso/.emacs.d/elpa/dash-20190320.1406/dash hides /home/ealfonso/git/dotemacs/lisp/libs/dash
Features:
(shadow sort mailalias mail-extr emacsbug network-stream nsm starttls
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache cl-print
sh-script smie executable misearch multi-isearch dired-aux ffap
face-remap vc-git diff-mode diary-lib diary-loaddefs cal-iso org-rmail
org-mhe org-irc org-info org-gnus nnir gnus-sum gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc
nnoo parse-time gnus-spec gnus-int gnus-range gnus-win org-docview
doc-view jka-compr image-mode org-bibtex bibtex org-bbdb org-w3m
org-agenda files-x tmp-completions tetris-o-1 beeper translation babel
mm-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util mailcap gnus nnheader wid-edit wm-windows
slime-fancy slime-trace-dialog slime-fontifying-fu slime-package-fu
slime-references slime-compiler-notes-tree slime-scratch
slime-presentations bridge slime-macrostep macrostep slime-mdot-fu
slime-enclosing-context slime-fuzzy slime-fancy-trace
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-repl elp slime-parse slime hi-lock company-oddmuse
company-keywords company-etags company-gtags company-dabbrev-code
company-dabbrev company-files company-capf company-cmake company-xcode
company-clang company-semantic company-eclim company-template
company-bbdb elec-pair lisp-mnt gud apropos compile etags xref project
arc-mode archive-mode hyperspec browse-url slime-autoloads ox-texinfo
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
ox-html table ox-ascii ox-publish ox org-crypt org-element avl-tree
generator org org-macro org-footnote org-pcomplete pcomplete org-list
org-faces org-entities noutline outline org-version ob-emacs-lisp ob
ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint comint
ansi-color ring ob-core ob-eval org-compat org-macs org-loaddefs
cal-menu calendar cal-loaddefs erc-goodies erc erc-backend erc-compat
thingatpt bbdb-mua bbdb-com crm bbdb-message sendmail message rmc puny
dired dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg
gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev
mail-utils gmm-utils mailheader bbdb bbdb-site timezone proxy-mode
project-opener org-omnibar erjoalgo-command-mode command-mode-commands
anonymizer genpass ert pp ewoc debug autobuild-examples autobuild
selcand flycheck cl-extra json map find-func help-mode rx subr-x header2
sticky-windows company edmacro kmacro pcase dedicated dash-functional
plusx my-emacs-settings paren server isearch-fast-reverse buttons
zoom-global easy-mmode quick-yes advice goto-last-change f dash s
finder-inf info cl package easymenu epg-config url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv
cl-loaddefs cl-lib 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 lcms2 dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)
Memory information:
((conses 16 673320 196983)
(symbols 48 61368 5)
(miscs 40 172 969)
(strings 32 181336 13034)
(string-bytes 1 5257400)
(vectors 16 63104)
(vector-slots 8 1715778 179668)
(floats 8 375 372)
(intervals 56 3117 124)
(buffers 992 27))
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation
2019-04-07 21:26 bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation Ernesto Alfonso
@ 2019-07-09 16:08 ` Lars Ingebrigtsen
2019-07-09 18:23 ` Michael Heerdegen
0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2019-07-09 16:08 UTC (permalink / raw)
To: Ernesto Alfonso; +Cc: 35186
Ernesto Alfonso <erjoalgo@gmail.com> writes:
> $ cat foo.el
> (defun foo ()
> (some irrelevant form)
> (a . b))
> $ emacs -Q --batch -f batch-byte-compile foo.el
> In toplevel form:
> /tmp/foo.el:1:8:Error: Wrong type argument: sequencep, b
That's not an optimal error message; no.
I've been trying to find out what part of the byte compiler/reader
machinery is outputting it, but I haven't found it -- does anybody else
know where this is coming from?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation
2019-07-09 16:08 ` Lars Ingebrigtsen
@ 2019-07-09 18:23 ` Michael Heerdegen
2020-08-20 15:28 ` Lars Ingebrigtsen
0 siblings, 1 reply; 7+ messages in thread
From: Michael Heerdegen @ 2019-07-09 18:23 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Ernesto Alfonso, 35186
Lars Ingebrigtsen <larsi@gnus.org> writes:
> I've been trying to find out what part of the byte compiler/reader
> machinery is outputting it, but I haven't found it -- does anybody else
> know where this is coming from?
AFAICT it comes from these lines (line 776 and following) in
`cconv-analyze-form' in cconv.el:
#+begin_src emacs-lisp
(`(,_ . ,body-forms) ; First element is a function or whatever.
(dolist (form body-forms) (cconv-analyze-form form env)))
#+end_src
It's not an explicit error but just dolist barfing.
Michael.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation
2019-07-09 18:23 ` Michael Heerdegen
@ 2020-08-20 15:28 ` Lars Ingebrigtsen
2020-08-20 16:03 ` Michael Heerdegen
0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2020-08-20 15:28 UTC (permalink / raw)
To: Michael Heerdegen; +Cc: Ernesto Alfonso, 35186
Michael Heerdegen <michael_heerdegen@web.de> writes:
> AFAICT it comes from these lines (line 776 and following) in
> `cconv-analyze-form' in cconv.el:
>
> #+begin_src emacs-lisp
> (`(,_ . ,body-forms) ; First element is a function or whatever.
> (dolist (form body-forms) (cconv-analyze-form form env)))
> #+end_src
>
> It's not an explicit error but just dolist barfing.
I've tried sprinkling some messaging liberally over cconv-analyze-form,
and I'm unable to make it trigger in the test case. It does seem likely
that the error is from a dolist somewhere, but it seems to happen before
we get to that function...
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation
2020-08-20 15:28 ` Lars Ingebrigtsen
@ 2020-08-20 16:03 ` Michael Heerdegen
2020-08-20 16:28 ` Lars Ingebrigtsen
0 siblings, 1 reply; 7+ messages in thread
From: Michael Heerdegen @ 2020-08-20 16:03 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Ernesto Alfonso, 35186
Lars Ingebrigtsen <larsi@gnus.org> writes:
> I've tried sprinkling some messaging liberally over cconv-analyze-form,
> and I'm unable to make it trigger in the test case. It does seem likely
> that the error is from a dolist somewhere, but it seems to happen before
> we get to that function...
Did you enable lexical-binding mode? I guess it will make a difference.
A had done it AFAIR.
Michael.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation
2020-08-20 16:03 ` Michael Heerdegen
@ 2020-08-20 16:28 ` Lars Ingebrigtsen
2021-09-22 21:47 ` Lars Ingebrigtsen
0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2020-08-20 16:28 UTC (permalink / raw)
To: Michael Heerdegen; +Cc: Ernesto Alfonso, 35186, Stefan Monnier
Michael Heerdegen <michael_heerdegen@web.de> writes:
> Lars Ingebrigtsen <larsi@gnus.org> writes:
>
>> I've tried sprinkling some messaging liberally over cconv-analyze-form,
>> and I'm unable to make it trigger in the test case. It does seem likely
>> that the error is from a dolist somewhere, but it seems to happen before
>> we get to that function...
>
> Did you enable lexical-binding mode? I guess it will make a difference.
> A had done it AFAIR.
Ah, yes, that made a difference. With the following patch I get:
larsi@xo:~/src/emacs/trunk$ emake ; ./src/emacs -Q --batch -f batch-byte-compile /tmp/r.el
ELC emacs-lisp/cconv.elc
In toplevel form:
/tmp/r.el:3:1: Error: Wrong type argument: proper-list-p, (a . b)
Does this makes sense to everybody?
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el
index 351a097ad1..c024cda876 100644
--- a/lisp/emacs-lisp/cconv.el
+++ b/lisp/emacs-lisp/cconv.el
@@ -750,6 +750,8 @@ cconv-analyze-form
;; (`(declare . ,_) nil) ;The args don't contain code.
(`(,_ . ,body-forms) ; First element is a function or whatever.
+ (unless (listp body-forms)
+ (signal 'wrong-type-argument (list 'proper-list-p form)))
(dolist (form body-forms) (cconv-analyze-form form env)))
((pred symbolp)
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply related [flat|nested] 7+ messages in thread
* bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation
2020-08-20 16:28 ` Lars Ingebrigtsen
@ 2021-09-22 21:47 ` Lars Ingebrigtsen
0 siblings, 0 replies; 7+ messages in thread
From: Lars Ingebrigtsen @ 2021-09-22 21:47 UTC (permalink / raw)
To: Michael Heerdegen; +Cc: Ernesto Alfonso, 35186, Stefan Monnier
Lars Ingebrigtsen <larsi@gnus.org> writes:
> Does this makes sense to everybody?
There wasn't any response in a year, but the change doesn't seem to lead
to any regressions, and it fixes the reported issue, so I've now pushed
it to Emacs 28.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-09-22 21:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-07 21:26 bug#35186: 26.1; confusing error message and location on eager dotted pair evaluation Ernesto Alfonso
2019-07-09 16:08 ` Lars Ingebrigtsen
2019-07-09 18:23 ` Michael Heerdegen
2020-08-20 15:28 ` Lars Ingebrigtsen
2020-08-20 16:03 ` Michael Heerdegen
2020-08-20 16:28 ` Lars Ingebrigtsen
2021-09-22 21:47 ` Lars Ingebrigtsen
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.