Package: emacs;
Reported by: No Wayman <iarchivedmywholelife <at> gmail.com>
Date: Wed, 26 Feb 2020 21:50:01 UTC
Severity: normal
Tags: confirmed, fixed, patch
Found in versions 28.0.50, 26.1
Fixed in version 27.1
Done: Noam Postavsky <npostavs <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 39805 in the body.
You can then email your comments to 39805 AT debbugs.gnu.org in the normal way.
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#39805
; Package emacs
.
(Wed, 26 Feb 2020 21:50:01 GMT) Full text and rfc822 format available.No Wayman <iarchivedmywholelife <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 26 Feb 2020 21:50:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: No Wayman <iarchivedmywholelife <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 28.0.50; scan-sexps (scan_lists) incorrectly parsing circular list Date: Wed, 26 Feb 2020 16:33:59 -0500
While developing a package that utilizes circular lists, I ran into a bug when trying to describe-variable a variable that contains circular lists. I've hewed it down to the following: ** Minimal Reproducible Case #+begin_src emacs-lisp :results raw h replace (condition-case-unless-debug err (with-temp-buffer (insert "(#9=() :key val)") (pp-buffer) nil) (error err))) #+end_src *** Throws (scan-error Containing expression ends prematurely 1 1) *** Expected nil *** Additional Info - My hunch is that the problem lies in syntax.c's scan_lists, but I have not had time to look deeply into it. - The error is not thrown when the string contains only one of the "#" or ":" characters. For example: "(9=() :key val)" or "(#9=() key val)". - Issue exists when running "emacs -Q" as far back as v25.3.2 (have not tested earlier versions) **** backtrace #+begin_src emacs-lisp Debugger entered--Lisp error: (scan-error "Containing expression ends prematurely" 1 1) scan-sexps(3 -1) forward-sexp(-1) calculate-lisp-indent((1 1 5 nil nil nil 0 nil nil (1) nil)) lisp-indent-calc-next(#s(lisp-indent-state :stack (nil) :ppss (0 nil nil nil nil nil 0 nil nil nil nil) :ppss-point 1)) indent-sexp() pp-buffer() (progn (insert "(#9=() :key val)") (pp-buffer) nil) (unwind-protect (progn (insert "(#9=() :key val)") (pp-buffer) nil) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert "(#9=() :key val)") (pp-buffer) nil) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (with-current-buffer temp-buffer (unwind-protect (progn (insert "(#9=() :key val)") (pp-buffer) nil) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (with-current-buffer temp-buffer (unwind-protect (progn (insert "(#9=() :key val)") (pp-buffer) nil) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (with-temp-buffer (insert "(#9=() :key val)") (pp-buffer) nil) (condition-case err (with-temp-buffer (insert "(#9=() :key val)") (pp-buffer) nil) ((debug error) err)) (condition-case-unless-debug err (with-temp-buffer (insert "(#9=() :key val)") (pp-buffer) nil) (error err)) (progn (condition-case-unless-debug err (with-temp-buffer (insert "(#9=() :key val)") (pp-buffer) nil) (error err))) eval((progn (condition-case-unless-debug err (with-temp-buffer (insert "(#9=() :key val)") (pp-buffer) nil) (error err))) nil) org-babel-execute:emacs-lisp("(condition-case-unless-debug err\n (with-temp-buffer\n (insert \"(#9=() :key val)\")\n (pp-buffer)\n nil)\n (error err)))" ((:colname-names) (:rowname-names) (:result-params "raw" "h" "replace") (:result-type . value) (:results . "raw h replace") (:exports . "code") (:session . "none") (:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no") (:lexical . "no"))) org-babel-execute-src-block(nil ("emacs-lisp" "(condition-case-unless-debug err\n (with-temp-buffer\n (insert \"(#9=() :key val)\")\n (pp-buffer)\n nil)\n (error err)))" ((:colname-names) (:rowname-names) (:result-params "replace" "h" "raw") (:result-type . value) (:results . "replace h raw") (:exports . "code") (:lexical . "no") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no") (:session . "none")) "" nil 47 "(ref:%s)")) org-ctrl-c-ctrl-c(nil) funcall-interactively(org-ctrl-c-ctrl-c nil) call-interactively(org-ctrl-c-ctrl-c nil nil) command-execute(org-ctrl-c-ctrl-c) #+end_src If any additional information would be useful or testing needs to be done, I'm happy to help. Thank you. In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.17.3, Xaw3d scroll bars) of 2020-02-23 built on arch Repository revision: eb34c108e234c3195ae75f14ec6c5b0964f022ad Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12007000 System Description: Arch Linux Recent messages: [mu4e] Indexing completed; processed 1623, updated 0, cleaned-up 0 Auto-saving...done Mark set evil-line-move: End of buffer Mark set [4 times] evil-line-move: Beginning of buffer [11 times] Mark set [3 times] Error in post-command-hook (flyspell-post-command-hook): (search-failed " Basics") user-error: No window right from selected window evil-line-move: Beginning of buffer Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games --with-sound=alsa --with-modules --without-gconf --without-gsettings --enable-link-time-optimization --with-x-toolkit=lucid --with-xft --with-xaw3d --without-m17n-flt --with-cairo --without-compress-install 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -g -flto -fuse-linker-plugin -s -fuse-ld=gold' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now' Configured features: XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GLIB NOTIFY INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ LIBOTF ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 GMP Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect: writegood-mode: t org-better-repeat-mode: t org-bullets-mode: t org-fancy-priorities-mode: t org-indent-mode: t dimmer-mode: t global-auto-revert-mode: t savehist-mode: t show-paren-mode: t global-skip-buffers-mode: t recentf-mode: t helm-flx-mode: t helm-mode: t helm--remap-mouse-mode: t doom-modeline-mode: t which-key-mode: t display-time-mode: t async-bytecomp-package-mode: t general-override-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t global-undo-tree-mode: t undo-tree-mode: t flyspell-mode: t shell-dirtrack-mode: t evil-mode: t evil-local-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t prettify-symbols-mode: t tab-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-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: (only . t) Load-path shadows: /home/n/.emacs.d/straight/build/org-plus-contrib/org-lint hides /home/n/.emacs.d/straight/build/org/org-lint /home/n/.emacs.d/straight/build/org-plus-contrib/org-duration hides /home/n/.emacs.d/straight/build/org/org-duration /home/n/.emacs.d/straight/build/org-plus-contrib/ob-shell hides /home/n/.emacs.d/straight/build/org/ob-shell /home/n/.emacs.d/straight/build/org-plus-contrib/ol-docview hides /home/n/.emacs.d/straight/build/org/ol-docview /home/n/.emacs.d/straight/build/org-plus-contrib/ob-exp hides /home/n/.emacs.d/straight/build/org/ob-exp /home/n/.emacs.d/straight/build/org-plus-contrib/org-plot hides /home/n/.emacs.d/straight/build/org/org-plot /home/n/.emacs.d/straight/build/org-plus-contrib/org-colview hides /home/n/.emacs.d/straight/build/org/org-colview /home/n/.emacs.d/straight/build/org-plus-contrib/org-crypt hides /home/n/.emacs.d/straight/build/org/org-crypt /home/n/.emacs.d/straight/build/org-plus-contrib/ob-sqlite hides /home/n/.emacs.d/straight/build/org/ob-sqlite /home/n/.emacs.d/straight/build/org-plus-contrib/ob-C hides /home/n/.emacs.d/straight/build/org/ob-C /home/n/.emacs.d/straight/build/org-plus-contrib/ox-publish hides /home/n/.emacs.d/straight/build/org/ox-publish /home/n/.emacs.d/straight/build/org-plus-contrib/ox-html hides /home/n/.emacs.d/straight/build/org/ox-html /home/n/.emacs.d/straight/build/org-plus-contrib/org-tempo hides /home/n/.emacs.d/straight/build/org/org-tempo /home/n/.emacs.d/straight/build/org-plus-contrib/ob-screen hides /home/n/.emacs.d/straight/build/org/ob-screen /home/n/.emacs.d/straight/build/org-plus-contrib/ob-abc hides /home/n/.emacs.d/straight/build/org/ob-abc /home/n/.emacs.d/straight/build/org-plus-contrib/org-faces hides /home/n/.emacs.d/straight/build/org/org-faces /home/n/.emacs.d/straight/build/org-plus-contrib/org-archive hides /home/n/.emacs.d/straight/build/org/org-archive /home/n/.emacs.d/straight/build/org-plus-contrib/ox-icalendar hides /home/n/.emacs.d/straight/build/org/ox-icalendar /home/n/.emacs.d/straight/build/org-plus-contrib/ob-matlab hides /home/n/.emacs.d/straight/build/org/ob-matlab /home/n/.emacs.d/straight/build/org-plus-contrib/ol-bbdb hides /home/n/.emacs.d/straight/build/org/ol-bbdb /home/n/.emacs.d/straight/build/org-plus-contrib/ob-R hides /home/n/.emacs.d/straight/build/org/ob-R /home/n/.emacs.d/straight/build/org-plus-contrib/ob-python hides /home/n/.emacs.d/straight/build/org/ob-python /home/n/.emacs.d/straight/build/org-plus-contrib/ol-w3m hides /home/n/.emacs.d/straight/build/org/ol-w3m /home/n/.emacs.d/straight/build/org-plus-contrib/ol hides /home/n/.emacs.d/straight/build/org/ol /home/n/.emacs.d/straight/build/org-plus-contrib/org-pcomplete hides /home/n/.emacs.d/straight/build/org/org-pcomplete /home/n/.emacs.d/straight/build/org-plus-contrib/ox-beamer hides /home/n/.emacs.d/straight/build/org/ox-beamer /home/n/.emacs.d/straight/build/org-plus-contrib/ob-maxima hides /home/n/.emacs.d/straight/build/org/ob-maxima /home/n/.emacs.d/straight/build/org-plus-contrib/ob-css hides /home/n/.emacs.d/straight/build/org/ob-css /home/n/.emacs.d/straight/build/org-plus-contrib/ol-eshell hides /home/n/.emacs.d/straight/build/org/ol-eshell /home/n/.emacs.d/straight/build/org-plus-contrib/ox-odt hides /home/n/.emacs.d/straight/build/org/ox-odt /home/n/.emacs.d/straight/build/org-plus-contrib/ob-ebnf hides /home/n/.emacs.d/straight/build/org/ob-ebnf /home/n/.emacs.d/straight/build/org-plus-contrib/org-element hides /home/n/.emacs.d/straight/build/org/org-element /home/n/.emacs.d/straight/build/org-plus-contrib/ob-table hides /home/n/.emacs.d/straight/build/org/ob-table /home/n/.emacs.d/straight/build/org-plus-contrib/ob-perl hides /home/n/.emacs.d/straight/build/org/ob-perl /home/n/.emacs.d/straight/build/org-plus-contrib/ob-dot hides /home/n/.emacs.d/straight/build/org/ob-dot /home/n/.emacs.d/straight/build/org-plus-contrib/ob-io hides /home/n/.emacs.d/straight/build/org/ob-io /home/n/.emacs.d/straight/build/org-plus-contrib/org-goto hides /home/n/.emacs.d/straight/build/org/org-goto /home/n/.emacs.d/straight/build/org-plus-contrib/ol-rmail hides /home/n/.emacs.d/straight/build/org/ol-rmail /home/n/.emacs.d/straight/build/org-plus-contrib/ob-eshell hides /home/n/.emacs.d/straight/build/org/ob-eshell /home/n/.emacs.d/straight/build/org-plus-contrib/ob-tangle hides /home/n/.emacs.d/straight/build/org/ob-tangle /home/n/.emacs.d/straight/build/org-plus-contrib/org-num hides /home/n/.emacs.d/straight/build/org/org-num /home/n/.emacs.d/straight/build/org-plus-contrib/ob-mscgen hides /home/n/.emacs.d/straight/build/org/ob-mscgen /home/n/.emacs.d/straight/build/org-plus-contrib/ol-info hides /home/n/.emacs.d/straight/build/org/ol-info /home/n/.emacs.d/straight/build/org-plus-contrib/org-habit hides /home/n/.emacs.d/straight/build/org/org-habit /home/n/.emacs.d/straight/build/org-plus-contrib/ob hides /home/n/.emacs.d/straight/build/org/ob /home/n/.emacs.d/straight/build/org-plus-contrib/ob-org hides /home/n/.emacs.d/straight/build/org/ob-org /home/n/.emacs.d/straight/build/org-plus-contrib/ob-clojure hides /home/n/.emacs.d/straight/build/org/ob-clojure /home/n/.emacs.d/straight/build/org-plus-contrib/ol-eww hides /home/n/.emacs.d/straight/build/org/ol-eww /home/n/.emacs.d/straight/build/org-plus-contrib/ol-bibtex hides /home/n/.emacs.d/straight/build/org/ol-bibtex /home/n/.emacs.d/straight/build/org-plus-contrib/org-clock hides /home/n/.emacs.d/straight/build/org/org-clock /home/n/.emacs.d/straight/build/org-plus-contrib/org-indent hides /home/n/.emacs.d/straight/build/org/org-indent /home/n/.emacs.d/straight/build/org-plus-contrib/ob-lua hides /home/n/.emacs.d/straight/build/org/ob-lua /home/n/.emacs.d/straight/build/org-plus-contrib/org-macro hides /home/n/.emacs.d/straight/build/org/org-macro /home/n/.emacs.d/straight/build/org-plus-contrib/org-attach hides /home/n/.emacs.d/straight/build/org/org-attach /home/n/.emacs.d/straight/build/org-plus-contrib/ob-ruby hides /home/n/.emacs.d/straight/build/org/ob-ruby /home/n/.emacs.d/straight/build/org-plus-contrib/ob-picolisp hides /home/n/.emacs.d/straight/build/org/ob-picolisp /home/n/.emacs.d/straight/build/org-plus-contrib/ob-awk hides /home/n/.emacs.d/straight/build/org/ob-awk /home/n/.emacs.d/straight/build/org-plus-contrib/org-src hides /home/n/.emacs.d/straight/build/org/org-src /home/n/.emacs.d/straight/build/org-plus-contrib/org-agenda hides /home/n/.emacs.d/straight/build/org/org-agenda /home/n/.emacs.d/straight/build/org-plus-contrib/ob-stan hides /home/n/.emacs.d/straight/build/org/ob-stan /home/n/.emacs.d/straight/build/org-plus-contrib/ob-ref hides /home/n/.emacs.d/straight/build/org/ob-ref /home/n/.emacs.d/straight/build/org-plus-contrib/org-capture hides /home/n/.emacs.d/straight/build/org/org-capture /home/n/.emacs.d/straight/build/org-plus-contrib/org-loaddefs hides /home/n/.emacs.d/straight/build/org/org-loaddefs /home/n/.emacs.d/straight/build/org-plus-contrib/ob-latex hides /home/n/.emacs.d/straight/build/org/ob-latex /home/n/.emacs.d/straight/build/org-plus-contrib/ox-md hides /home/n/.emacs.d/straight/build/org/ox-md /home/n/.emacs.d/straight/build/org-plus-contrib/org-keys hides /home/n/.emacs.d/straight/build/org/org-keys /home/n/.emacs.d/straight/build/org-plus-contrib/ob-core hides /home/n/.emacs.d/straight/build/org/ob-core /home/n/.emacs.d/straight/build/org-plus-contrib/ob-plantuml hides /home/n/.emacs.d/straight/build/org/ob-plantuml /home/n/.emacs.d/straight/build/org-plus-contrib/ob-sed hides /home/n/.emacs.d/straight/build/org/ob-sed /home/n/.emacs.d/straight/build/org-plus-contrib/org-feed hides /home/n/.emacs.d/straight/build/org/org-feed /home/n/.emacs.d/straight/build/org-plus-contrib/org-compat hides /home/n/.emacs.d/straight/build/org/org-compat /home/n/.emacs.d/straight/build/org-plus-contrib/ob-js hides /home/n/.emacs.d/straight/build/org/ob-js /home/n/.emacs.d/straight/build/org-plus-contrib/ol-irc hides /home/n/.emacs.d/straight/build/org/ol-irc /home/n/.emacs.d/straight/build/org-plus-contrib/ob-coq hides /home/n/.emacs.d/straight/build/org/ob-coq /home/n/.emacs.d/straight/build/org-plus-contrib/org-list hides /home/n/.emacs.d/straight/build/org/org-list /home/n/.emacs.d/straight/build/org-plus-contrib/ob-sql hides /home/n/.emacs.d/straight/build/org/ob-sql /home/n/.emacs.d/straight/build/org-plus-contrib/ob-calc hides /home/n/.emacs.d/straight/build/org/ob-calc /home/n/.emacs.d/straight/build/org-plus-contrib/org-attach-git hides /home/n/.emacs.d/straight/build/org/org-attach-git /home/n/.emacs.d/straight/build/org-plus-contrib/ob-lilypond hides /home/n/.emacs.d/straight/build/org/ob-lilypond /home/n/.emacs.d/straight/build/org-plus-contrib/ob-asymptote hides /home/n/.emacs.d/straight/build/org/ob-asymptote /home/n/.emacs.d/straight/build/org-plus-contrib/ob-J hides /home/n/.emacs.d/straight/build/org/ob-J /home/n/.emacs.d/straight/build/org-plus-contrib/ox-texinfo hides /home/n/.emacs.d/straight/build/org/ox-texinfo /home/n/.emacs.d/straight/build/org-plus-contrib/ob-forth hides /home/n/.emacs.d/straight/build/org/ob-forth /home/n/.emacs.d/straight/build/org-plus-contrib/ob-scheme hides /home/n/.emacs.d/straight/build/org/ob-scheme /home/n/.emacs.d/straight/build/org-plus-contrib/org-id hides /home/n/.emacs.d/straight/build/org/org-id /home/n/.emacs.d/straight/build/org-plus-contrib/org-protocol hides /home/n/.emacs.d/straight/build/org/org-protocol /home/n/.emacs.d/straight/build/org-plus-contrib/ob-sass hides /home/n/.emacs.d/straight/build/org/ob-sass /home/n/.emacs.d/straight/build/org-plus-contrib/org-footnote hides /home/n/.emacs.d/straight/build/org/org-footnote /home/n/.emacs.d/straight/build/org-plus-contrib/ox-latex hides /home/n/.emacs.d/straight/build/org/ox-latex /home/n/.emacs.d/straight/build/org-plus-contrib/ob-hledger hides /home/n/.emacs.d/straight/build/org/ob-hledger /home/n/.emacs.d/straight/build/org-plus-contrib/ob-ditaa hides /home/n/.emacs.d/straight/build/org/ob-ditaa /home/n/.emacs.d/straight/build/org-plus-contrib/ob-gnuplot hides /home/n/.emacs.d/straight/build/org/ob-gnuplot /home/n/.emacs.d/straight/build/org-plus-contrib/ob-emacs-lisp hides /home/n/.emacs.d/straight/build/org/ob-emacs-lisp /home/n/.emacs.d/straight/build/org-plus-contrib/ob-processing hides /home/n/.emacs.d/straight/build/org/ob-processing /home/n/.emacs.d/straight/build/org-plus-contrib/ob-makefile hides /home/n/.emacs.d/straight/build/org/ob-makefile /home/n/.emacs.d/straight/build/org-plus-contrib/ob-fortran hides /home/n/.emacs.d/straight/build/org/ob-fortran /home/n/.emacs.d/straight/build/org-plus-contrib/ob-lob hides /home/n/.emacs.d/straight/build/org/ob-lob /home/n/.emacs.d/straight/build/org-plus-contrib/org-ctags hides /home/n/.emacs.d/straight/build/org/org-ctags /home/n/.emacs.d/straight/build/org-plus-contrib/ob-shen hides /home/n/.emacs.d/straight/build/org/ob-shen /home/n/.emacs.d/straight/build/org-plus-contrib/org-macs hides /home/n/.emacs.d/straight/build/org/org-macs /home/n/.emacs.d/straight/build/org-plus-contrib/ol-mhe hides /home/n/.emacs.d/straight/build/org/ol-mhe /home/n/.emacs.d/straight/build/org-plus-contrib/ox-man hides /home/n/.emacs.d/straight/build/org/ox-man /home/n/.emacs.d/straight/build/org-plus-contrib/ol-gnus hides /home/n/.emacs.d/straight/build/org/ol-gnus /home/n/.emacs.d/straight/build/org-plus-contrib/ob-vala hides /home/n/.emacs.d/straight/build/org/ob-vala /home/n/.emacs.d/straight/build/org-plus-contrib/org-datetree hides /home/n/.emacs.d/straight/build/org/org-datetree /home/n/.emacs.d/straight/build/org-plus-contrib/ox-org hides /home/n/.emacs.d/straight/build/org/ox-org /home/n/.emacs.d/straight/build/org-plus-contrib/org hides /home/n/.emacs.d/straight/build/org/org /home/n/.emacs.d/straight/build/org-plus-contrib/org-entities hides /home/n/.emacs.d/straight/build/org/org-entities /home/n/.emacs.d/straight/build/org-plus-contrib/org-install hides /home/n/.emacs.d/straight/build/org/org-install /home/n/.emacs.d/straight/build/org-plus-contrib/ob-comint hides /home/n/.emacs.d/straight/build/org/ob-comint /home/n/.emacs.d/straight/build/org-plus-contrib/ox-ascii hides /home/n/.emacs.d/straight/build/org/ox-ascii /home/n/.emacs.d/straight/build/org-plus-contrib/org-mouse hides /home/n/.emacs.d/straight/build/org/org-mouse /home/n/.emacs.d/straight/build/org-plus-contrib/ob-java hides /home/n/.emacs.d/straight/build/org/ob-java /home/n/.emacs.d/straight/build/org-plus-contrib/org-inlinetask hides /home/n/.emacs.d/straight/build/org/org-inlinetask /home/n/.emacs.d/straight/build/org-plus-contrib/org-timer hides /home/n/.emacs.d/straight/build/org/org-timer /home/n/.emacs.d/straight/build/org-plus-contrib/ob-octave hides /home/n/.emacs.d/straight/build/org/ob-octave /home/n/.emacs.d/straight/build/org-plus-contrib/org-refile hides /home/n/.emacs.d/straight/build/org/org-refile /home/n/.emacs.d/straight/build/org-plus-contrib/ob-eval hides /home/n/.emacs.d/straight/build/org/ob-eval /home/n/.emacs.d/straight/build/org-plus-contrib/ob-groovy hides /home/n/.emacs.d/straight/build/org/ob-groovy /home/n/.emacs.d/straight/build/org-plus-contrib/ob-ocaml hides /home/n/.emacs.d/straight/build/org/ob-ocaml /home/n/.emacs.d/straight/build/org-plus-contrib/ob-haskell hides /home/n/.emacs.d/straight/build/org/ob-haskell /home/n/.emacs.d/straight/build/org-plus-contrib/org-table hides /home/n/.emacs.d/straight/build/org/org-table /home/n/.emacs.d/straight/build/org-plus-contrib/ox hides /home/n/.emacs.d/straight/build/org/ox /home/n/.emacs.d/straight/build/org-plus-contrib/ob-ledger hides /home/n/.emacs.d/straight/build/org/ob-ledger /home/n/.emacs.d/straight/build/org-plus-contrib/ob-lisp hides /home/n/.emacs.d/straight/build/org/ob-lisp /home/n/.emacs.d/straight/build/org-plus-contrib/org-mobile hides /home/n/.emacs.d/straight/build/org/org-mobile /home/n/.emacs.d/straight/build/mu4e/mu4e-view hides /usr/share/emacs/site-lisp/mu4e/mu4e-view /home/n/.emacs.d/straight/build/mu4e/mu4e-actions hides /usr/share/emacs/site-lisp/mu4e/mu4e-actions /home/n/.emacs.d/straight/build/mu4e/mu4e-proc hides /usr/share/emacs/site-lisp/mu4e/mu4e-proc /home/n/.emacs.d/straight/build/mu4e/mu4e-icalendar hides /usr/share/emacs/site-lisp/mu4e/mu4e-icalendar /home/n/.emacs.d/straight/build/mu4e/mu4e-speedbar hides /usr/share/emacs/site-lisp/mu4e/mu4e-speedbar /home/n/.emacs.d/straight/build/mu4e/mu4e-main hides /usr/share/emacs/site-lisp/mu4e/mu4e-main /home/n/.emacs.d/straight/build/mu4e/mu4e-contrib hides /usr/share/emacs/site-lisp/mu4e/mu4e-contrib /home/n/.emacs.d/straight/build/mu4e/mu4e-context hides /usr/share/emacs/site-lisp/mu4e/mu4e-context /home/n/.emacs.d/straight/build/mu4e/mu4e-vars hides /usr/share/emacs/site-lisp/mu4e/mu4e-vars /home/n/.emacs.d/straight/build/mu4e/mu4e-mark hides /usr/share/emacs/site-lisp/mu4e/mu4e-mark /home/n/.emacs.d/straight/build/mu4e/mu4e-message hides /usr/share/emacs/site-lisp/mu4e/mu4e-message /home/n/.emacs.d/straight/build/mu4e/mu4e hides /usr/share/emacs/site-lisp/mu4e/mu4e /home/n/.emacs.d/straight/build/mu4e/mu4e-org hides /usr/share/emacs/site-lisp/mu4e/mu4e-org /home/n/.emacs.d/straight/build/mu4e/mu4e-headers hides /usr/share/emacs/site-lisp/mu4e/mu4e-headers /home/n/.emacs.d/straight/build/mu4e/mu4e-draft hides /usr/share/emacs/site-lisp/mu4e/mu4e-draft /home/n/.emacs.d/straight/build/mu4e/org-mu4e hides /usr/share/emacs/site-lisp/mu4e/org-mu4e /home/n/.emacs.d/straight/build/mu4e/mu4e-utils hides /usr/share/emacs/site-lisp/mu4e/mu4e-utils /home/n/.emacs.d/straight/build/mu4e/mu4e-compose hides /usr/share/emacs/site-lisp/mu4e/mu4e-compose /home/n/.emacs.d/straight/build/mu4e/mu4e-lists hides /usr/share/emacs/site-lisp/mu4e/mu4e-lists /home/n/.emacs.d/straight/build/let-alist/let-alist hides /usr/share/emacs/28.0.50/lisp/emacs-lisp/let-alist Features: (shadow mule-util cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs diary-lib diary-loaddefs emacsbug stardict-utils helm-flyspell ox-org 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 image-file tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp ffap parse-time iso8601 js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs elfeed-org evil-collection-elfeed elfeed-show elfeed-search shr svg dom elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib url-queue xml-query evil-anzu anzu org-region-link misearch multi-isearch org-eldoc org-journal org-crypt cal-iso writegood-mode org-better-repeat-mode org-bullets org-fancy-priorities org-indent org-element avl-tree generator disp-table org-habit org-agenda org-refile mu4e-alert pcase ht alert log4e notifications dbus gntp evil-collection-mu4e mu4e desktop frameset mu4e-org mu4e-main mu4e-view mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions rfc2368 mu4e-mark mu4e-message flow-fill mu4e-proc mu4e-utils evil-collection-doc-view doc-view jka-compr mu4e-lists hl-line mu4e-vars message rmc puny rfc822 mml mml-sec evil-collection-epa epa derived epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader mu4e-meta org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities time-date evil-collection-outline noutline outline ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs evil-collection-calendar cal-menu calendar cal-loaddefs ido evil-collection-dired dired dired-loaddefs helm-x-files sort helm-command helm-elisp helm-eval evil-collection-edebug edebug tabify miscellany dimmer autorevert filenotify savehist paren skip-buffers help-fns radix-tree cl-print evil-collection-debug debug backtrace find-func vc-mtn vc-hg evil-collection-vc-git vc-git evil-collection-diff-mode diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher project winner flx recentf tree-widget helm-for-files helm-bookmark helm-adaptive helm-info evil-collection-bookmark bookmark text-property-search pp helm-external helm-net browse-url xml url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse url-vars mailcap helm-flx helm-mode evil-collection-helm helm-files helm-buffers helm-occur helm-tags helm-locate helm-grep helm-regexp format-spec helm-utils helm-help helm-types helm helm-source eieio-compat helm-multi-match helm-lib face-remap server highlight-indent-guides doom-modeline doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path rx f s dash ace-window-autoloads tongle-autoloads zerodark-theme-autoloads yasnippet-autoloads writegood-mode-autoloads wikinforg-autoloads evil-collection-which-key which-key which-key-autoloads vterm-autoloads time mine-theme stardict-utils-autoloads smtpmail auth-source eieio eieio-core eieio-loaddefs password-cache json map sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils slime-autoloads macrostep-autoloads skip-buffers-autoloads shr-color color rainbow-mode-autoloads pdf-tools-autoloads tablist-autoloads org-ql-autoloads peg-autoloads ov-autoloads org-super-agenda-autoloads ts-autoloads org-region-link-autoloads org-make-toc-autoloads org-mime-autoloads org-live-preview-autoloads org-journal-autoloads org-fancy-priorities-autoloads org-clean-refile-autoloads org-bullets-autoloads org-better-repeat-mode-autoloads all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons memoize org-plus-contrib-autoloads novice nov-autoloads esxml-autoloads mu4e-alert-autoloads ht-autoloads alert-autoloads log4e-autoloads gntp-autoloads mu4e-autoloads miscellany-autoloads markdown-mode-autoloads magit-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads link-hint-autoloads avy-autoloads js2-mode-autoloads hydra lv hydra-autoloads lv-autoloads htmlize-autoloads highlight-indent-guides-autoloads helm-swoop-autoloads helm-org-rifle-autoloads helm-projectile-autoloads projectile-autoloads helm-flyspell-autoloads helm-flx-autoloads flx-autoloads helm-descbinds-autoloads helm-describe-modes-autoloads helm-config helm-easymenu async-bytecomp async helm-autoloads helm-core-autoloads popup-autoloads async-autoloads fontify-face-autoloads flyspell-correct-autoloads flycheck-package-autoloads package-lint-autoloads flycheck-autoloads let-alist-autoloads pkg-info-autoloads epl-autoloads esup-autoloads elfeed-org-autoloads org-autoloads org-version elfeed-autoloads doom-themes-autoloads doom-modeline-autoloads shrink-path-autoloads f-autoloads all-the-icons-autoloads memoize-autoloads doct-autoloads dimmer-autoloads default-text-scale-autoloads company-tern-autoloads s-autoloads dash-functional-autoloads dash-autoloads tern-autoloads company-autoloads buttercup-autoloads auto-tangle-mode-autoloads asm-mode afternoon-theme-autoloads general general-autoloads evil-collection-unimpaired evil-collection-simple evil-collection-occur evil-collection-minibuffer evil-collection-info evil-collection-image image-mode exif evil-collection-help evil-collection-elisp-mode evil-collection-custom evil-collection-comint evil-collection-buff-menu evil-collection annalist evil-collection-autoloads annalist-autoloads anzu-autoloads evil evil-integration undo-tree diff evil-maps evil-commands reveal flyspell ispell evil-jumps evil-command-window evil-types evil-search evil-ex shell pcomplete comint ansi-color evil-macros evil-repeat evil-states evil-core advice evil-common windmove thingatpt rect evil-digraphs evil-vars ring edmacro kmacro cus-edit cus-start cus-load wid-edit evil-autoloads finder-inf goto-chg-autoloads undo-tree-autoloads cl-seq use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core use-package-autoloads bind-key-autoloads early-init straight-autoloads info cl-extra help-mode easymenu seq byte-opt straight cl-macs gv cl-loaddefs cl-lib bytecomp byte-compile cconv keychain-environment subr-x 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 tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer 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 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 threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 1690779 1035096) (symbols 48 46355 13) (strings 32 558470 44790) (string-bytes 1 14688181) (vectors 16 148173) (vector-slots 8 2121865 1058598) (floats 8 22663 10467) (intervals 56 63918 7919) (buffers 1000 57))
bug-gnu-emacs <at> gnu.org
:bug#39805
; Package emacs
.
(Thu, 27 Feb 2020 01:39:02 GMT) Full text and rfc822 format available.Message #8 received at 39805 <at> debbugs.gnu.org (full text, mbox):
From: Noam Postavsky <npostavs <at> gmail.com> To: No Wayman <iarchivedmywholelife <at> gmail.com> Cc: 39805 <at> debbugs.gnu.org Subject: Re: bug#39805: 28.0.50; scan-sexps (scan_lists) incorrectly parsing circular list Date: Wed, 26 Feb 2020 20:38:12 -0500
# seems to be long standing found 39805 25.3 tags 39805 + confirmed quit No Wayman <iarchivedmywholelife <at> gmail.com> writes: > While developing a package that utilizes circular lists, I ran > into a bug when trying to describe-variable > a variable that contains circular lists. I've hewed it down to the > following: > > ** Minimal Reproducible Case > > #+begin_src emacs-lisp :results raw h replace > (condition-case-unless-debug err > (with-temp-buffer > (insert "(#9=() :key val)") > (pp-buffer) > nil) It doesn't fail if the buffer is changed to emacs-lisp-mode before the pp-buffer call. I guess scan-sexps doesn't handle the #N= correctly unless the syntax-table has been set for emacs-lisp. I note that pp-to-string does some setup on its temp buffer, so maybe describe-variable needs to do that too. For the record, to reproduce the error from describe-variable, a slightly less minimal example is needed (because the value must be more than 68 characters long to trigger pretty printing) (setq vv '(#1=(a b) :key val #1# :key val :key val :key val :key val)) (describe-variable 'vv)
Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Thu, 27 Feb 2020 01:39:02 GMT) Full text and rfc822 format available.Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Thu, 27 Feb 2020 01:39:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#39805
; Package emacs
.
(Thu, 27 Feb 2020 17:23:01 GMT) Full text and rfc822 format available.Message #15 received at 39805 <at> debbugs.gnu.org (full text, mbox):
From: No Wayman <iarchivedmywholelife <at> gmail.com> To: Noam Postavsky <npostavs <at> gmail.com> Cc: 39805 <at> debbugs.gnu.org Subject: Re: bug#39805: 28.0.50; scan-sexps (scan_lists) incorrectly parsing circular list Date: Thu, 27 Feb 2020 12:22:34 -0500
Noam Postavsky <npostavs <at> gmail.com> writes: > It doesn't fail if the buffer is changed to emacs-lisp-mode > before the > pp-buffer call. In the meantime, I'd like to be able to offer the users of my package a solution if they hit this bug. This seems to work for me, but I haven't written much, and am a bit leery of, elisp advice. Would you consider this an appropriate workaround?: (defun workaround/describe-variable-print-bug (original-function &rest args) "Put temp buffer in emacs-lisp before ORIGINAL-FUNCTION: `pp-buffer'. https://lists.gnu.org/archive/html/emacs-bug-tracker/2020-02/msg00376.html" (cl-flet ((pp-advice (original-function) (when (string-prefix-p " *temp" (buffer-name)) (let ((mm major-mode)) (emacs-lisp-mode) (funcall original-function) (funcall mm))))) (advice-add #'pp-buffer :around #'pp-advice) (unwind-protect (progn (apply original-function args) nil) (advice-remove #'pp-buffer #'pp-advice)))) (advice-add #'describe-variable :around #'workaround/describe-variable-print-bug)
bug-gnu-emacs <at> gnu.org
:bug#39805
; Package emacs
.
(Fri, 28 Feb 2020 02:35:01 GMT) Full text and rfc822 format available.Message #18 received at 39805 <at> debbugs.gnu.org (full text, mbox):
From: Noam Postavsky <npostavs <at> gmail.com> To: No Wayman <iarchivedmywholelife <at> gmail.com> Cc: 39805 <at> debbugs.gnu.org Subject: Re: bug#39805: 28.0.50; scan-sexps (scan_lists) incorrectly parsing circular list Date: Thu, 27 Feb 2020 21:34:07 -0500
[Message part 1 (text/plain, inline)]
retitle 39805 describe-variable fails to print some circular list values # describe-variable only fails starting from 26.1 notfound 39805 25.3 found 39805 26.1 tags 39805 + patch quit For the record, the pp-buffer call in the original report fails in Emacs 25 (and earlier, I assume), but the describe-variable case only fails starting from 26.1, specifically commit 2c18969c81. [1: 2c18969c81]: 2017-03-02 02:08:32 -0500 * lisp/help-fns.el (describe-variable): Use cl-print for the value https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=2c18969c810f338d73beda592ee5af7103132e97 Here is the patch intended for emacs-27:
[0001-Fix-describe-variable-on-values-with-circular-syntax.patch (text/x-diff, inline)]
From 3b0b1b17c59341b12a502c0ea87c6125cc445494 Mon Sep 17 00:00:00 2001 From: Noam Postavsky <npostavs <at> gmail.com> Date: Thu, 27 Feb 2020 21:09:59 -0500 Subject: [PATCH] Fix describe-variable on values with circular syntax (Bug#39805) * lisp/help-fns.el (describe-variable): Set syntax tables before calling pp-buffer. --- lisp/help-fns.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 0e2ae6b3c3..1be8e0ab08 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -1000,6 +1000,8 @@ describe-variable (terpri) (let ((buf (current-buffer))) (with-temp-buffer + (lisp-mode-variables nil) + (set-syntax-table emacs-lisp-mode-syntax-table) (insert print-rep) (pp-buffer) (let ((pp-buffer (current-buffer))) -- 2.11.0
[Message part 3 (text/plain, inline)]
No Wayman <iarchivedmywholelife <at> gmail.com> writes: > In the meantime, I'd like to be able to offer the users of my package > a solution if they hit this bug. This seems to work for me, but I > haven't written much, and am a bit leery of, elisp advice. Would you > consider this an appropriate workaround?: Mostly yes, but IMO it's kind of over-engineered. I would do just: (defun workaround/describe-variable-print-bug (original-function &rest args) "Put temp buffer in emacs-lisp-mode before `pp-buffer'. https://debbugs.gnu.org/39805#8" (advice-add #'pp-buffer :before #'emacs-lisp-mode) (unwind-protect (apply original-function args) (advice-remove #'pp-buffer #'emacs-lisp-mode))) (when (= emacs-major-version 26) ;; Work around Bug#39805. (advice-add #'describe-variable :around #'workaround/describe-variable-print-bug))
Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Fri, 28 Feb 2020 02:35:02 GMT) Full text and rfc822 format available.Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Fri, 28 Feb 2020 02:35:02 GMT) Full text and rfc822 format available.Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Fri, 28 Feb 2020 02:35:02 GMT) Full text and rfc822 format available.Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Fri, 28 Feb 2020 02:35:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#39805
; Package emacs
.
(Fri, 28 Feb 2020 04:02:02 GMT) Full text and rfc822 format available.Message #29 received at 39805 <at> debbugs.gnu.org (full text, mbox):
From: No Wayman <iarchivedmywholelife <at> gmail.com> To: Noam Postavsky <npostavs <at> gmail.com> Cc: 39805 <at> debbugs.gnu.org, No Wayman <iarchivedmywholelife <at> gmail.com> Subject: Re: bug#39805: 28.0.50; scan-sexps (scan_lists) incorrectly parsing circular list Date: Thu, 27 Feb 2020 23:01:41 -0500
> Mostly yes, but IMO it's kind of over-engineered. I would do > just: > > (defun workaround/describe-variable-print-bug > (original-function &rest args) > "Put temp buffer in emacs-lisp-mode before `pp-buffer'. > https://debbugs.gnu.org/39805#8" > (advice-add #'pp-buffer :before #'emacs-lisp-mode) > (unwind-protect > (apply original-function args) > (advice-remove #'pp-buffer #'emacs-lisp-mode))) > > (when (= emacs-major-version 26) ;; Work around Bug#39805. > (advice-add #'describe-variable :around > #'workaround/describe-variable-print-bug)) I assumed mine was doing a more than it needed to. Thanks again for the patch and the workaround.
bug-gnu-emacs <at> gnu.org
:bug#39805
; Package emacs
.
(Wed, 04 Mar 2020 03:10:01 GMT) Full text and rfc822 format available.Message #32 received at 39805 <at> debbugs.gnu.org (full text, mbox):
From: Noam Postavsky <npostavs <at> gmail.com> To: No Wayman <iarchivedmywholelife <at> gmail.com> Cc: 39805 <at> debbugs.gnu.org Subject: Re: bug#39805: 28.0.50; scan-sexps (scan_lists) incorrectly parsing circular list Date: Tue, 03 Mar 2020 22:09:21 -0500
tags 39805 fixed close 39805 27.1 quit Noam Postavsky <npostavs <at> gmail.com> writes: > Subject: [PATCH] Fix describe-variable on values with circular syntax > (Bug#39805) > > * lisp/help-fns.el (describe-variable): Set syntax tables before > calling pp-buffer. Pushed to emacs-27. [1: 7cafbbe964]: 2020-03-03 22:04:48 -0500 Fix describe-variable on values with circular syntax (Bug#39805) https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=7cafbbe96434ef616abfef364d82f7250bffc1ed
Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Wed, 04 Mar 2020 03:10:02 GMT) Full text and rfc822 format available.Noam Postavsky <npostavs <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Wed, 04 Mar 2020 03:10:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Wed, 01 Apr 2020 11:24:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.