Subject: bug#66025: 30.0.50; eldoc.el: eldoc--invoke-strategy: register-doc defined with 4 args, called with 5

From: Vladimir Nikishkin <[email-masked]>
Date: Sat, 16 Sep 2023 17:16:14 +0800

Emacs master, hash f13b08be11533c546fed257dcf8e3812a53b672a

Line 883 in file eldoc.el defines a lexical function register-doc with 4
argumenst (pos string plist origin), which is later, at line 931, called
with 5 arguments, (register-doc 0 res nil nil
eldoc-documentation-strategy), which leads to an exception.

I encountered this error with mu4e, which is, I guess, using the "old
protocol" for its documentation functions. mu4e's documentation function
is mu4e-headers-eldoc-function, which returns a string. I haven't
understood the differences between the "new protocol" and the "old
protocol", but I guess, in the new protocol there is some callback to
call with the doc message, i.e. the function cannot just return a
string.

In GNU Emacs 30.0.50 (build 1, x86_64-slackware-linux-gnu, GTK+ Version
 3.24.31, cairo version 1.16.0) of 2023-09-14 built on
 laptop.lockywolf.net
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Slackware 15.0 x86_64

Configured using:
 'configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc
 --localstatedir=/var --program-prefix= --program-suffix=
 --mandir=/usr/man --infodir=/usr/info --without-gconf
 --without-gsettings --with-modules --with-native-compilation=no
 --with-json --with-imagemagick --with-pdumper --with-xwidgets
 --enable-year2038 --with-tree-sitter --with-cairo-xcb
 --build=x86_64-slackware-linux 'CFLAGS=-O2 -fPIC -g''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ IMAGEMAGICK
JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE
XIM XINPUT2 XPM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LC_COLLATE: C
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: mu4e:headers

Minor modes in effect:
  memento-mori-mode: t
  highlight-doxygen-global-mode: t
  hes-mode: t
  global-highlight-parentheses-mode: t
  highlight-parentheses-mode: t
  global-color-identifiers-mode: t
  idle-org-agenda-mode: t
  mu4e-search-minor-mode: t
  mu4e-update-minor-mode: t
  mu4e-context-minor-mode: t
  mu4e-modeline-mode: t
  ido-everywhere: t
  TeX-PDF-mode: t
  TeX-source-correlate-mode: t
  async-bytecomp-package-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  global-flycheck-mode: t
  global-hl-todo-mode: t
  gdb-many-windows: t
  global-company-mode: t
  company-mode: t
  auto-insert-mode: t
  pdf-occur-global-minor-mode: t
  shackle-mode: t
  global-auto-revert-mode: t
  electric-pair-mode: t
  which-function-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  global-display-fill-column-indicator-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  windmove-mode: t
  savehist-mode: t
  recentf-mode: t
  save-place-mode: t
  super-save-mode: t
  xterm-mouse-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  auto-save-visited-mode: t
  abbrev-mode: t

Load-path shadows:
/home/lockywolf/.emacs.d/elpa/company-cmake-0.1/company-cmake hides /home/lockywolf/.emacs.d/elpa/company-20230303.2331/company-cmake
/home/lockywolf/OfficialRepos/org-noter/org-noter hides /home/lockywolf/.emacs.d/elpa/org-noter-20230728.2037/org-noter
/home/lockywolf/OfficialRepos/org-noter/org-noter-core hides /home/lockywolf/.emacs.d/elpa/org-noter-20230728.2037/org-noter-core
/home/lockywolf/.emacs.d/elpa/cmake-mode-20230323.1312/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/lockywolf/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /usr/share/emacs/30.0.50/lisp/use-package/bind-key
/home/lockywolf/.emacs.d/elpa/flim-20230205.1423/sasl hides /usr/share/emacs/30.0.50/lisp/net/sasl

Features:
(shadow emacsbug apropos edebug bbdb-mu4e disass org-lint mailalias
quail reftex-cite reftex-global reftex-index reftex-ref reftex-parse
reftex-sel lisp-mnt network-stream url-cache shortdoc comp comp-cstr
ffap cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew
holidays holiday-loaddefs shr-color mm-archive sort gnus-cite mail-extr
textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check qp vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs
log-view bug-reference matlab matlab-scan matlab-syntax matlab-compat
pulse magit-extras face-remap preview reftex-toc reftex-dcr reftex-auc
font-latex plain-tex tex-mode misearch multi-isearch tabify cus-start
ob-R ob-awk ob-calc calc-store calc-trail calc-ext ob-clojure ob-css
ob-dot ob-eshell ob-forth ob-gnuplot ob-groovy ob-haskell ob-java ob-js
ob-julia ob-lilypond ob-lisp ob-lua ob-makefile ob-ocaml ob-octave
ob-org ob-perl ob-processing ob-python python ob-ruby ob-sass ob-screen
ob-sed ob-sqlite ob-sql ob-J ob-abc ob-asymptote ob-coq ob-csharp
ob-ebnf ebnf2ps ob-fomus ob-hledger ob-io ob-ledger ob-mathomatic
ob-mscgen ob-oz ob-picolisp ob-shen ob-tcl ob-vala ob-vbnet ob-jupyter
jupyter-tramp tramp-cache jupyter-server jupyter-server-ioloop
jupyter-ioloop-comm jupyter-ioloop zmq zmq-core jupyter-rest-api
jupyter-org-extensions jupyter-org-client jupyter-repl
jupyter-kernel-manager jupyter-channel jupyter-widget-client websocket
simple-httpd jupyter-client jupyter-comm-layer jupyter-messages hmac-def
jupyter-mime jupyter-kernelspec jupyter-env jupyter-base eieio-base
ob-ditaa org-colview org-ctags org-mouse org-plot ob-eukleides
org-checklist org-collector org-invoice org-learn org-mairix org-toc
ox-extra ess-tracebug ess-utils ess-custom time-stamp cl-print vc-git
org-eldoc geiser-mode geiser-xref geiser-compile geiser-debug
geiser-racket geiser-mit geiser-chibi geiser-chez info-look geiser-repl
geiser-image geiser-capf geiser-doc geiser-menu geiser-autodoc
geiser-edit geiser-completion geiser-eval geiser-connection
geiser-syntax geiser-log geiser-popup view org-num oc-basic disp-table
ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview
ol-bbdb ol-w3m ol-doi org-link-doi dired-aux company-oddmuse
company-keywords make-mode company-etags company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb init rc-local lockywolf-postamble-laptop
display-line-numbers lockywolf-exwm exwm exwm-input xcb-keysyms
exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout
exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xkb xcb-xproto
xcb-types xcb-debug lockywolf-erc erc-track erc-match erc erc-backend
erc-networks erc-common erc-compat erc-loaddefs lockywolf-equake equake
lockywolf-gui-x11 hamburger-menu lockywolf-gui-general diary-lib
diary-loaddefs memento-mori highlight-doxygen highlight-escape-sequences
highlight-parentheses rainbow-mode color-identifiers-mode prettify-greek
form-feed tsdh-dark-theme lockywolf-calc calc calc-loaddefs rect
calc-macs lockywolf-monitoring idle-org-agenda
lockywolf-autocomplete-ido lockywolf-org-scientific-large org-download
org-attach org-mind-map org-sticky-header org-pdftools pdf-annot
facemenu org-noter org-noter-djvu org-noter-nov org-noter-pdf
org-noter-core org2blog ox-wp writegood-mode metaweblog xml-rpc url-http
url-auth url-gw nsm hydra lv htmlize org-journal org-crypt cal-iso
org-sidebar org-ql-search org-ql-view ov org-super-agenda ht f
f-shortdoc org-ql peg ts org-habit org-duration s org-mru-clock
org-capture ox-beamer ox-org ox-md 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 org-agenda ox-html table ox-ascii
ox-publish ox org-clock ob-maxima ob-fortran ob-shell ob-latex ob-scheme
geiser-impl help-fns radix-tree geiser-custom geiser-base geiser ob-C
ob-plantuml org-tempo tempo org-protocol ox-youtube org-ebib
org-bibtex-extras ol-bibtex ox-bibtex org-inlinetask
org-fancy-priorities lockywolf-cryptography pinentry lockywolf-elfeed
lockywolf-email-pim bbdb bbdb-site timezone gnus-dired mu4e-speedbar
speedbar ezimage dframe mu4e mu4e-org mu4e-notification notifications
mu4e-main mu4e-view gnus-art mm-uu mml2015 mm-view mml-smime smime
gnutls dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud
nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range
gnus-win mu4e-headers mu4e-compose mu4e-draft mu4e-actions mu4e-search
mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill mu4e-contacts
mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server
mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido
mu4e-obsolete message-view-patch auth-source-xoauth2 auth-source-pass
smtpmail-multi smtpmail khardel yaml-mode vdirel org-vcard lockywolf-tex
company-auctex vdm-snippets yasnippet bib-cite auctex-latexmk latex
latex-flymake tex-ispell tex-style tex texmathp cdlatex lockywolf-bibtex
ebib helm helm-global-bindings helm-easymenu helm-core async-bytecomp
helm-source helm-multi-match helm-lib async ebib-reading-list ebib-notes
org-element org-persist org-id org-refile org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list
org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval
org-cycle org-table org-keys oc org-loaddefs cal-menu calendar
cal-loaddefs ol org-fold org-fold-core org-compat avl-tree org-version
org-macs ebib-filters ebib-keywords ebib-utils ebib-db parsebib
mule-util bibretrieve bibtex-utils reftex reftex-loaddefs reftex-vars
bibtex lockywolf-plantuml flycheck-plantuml plantuml-mode
lockywolf-matlab lockywolf-scheme scheme-complete scheme
lockywolf-emacs-lisp paredit-menu paredit lockywolf-helm lockywolf-vala
vala-mode cc-langs lockywolf-cpp clang-format+ clang-format eldoc-cmake
cmake-mode rst company-c-headers flycheck-clangcheck google-c-style
cc-mode cc-fonts cc-guess cc-menus cc-cmds lockywolf-fortran f90
lockywolf-bash sh-script smie treesit executable
lockywolf-version-control magit-bookmark magit-submodule magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log magit-diff smerge-mode git-commit log-edit message
sendmail yank-media rfc822 mml mml-sec epa epg epg-config mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor server magit-mode transient
magit-git magit-base crm magit-section vc vc-dispatcher
lockywolf-spellchecking-hard languagetool languagetool-server
languagetool-console languagetool-java languagetool-issue
languagetool-correction languagetool-core flycheck
lockywolf-spellchecking-simple hl-todo compat flyspell ispell
lockywolf-debugging gdb-mi bindat gud lockywolf-advanced-editing eglot
external-completion jsonrpc flymake-proc flymake diff diff-mode ert
debug backtrace warnings markdown-mode color company autoinsert ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util lockywolf-ggtags ggtags hippie-exp etags fileloop xref
project ewoc lockywolf-tramp lockywolf-shells esh-help dash em-unix
em-smart esh-mode esh-var eshell esh-cmd generator esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-groups esh-util
lockywolf-paper-pdf-djvu djvu pdf-occur ibuf-ext ibuffer
ibuffer-loaddefs tablist advice tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local find-func
cedet pdf-isearch let-alist pdf-misc pdf-tools pdf-view derived
pdf-cache pdf-info tq pdf-util pdf-macs doc-view jka-compr image-mode
exif ps-print ps-print-loaddefs lpr lockywolf-downloaded-packages
diminish shackle trace mic-paren cl lockywolf-dired dired-x
lockywolf-standard-packages eww url-queue thingatpt shr pixel-fill
kinsoku url-file svg dom puny mm-url gnus nnheader gnus-util range woman
man info-colors secrets dbus xml locate dired dired-loaddefs arc-mode
archive-mode compile autorevert filenotify elec-pair which-func imenu
hl-line display-fill-column-indicator hi-lock foldout edmacro kmacro
noutline outline windmove bookmark text-property-search savehist recentf
tree-widget saveplace tramp-sh tramp rx trampver tramp-integration
files-x tramp-message tramp-compat xdg shell pcomplete comint ansi-osc
ring parse-time iso8601 time-date format-spec ansi-color tramp-loaddefs
super-save rmail rfc6068 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils image-file image-converter cl-extra help-mode
lockywolf-handy-own-functions-keybindings lockywolf-basic-init xt-mouse
use-package-ensure-system-package system-packages cus-edit pp cus-load
icons wid-edit use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode
use-package-core init-custom 0blayout-autoloads auctex-latexmk-autoloads
auth-source-xoauth2-autoloads bibtex-completion-autoloads
biblio-autoloads biblio-core-autoloads bind-key-autoloads
cdlatex-autoloads centered-cursor-mode-autoloads chatgpt-shell-autoloads
citeproc-autoloads cmake-font-lock-autoloads cmake-mode-autoloads
color-identifiers-mode-autoloads anaconda-mode-autoloads
auctex-autoloads tex-site company-emoji-autoloads company-math-autoloads
ac-php-core-autoloads company-quickhelp-autoloads
company-shell-autoloads company-autoloads consult-eglot-autoloads
consult-autoloads csv-mode-autoloads debpaste-autoloads
diminish-autoloads djvu-autoloads ebib-autoloads elisp-depmap-autoloads
emms-info-mediainfo-autoloads emms-autoloads ess-autoloads
exwm-x-autoloads exwm-autoloads flycheck-phpstan-autoloads
flymake-easy-autoloads geiser-chez-autoloads geiser-chibi-autoloads
geiser-mit-autoloads geiser-racket-autoloads geiser-stklos-autoloads
geiser-autoloads flycheck-autoloads gitlab-pipeline-autoloads
ghub-autoloads go-mode-autoloads graphviz-dot-mode-autoloads
highlight-doxygen-autoloads highlight-escape-sequences-autoloads
highlight-parentheses-autoloads info-colors-autoloads jabber-autoloads
fsm-autoloads jupyter-autoloads khardel-autoloads kotlin-mode-autoloads
languagetool-autoloads lua-mode-autoloads magit-todos-autoloads
hl-todo-autoloads markdown-preview-mode-autoloads
markdown-mode-autoloads math-symbol-lists-autoloads
matlab-mode-autoloads message-view-patch-autoloads magit-autoloads pcase
magit-section-autoloads git-commit-autoloads mic-paren-autoloads
mu4e-jump-to-list-autoloads org-contrib-autoloads org-download-autoloads
org-journal-autoloads org-mru-clock-autoloads org-pdftools-autoloads
org-noter-autoloads org-sidebar-autoloads org-ql-autoloads finder-inf
org-sticky-header-autoloads org-super-agenda-autoloads
org2blog-autoloads metaweblog-autoloads ov-autoloads paredit-autoloads
parsebib-autoloads pcre2el-autoloads pcsv-autoloads
pdf-view-pagemark-autoloads pdf-tools-autoloads peg-autoloads
phpstan-autoloads php-mode-autoloads pos-tip-autoloads
pythonic-autoloads f-autoloads qml-mode-autoloads qt-pro-mode-autoloads
queue-autoloads rainbow-mode-autoloads semi-autoloads flim-autoloads
apel-autoloads shell-maker-autoloads sml-mode-autoloads
spell-fu-autoloads sr-speedbar-autoloads srv-autoloads
string-inflection-autoloads sudo-edit-autoloads tablist-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
hydra-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads
treepy-autoloads ts-autoloads dash-autoloads cc-styles cc-align
cc-engine cc-vars cc-defs vdirel-autoloads helm-autoloads
popup-autoloads helm-core-autoloads async-autoloads org-vcard-autoloads
websocket-autoloads with-editor-autoloads info compat-autoloads
writegood-mode-autoloads xml-rpc-autoloads yaml-mode-autoloads
s-autoloads zmq-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv
bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine 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 emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads
xwidget-internal dbusbind inotify lcms2 dynamic-setting
font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process emacs)

Memory information:
((conses 16 3864950 882480) (symbols 48 113617 17) (strings 32 633747 24848)
 (string-bytes 1 20186172) (vectors 16 226420) (vector-slots 8 4433891 370964)
 (floats 8 1839 29516) (intervals 56 242677 11539) (buffers 992 74))

-- 
Your sincerely,
Vladimir Nikishkin (MiEr, lockywolf)
(Laptop)