Package: emacs;
Reported by: Bohong Huang <bohonghuang <at> qq.com>
Date: Sun, 16 Mar 2025 12:10:01 UTC
Severity: normal
Found in version 30.1
To reply to this bug, email your comments to 77047 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#77047
; Package emacs
.
(Sun, 16 Mar 2025 12:10:01 GMT) Full text and rfc822 format available.Bohong Huang <bohonghuang <at> qq.com>
:bug-gnu-emacs <at> gnu.org
.
(Sun, 16 Mar 2025 12:10:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Bohong Huang <bohonghuang <at> qq.com> To: bug-gnu-emacs <at> gnu.org Subject: 30.1; `cl-defgeneric`'s docstrings in `:documentation` are not recognized by `checkdoc` Date: Sun, 16 Mar 2025 15:06:08 +0800
Hello Emacs maintainers, While using `cl-defgeneric` from `cl-lib`, I noticed that even when I write the docstring in `(:documentation "...")`, checkdoc still complains that it is undefined. However, the documentation for `cl-defgeneric` does state two supported ways to define docstrings. Could this be a checkdoc-related bug? I am aware that placing the docstring directly in the body (as the sole form) silences the error. However, in fact, ANSI CL does not permit this, and treating a lone string in the `cl-defgeneric` body as a docstring can be ambiguous. Considering that since Emacs 30, `defun` no longer treats a lone string in the body as a docstring, for consistency, `cl-defgeneric` should follow suit. However, this would imply providing a default method that returns a string. My suggestion is to discourage docstrings in the body (aligning with `defun`) and encourage using `(:documentation)` when declaring a generic function without a default method, and allow the current syntax (docstring in the body) only when defining both the generic function and its default method. What are your thoughts on this? Thank you in advance for your time and consideration. Best regards, Bohong Huang --- In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.48, cairo version 1.18.2) System Description: Manjaro Linux Configured using: 'configure --with-pgtk --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib --localstatedir=/var --disable-build-details --with-cairo --with-harfbuzz --with-libsystemd --with-modules --with-native-compilation=aot --with-tree-sitter 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto' 'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs -flto=auto'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB Important settings: value of $LC_MONETARY: zh_CN.UTF-8 value of $LC_NUMERIC: zh_CN.UTF-8 value of $LC_TIME: zh_CN.UTF-8 value of $LANG: zh_CN.UTF-8 value of $XMODIFIERS: @im=fcitx locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t auto-revert-mode: t server-mode: t flymake-popon-mode: t hl-line-mode: t display-line-numbers-mode: t corfu-popupinfo-mode: t corfu-mode: t indent-yank-mode: t flymake-mode: t undo-hl-mode: t org-roam-db-autosync-mode: t org-media-note-mode: t rainbow-delimiters-mode: t org-edna-mode: t recentf-mode: t savehist-mode: t nerd-icons-completion-mode: t marginalia-mode: t tempel-tab-mode: t show-smartparens-mode: t smartparens-mode: t repeat-mode: t which-key-mode: t sis-global-context-mode: t sis-context-mode: t sis-global-respect-mode: t sis-global-cursor-color-mode: t sis-auto-refresh-mode: t isearch-mb-mode: t global-treesit-auto-mode: t pixel-scroll-precision-mode: t popper-echo-mode: t popper-mode: t cnfonts-mode: t vertico-mouse-mode: t vertico-mode: t mode-line-bell-mode: t doom-modeline-mode: t winner-mode: t minibuffer-depth-indicate-mode: t override-global-mode: t url-handler-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t context-menu-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-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 hs-minor-mode: t Load-path shadows: /home/coco24/.emacs.d/elpa/vertico-directory-20221123.14415/vertico-directory hides /home/coco24/.emacs.d/elpa/vertico-20250311.1655/vertico-directory /home/coco24/.emacs.d/elpa/cmake-mode-20250304.1338/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode /home/coco24/.emacs.d/elpa/which-key-20240620.2145/which-key hides /usr/share/emacs/30.1/lisp/which-key /home/coco24/.emacs.d/elpa/transient-20250312.1453/transient hides /usr/share/emacs/30.1/lisp/transient /home/coco24/.emacs.d/elpa/jsonrpc-1.0.25.0.20250225.2515/jsonrpc hides /usr/share/emacs/30.1/lisp/jsonrpc /home/coco24/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /usr/share/emacs/30.1/lisp/bind-key /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package hides /usr/share/emacs/30.1/lisp/use-package/use-package /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /usr/share/emacs/30.1/lisp/use-package/use-package-lint /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /usr/share/emacs/30.1/lisp/use-package/use-package-jump /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /usr/share/emacs/30.1/lisp/use-package/use-package-ensure /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /usr/share/emacs/30.1/lisp/use-package/use-package-diminish /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /usr/share/emacs/30.1/lisp/use-package/use-package-delight /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /usr/share/emacs/30.1/lisp/use-package/use-package-core /home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /usr/share/emacs/30.1/lisp/use-package/use-package-bind-key /home/coco24/.emacs.d/elpa/peg-1.0.1.0.20221221.81502/peg hides /usr/share/emacs/30.1/lisp/progmodes/peg /home/coco24/.emacs.d/elpa/eglot-1.18/eglot hides /usr/share/emacs/30.1/lisp/progmodes/eglot /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox hides /usr/share/emacs/30.1/lisp/org/ox /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-texinfo hides /usr/share/emacs/30.1/lisp/org/ox-texinfo /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-publish hides /usr/share/emacs/30.1/lisp/org/ox-publish /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-org hides /usr/share/emacs/30.1/lisp/org/ox-org /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-odt hides /usr/share/emacs/30.1/lisp/org/ox-odt /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-md hides /usr/share/emacs/30.1/lisp/org/ox-md /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-man hides /usr/share/emacs/30.1/lisp/org/ox-man /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-latex hides /usr/share/emacs/30.1/lisp/org/ox-latex /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-koma-letter hides /usr/share/emacs/30.1/lisp/org/ox-koma-letter /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-icalendar hides /usr/share/emacs/30.1/lisp/org/ox-icalendar /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-html hides /usr/share/emacs/30.1/lisp/org/ox-html /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-beamer hides /usr/share/emacs/30.1/lisp/org/ox-beamer /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ox-ascii hides /usr/share/emacs/30.1/lisp/org/ox-ascii /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org hides /usr/share/emacs/30.1/lisp/org/org /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-version hides /usr/share/emacs/30.1/lisp/org/org-version /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-timer hides /usr/share/emacs/30.1/lisp/org/org-timer /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-tempo hides /usr/share/emacs/30.1/lisp/org/org-tempo /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-table hides /usr/share/emacs/30.1/lisp/org/org-table /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-src hides /usr/share/emacs/30.1/lisp/org/org-src /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-refile hides /usr/share/emacs/30.1/lisp/org/org-refile /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-protocol hides /usr/share/emacs/30.1/lisp/org/org-protocol /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-plot hides /usr/share/emacs/30.1/lisp/org/org-plot /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-persist hides /usr/share/emacs/30.1/lisp/org/org-persist /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-pcomplete hides /usr/share/emacs/30.1/lisp/org/org-pcomplete /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-num hides /usr/share/emacs/30.1/lisp/org/org-num /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-mouse hides /usr/share/emacs/30.1/lisp/org/org-mouse /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-mobile hides /usr/share/emacs/30.1/lisp/org/org-mobile /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-macs hides /usr/share/emacs/30.1/lisp/org/org-macs /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-macro hides /usr/share/emacs/30.1/lisp/org/org-macro /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-loaddefs hides /usr/share/emacs/30.1/lisp/org/org-loaddefs /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-list hides /usr/share/emacs/30.1/lisp/org/org-list /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-lint hides /usr/share/emacs/30.1/lisp/org/org-lint /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-keys hides /usr/share/emacs/30.1/lisp/org/org-keys /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-inlinetask hides /usr/share/emacs/30.1/lisp/org/org-inlinetask /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-indent hides /usr/share/emacs/30.1/lisp/org/org-indent /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-id hides /usr/share/emacs/30.1/lisp/org/org-id /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-habit hides /usr/share/emacs/30.1/lisp/org/org-habit /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-goto hides /usr/share/emacs/30.1/lisp/org/org-goto /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-footnote hides /usr/share/emacs/30.1/lisp/org/org-footnote /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-fold hides /usr/share/emacs/30.1/lisp/org/org-fold /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-fold-core hides /usr/share/emacs/30.1/lisp/org/org-fold-core /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-feed hides /usr/share/emacs/30.1/lisp/org/org-feed /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-faces hides /usr/share/emacs/30.1/lisp/org/org-faces /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-entities hides /usr/share/emacs/30.1/lisp/org/org-entities /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-element hides /usr/share/emacs/30.1/lisp/org/org-element /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-element-ast hides /usr/share/emacs/30.1/lisp/org/org-element-ast /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-duration hides /usr/share/emacs/30.1/lisp/org/org-duration /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-datetree hides /usr/share/emacs/30.1/lisp/org/org-datetree /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-cycle hides /usr/share/emacs/30.1/lisp/org/org-cycle /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-ctags hides /usr/share/emacs/30.1/lisp/org/org-ctags /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-crypt hides /usr/share/emacs/30.1/lisp/org/org-crypt /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-compat hides /usr/share/emacs/30.1/lisp/org/org-compat /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-colview hides /usr/share/emacs/30.1/lisp/org/org-colview /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-clock hides /usr/share/emacs/30.1/lisp/org/org-clock /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-capture hides /usr/share/emacs/30.1/lisp/org/org-capture /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-attach hides /usr/share/emacs/30.1/lisp/org/org-attach /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-attach-git hides /usr/share/emacs/30.1/lisp/org/org-attach-git /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-archive hides /usr/share/emacs/30.1/lisp/org/org-archive /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/org-agenda hides /usr/share/emacs/30.1/lisp/org/org-agenda /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol hides /usr/share/emacs/30.1/lisp/org/ol /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-w3m hides /usr/share/emacs/30.1/lisp/org/ol-w3m /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-rmail hides /usr/share/emacs/30.1/lisp/org/ol-rmail /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-mhe hides /usr/share/emacs/30.1/lisp/org/ol-mhe /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-man hides /usr/share/emacs/30.1/lisp/org/ol-man /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-irc hides /usr/share/emacs/30.1/lisp/org/ol-irc /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-info hides /usr/share/emacs/30.1/lisp/org/ol-info /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-gnus hides /usr/share/emacs/30.1/lisp/org/ol-gnus /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-eww hides /usr/share/emacs/30.1/lisp/org/ol-eww /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-eshell hides /usr/share/emacs/30.1/lisp/org/ol-eshell /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-doi hides /usr/share/emacs/30.1/lisp/org/ol-doi /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-docview hides /usr/share/emacs/30.1/lisp/org/ol-docview /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-bibtex hides /usr/share/emacs/30.1/lisp/org/ol-bibtex /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ol-bbdb hides /usr/share/emacs/30.1/lisp/org/ol-bbdb /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/oc hides /usr/share/emacs/30.1/lisp/org/oc /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/oc-natbib hides /usr/share/emacs/30.1/lisp/org/oc-natbib /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/oc-csl hides /usr/share/emacs/30.1/lisp/org/oc-csl /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/oc-bibtex hides /usr/share/emacs/30.1/lisp/org/oc-bibtex /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/oc-biblatex hides /usr/share/emacs/30.1/lisp/org/oc-biblatex /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/oc-basic hides /usr/share/emacs/30.1/lisp/org/oc-basic /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob hides /usr/share/emacs/30.1/lisp/org/ob /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-tangle hides /usr/share/emacs/30.1/lisp/org/ob-tangle /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-table hides /usr/share/emacs/30.1/lisp/org/ob-table /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-sqlite hides /usr/share/emacs/30.1/lisp/org/ob-sqlite /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-sql hides /usr/share/emacs/30.1/lisp/org/ob-sql /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-shell hides /usr/share/emacs/30.1/lisp/org/ob-shell /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-sed hides /usr/share/emacs/30.1/lisp/org/ob-sed /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-screen hides /usr/share/emacs/30.1/lisp/org/ob-screen /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-scheme hides /usr/share/emacs/30.1/lisp/org/ob-scheme /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-sass hides /usr/share/emacs/30.1/lisp/org/ob-sass /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-ruby hides /usr/share/emacs/30.1/lisp/org/ob-ruby /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-ref hides /usr/share/emacs/30.1/lisp/org/ob-ref /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-python hides /usr/share/emacs/30.1/lisp/org/ob-python /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-processing hides /usr/share/emacs/30.1/lisp/org/ob-processing /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-plantuml hides /usr/share/emacs/30.1/lisp/org/ob-plantuml /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-perl hides /usr/share/emacs/30.1/lisp/org/ob-perl /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-org hides /usr/share/emacs/30.1/lisp/org/ob-org /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-octave hides /usr/share/emacs/30.1/lisp/org/ob-octave /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-ocaml hides /usr/share/emacs/30.1/lisp/org/ob-ocaml /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-maxima hides /usr/share/emacs/30.1/lisp/org/ob-maxima /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-matlab hides /usr/share/emacs/30.1/lisp/org/ob-matlab /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-makefile hides /usr/share/emacs/30.1/lisp/org/ob-makefile /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-lua hides /usr/share/emacs/30.1/lisp/org/ob-lua /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-lob hides /usr/share/emacs/30.1/lisp/org/ob-lob /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-lisp hides /usr/share/emacs/30.1/lisp/org/ob-lisp /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-lilypond hides /usr/share/emacs/30.1/lisp/org/ob-lilypond /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-latex hides /usr/share/emacs/30.1/lisp/org/ob-latex /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-julia hides /usr/share/emacs/30.1/lisp/org/ob-julia /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-js hides /usr/share/emacs/30.1/lisp/org/ob-js /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-java hides /usr/share/emacs/30.1/lisp/org/ob-java /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-haskell hides /usr/share/emacs/30.1/lisp/org/ob-haskell /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-groovy hides /usr/share/emacs/30.1/lisp/org/ob-groovy /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-gnuplot hides /usr/share/emacs/30.1/lisp/org/ob-gnuplot /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-fortran hides /usr/share/emacs/30.1/lisp/org/ob-fortran /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-forth hides /usr/share/emacs/30.1/lisp/org/ob-forth /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-exp hides /usr/share/emacs/30.1/lisp/org/ob-exp /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-eval hides /usr/share/emacs/30.1/lisp/org/ob-eval /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-eshell hides /usr/share/emacs/30.1/lisp/org/ob-eshell /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-emacs-lisp hides /usr/share/emacs/30.1/lisp/org/ob-emacs-lisp /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-dot hides /usr/share/emacs/30.1/lisp/org/ob-dot /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-ditaa hides /usr/share/emacs/30.1/lisp/org/ob-ditaa /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-css hides /usr/share/emacs/30.1/lisp/org/ob-css /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-core hides /usr/share/emacs/30.1/lisp/org/ob-core /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-comint hides /usr/share/emacs/30.1/lisp/org/ob-comint /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-clojure hides /usr/share/emacs/30.1/lisp/org/ob-clojure /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-calc hides /usr/share/emacs/30.1/lisp/org/ob-calc /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-awk hides /usr/share/emacs/30.1/lisp/org/ob-awk /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-R hides /usr/share/emacs/30.1/lisp/org/ob-R /home/coco24/.emacs.d/elpa/org-9.8pre0.20250312.181832/ob-C hides /usr/share/emacs/30.1/lisp/org/ob-C /home/coco24/.emacs.d/elpa/track-changes-1.4.0.20250312.1734/track-changes hides /usr/share/emacs/30.1/lisp/emacs-lisp/track-changes /home/coco24/.emacs.d/elpa/eldoc-1.15.0.0.20250304.14245/eldoc hides /usr/share/emacs/30.1/lisp/emacs-lisp/eldoc Features: (shadow sort mail-extr emacsbug cape-char dabbrev cape-keyword magit-extras dired-aux nerd-icons-dired diredfl embark-org embark-consult embark org-srs-stats-interval org-srs-item-card org-srs-algorithm-fsrs org-srs-fuzz org-srs-review-cache org-srs-step fsrs loaddefs-gen tar-mode arc-mode archive-mode quelpa help-fns radix-tree vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view bug-reference 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 git-commit log-edit magit-core magit-autorevert autorevert magit-margin magit-transient magit-process with-editor server magit-mode benchmark magit-git magit-base checkdoc lisp-mnt flymake-popon posframe popon hl-line display-line-numbers corfu-popupinfo nerd-icons-corfu corfu indent-yank hideshow gptel gptel-openai which-func vc tempo srecode soap-client rng-xsd rng-dt rng-util xsd-regexp smerge-mode sieve sieve-mode sieve-manage sasl sasl-anonymous sasl-login sasl-plain pcvs-defs pcvs-util grep glasses gdb-mi bindat gud etags-regen emerge elide-head eglot external-completion jsonrpc flymake ert debug backtrace editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util ede/project-am ede/autoconf-edit autoconf autoconf-mode semantic/find ede/makefile-edit make-mode ede/linux semantic/db semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local ede/make ede/speedbar ede/files ede ede/detect ede/base ede/auto ede/source eieio-base eieio-speedbar speedbar ezimage dframe eieio-custom cedet ebrowse ebuff-menu view diff copyright compare-w cl-font-lock check-declare calculator add-log expand-region text-mode-expansions the-org-mode-expansions er-basic-expansions expand-region-core expand-region-custom tabify lsp-mode lsp-protocol spinner network-stream imenu ht ewoc tramp-cmds undo-hl org-srs-embed org-srs-item-cloze org-srs-review org-srs-query org-srs-item org-srs-log org-srs-table org-srs-time org-srs-algorithm org-srs-property org-download url-http url-auth url-gw nsm async org-appear emacsql-sqlite-builtin sqlite org-roam-protocol org-roam-migrate org-roam-log org-roam-mode org-roam-capture org-roam-id org-roam-node crm org-roam-db org-roam-utils org-roam-compat org-roam emacsql-sqlite emacsql emacsql-compiler magit-section cursor-sensor llama org-tree-slide-ext org-tree-slide org-bars org-indent org-media-note org-media-note-import org-media-note-mpv org-media-note-core mpv tq org-timer org-clock pretty-hydra hydra lv cape yasnippet rainbow-delimiters cdlatex reftex reftex-loaddefs reftex-vars texmathp face-remap oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win ol-docview doc-view filenotify jka-compr image-mode exif dired-ext dired dired-loaddefs ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi smartparens-org org-ext org-attach org-gtd-habitica smartparens-markdown markdown-mode edit-indirect appt diary-lib diary-loaddefs org-gtd org-gtd-upgrades org-habit org-gtd-oops org-gtd-review org-gtd-skip org-gtd-mode org-gtd-areas-of-focus org-gtd-organize org-gtd-process org-gtd-capture org-gtd-projects org-gtd-delegate org-gtd-trash org-gtd-single-action org-gtd-quick-action org-gtd-incubate org-gtd-knowledge org-gtd-archive org-gtd-agenda org-archive org-gtd-habit org-gtd-calendar org-gtd-refile org-gtd-clarify org-gtd-horizons org-gtd-files org-gtd-id org-gtd-core org-gtd-backward-compatibility org-edna org-agenda-property org-agenda org-protocol org-capture transient habitica org-element org-persist org-id org-refile org-element-ast inline avl-tree org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func cal-china-x cal-china lunar solar cal-dst holidays holiday-loaddefs calendar-ext cal-iso cal-menu calendar cal-loaddefs org-version org-compat org-macs tramp-sh tramp-gvfs tramp-cache time-stamp zeroconf dbus xml tramp trampver tramp-integration files-x tramp-message tramp-compat xdg shell pcomplete parse-time iso8601 format-spec tramp-loaddefs vc-git diff-mode track-changes vc-dispatcher smartparens-go go-mode find-file ffap etags fileloop generator xref project recentf tree-widget consult bookmark cus-edit pp cus-start vertico-directory mule-util orderless savehist nerd-icons-completion marginalia tempel smartparens-config smartparens-text smartparens loadhist thingatpt repeat which-key pulse color init compile comint ansi-osc ansi-color sis isearch-mb language-support treesit-auto treesit pixel-scroll cua-base popper-echo popper cnfonts vlf-setup advice vertico-mouse vertico mode-line-bell doom-modeline doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path f s dash nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon compat winner ring mule-cmds paragraphs monokai-theme finder-inf gnus nnheader gnus-util text-property-search time-date mail-utils range mm-util mail-prsvr wid-edit cus-load comp comp-cstr warnings comp-run comp-common kinsoku startup mb-depth elisp-mode-ext edmacro kmacro emacs-ext quelpa-use-package cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core 0blayout-autoloads affe-autoloads anaphora-autoloads anki-editor-autoloads app-launcher-autoloads auctex-autoloads tex-site blueprint-mode-autoloads breadcrumb-autoloads buffer-timer-autoloads cal-china-x-autoloads cape-autoloads cdlatex-autoloads chatgpt-shell-autoloads circe-autoloads citeproc-autoloads citre-autoloads cl-format-autoloads cmake-mode-autoloads cnfonts-autoloads command-log-mode-autoloads commenter-autoloads consult-dir-autoloads consult-emms-autoloads consult-lsp-autoloads corfu-doc-terminal-autoloads corfu-doc-autoloads corfu-terminal-autoloads corfu-autoloads crux-autoloads csv-mode-autoloads dired-narrow-autoloads dired-hacks-utils-autoloads diredfl-autoloads doom-modeline-autoloads doom-modeline-pokemon-autoloads doom-themes-autoloads drag-stuff-autoloads eat-autoloads edit-server-autoloads eglot-tempel-autoloads eglot-autoloads eldoc-box-autoloads eldoc-overlay-autoloads elmacro-autoloads embark-consult-autoloads consult-autoloads embark-autoloads emms-autoloads emms-vgm-autoloads epc-autoloads ctable-autoloads concurrent-autoloads deferred-autoloads esh-autosuggest-autoloads company-autoloads eshell-outline-autoloads eshell-prompt-extras-autoloads eshell-syntax-highlighting-autoloads expand-region-autoloads fd-dired-autoloads fish-completion-autoloads fish-mode-autoloads flycheck-autoloads flymake-popon-autoloads focus-autoloads frameshot-autoloads fsrs-autoloads geiser-guile-autoloads glsl-mode-autoloads go-mode-autoloads go-translate-autoloads gptel-autoloads graphql-autoloads habitica-autoloads hackernews-autoloads hide-mode-line-autoloads highlight-indent-guides-autoloads hnreader-autoloads htmlize-autoloads indent-yank-autoloads inf-clojure-autoloads clojure-mode-autoloads inline-docs-autoloads isearch-mb-autoloads json-mode-autoloads rx json-snatcher-autoloads jsonrpc-autoloads kana-autoloads kind-icon-autoloads kotlin-mode-autoloads kotlin-ts-mode-autoloads latex-math-preview-autoloads leetcode-autoloads aio-autoloads log4e-autoloads lsp-java-autoloads dap-mode-autoloads lsp-docker-autoloads bui-autoloads lsp-pyright-autoloads lsp-treemacs-autoloads lsp-ui-autoloads lsp-mode-autoloads eldoc-autoloads lua-mode-autoloads macrostep-geiser-autoloads geiser-autoloads magit-autoloads pcase marginalia-autoloads markless-autoloads material-pbm-icons-autoloads mode-fontify-autoloads mode-line-bell-autoloads monokai-theme-autoloads multiple-cursors-autoloads nerd-icons-completion-autoloads nerd-icons-corfu-autoloads nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads nhexl-mode-autoloads nov-autoloads esxml-autoloads kv-autoloads ob-svgbob-autoloads orderless-autoloads org-appear-autoloads org-attach-refactor-autoloads org-bars-autoloads org-download-autoloads async-autoloads org-englearn-autoloads org-gtd-autoloads org-agenda-property-autoloads org-edna-autoloads org-gtd-habitica-autoloads org-journal-autoloads org-media-note-autoloads mpv-autoloads org-mime-autoloads org-pdftools-autoloads org-noter-autoloads org-remark-autoloads org-roam-ui-autoloads org-roam-autoloads magit-section-autoloads llama-autoloads emacsql-autoloads org-autoloads org-srs-autoloads org-tree-slide-autoloads ox-hugo-autoloads package-lint-flymake-autoloads package-lint-autoloads parsebib-autoloads parsec-autoloads paw-autoloads pdf-tools-autoloads peg-autoloads phi-search-autoloads pkg-info-autoloads epl-autoloads polymode-autoloads popon-autoloads popper-autoloads pretty-hydra-autoloads promise-autoloads pyvenv-autoloads quelpa-use-package-autoloads quelpa-autoloads queue-autoloads quick-peek-autoloads quickrun-autoloads racket-mode-autoloads rainbow-delimiters-autoloads redacted-autoloads request-autoloads rescript-mode-autoloads rime-autoloads popup-autoloads rustic-autoloads markdown-mode-autoloads rust-mode-autoloads sbt-mode-autoloads scad-preview-autoloads scad-mode-autoloads scala-mode-autoloads separedit-autoloads edit-indirect-autoloads shell-maker-autoloads shrink-path-autoloads f-autoloads simple-httpd-autoloads sis-autoloads sloff-autoloads sly-macrostep-autoloads macrostep-autoloads sly-autoloads smartparens-autoloads smooth-scroll-autoloads smooth-scrolling-autoloads spinner-autoloads string-inflection-autoloads svg-lib-autoloads tab-line-nerd-icons-autoloads nerd-icons-autoloads tablist-autoloads tempel-autoloads terminal-focus-reporting-autoloads tomelr-autoloads toml-mode-autoloads track-changes-autoloads transient-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads dash-autoloads treesit-auto-autoloads typescript-mode-autoloads undo-hl-autoloads use-package-autoloads bind-key-autoloads vala-mode-autoloads cc-styles cc-align cc-engine cc-vars cc-defs vertico-directory-autoloads vertico-autoloads vlf-autoloads websocket-autoloads wgrep-autoloads which-key-autoloads info with-editor-autoloads xclip-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads yasnippet-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 icons password-cache json subr-x map byte-opt bytecomp byte-compile url-vars early-init gv cl-loaddefs cl-lib china-util rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win touch-screen pgtk-dnd 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 dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 1261321 192837) (symbols 48 73024 0) (strings 32 371635 14718) (string-bytes 1 12782977) (vectors 16 129026) (vector-slots 8 2229696 152024) (floats 8 1895 6677) (intervals 56 10253 343) (buffers 992 35))
bug-gnu-emacs <at> gnu.org
:bug#77047
; Package emacs
.
(Sun, 16 Mar 2025 12:26:04 GMT) Full text and rfc822 format available.Message #8 received at 77047 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Bohong Huang <bohonghuang <at> qq.com>, Stefan Monnier <monnier <at> iro.umontreal.ca> Cc: 77047 <at> debbugs.gnu.org Subject: Re: bug#77047: 30.1; `cl-defgeneric`'s docstrings in `:documentation` are not recognized by `checkdoc` Date: Sun, 16 Mar 2025 14:25:01 +0200
> Date: Sun, 16 Mar 2025 15:06:08 +0800 > From: Bohong Huang via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> > > Hello Emacs maintainers, > > While using `cl-defgeneric` from `cl-lib`, I noticed that even when I > write the docstring in `(:documentation "...")`, checkdoc still > complains that it is undefined. However, the documentation for > `cl-defgeneric` does state two supported ways to define docstrings. > Could this be a checkdoc-related bug? > > I am aware that placing the docstring directly in the body (as the sole > form) silences the error. However, in fact, ANSI CL does not permit > this, and treating a lone string in the `cl-defgeneric` body as a > docstring can be ambiguous. Considering that since Emacs 30, `defun` no > longer treats a lone string in the body as a docstring, for consistency, > `cl-defgeneric` should follow suit. However, this would imply providing > a default method that returns a string. My suggestion is to discourage > docstrings in the body (aligning with `defun`) and encourage using > `(:documentation)` when declaring a generic function without a default > method, and allow the current syntax (docstring in the body) only when > defining both the generic function and its default method. > > What are your thoughts on this? Thank you in advance for your time and > consideration. Adding Stefan to the discussion.
bug-gnu-emacs <at> gnu.org
:bug#77047
; Package emacs
.
(Mon, 17 Mar 2025 02:20:01 GMT) Full text and rfc822 format available.Message #11 received at 77047 <at> debbugs.gnu.org (full text, mbox):
From: Stefan Monnier <monnier <at> iro.umontreal.ca> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 77047 <at> debbugs.gnu.org, Bohong Huang <bohonghuang <at> qq.com> Subject: Re: bug#77047: 30.1; `cl-defgeneric`'s docstrings in `:documentation` are not recognized by `checkdoc` Date: Sun, 16 Mar 2025 22:19:23 -0400
>> While using `cl-defgeneric` from `cl-lib`, [ Nitpick: `cl-defgeneric` is not part of `cl-lib`. ] >> I noticed that even when I write the docstring in `(:documentation >> "...")`, checkdoc still complains that it is undefined. However, the >> documentation for `cl-defgeneric` does state two supported ways to >> define docstrings. >> Could this be a checkdoc-related bug? Sounds like it, yes. At least both forms set the `function-documentation` property in my test, so they both work in practice. >> I am aware that placing the docstring directly in the body (as the sole >> form) silences the error. However, in fact, ANSI CL does not permit >> this, and treating a lone string in the `cl-defgeneric` body as a >> docstring can be ambiguous. Considering that since Emacs 30, `defun` no >> longer treats a lone string in the body as a docstring, for consistency, >> `cl-defgeneric` should follow suit. Indeed our `cl-defgeneric` supports a `&rest body` (which, when non-nil, defines a default method) contrary to CLOS's, so there's the question whether that string is part of the default method or part of the overall generic function. The interesting corner case comes with things like; (cl-defgeneric my-gen3 (a) (:documentation "hello") "there") where "there" is not taken as a docstring, contrary to: (cl-defgeneric my-gen3 (a) "there") >> However, this would imply providing a default method that returns >> a string. My suggestion is to discourage docstrings in the body >> (aligning with `defun`) and encourage using `(:documentation)` when >> declaring a generic function without a default method, and allow the >> current syntax (docstring in the body) only when defining both the >> generic function and its default method. I find the (:documentation ...) form somewhat inconvenient (for purely aesthetic reasons), so I'd rather not have to use it too often. That preference of mine is reflected in the behavior I implemented. But if the use of a "plain docstring" without a default method is sufficiently rare, I wouldn't be opposed to deprecating its use. Stefan
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.