* bug#38872: 27.0.50; Keywords can be let-bound @ 2020-01-02 17:14 Thibault Polge 2020-01-16 19:52 ` Stefan Kangas 0 siblings, 1 reply; 10+ messages in thread From: Thibault Polge @ 2020-01-02 17:14 UTC (permalink / raw) To: 38872 This sexp: (let ((:k 1)) :k) evals to 1 in Emacs 25.3.1, 26.3, and HEAD (d36adb544d984b91c70f6194da01344e4b2b6fc9) if and only if `lexical-binding` is t. If lexical-binding is nil, it raises an error, as I'd expect it to. This is in contradiction with documentation at (info "Constant variables (elisp)"). The issue also appears if the symbol's been interned with (intern ":k") Best regards, Thibault In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.12) Windowing system distributor 'The X.Org Foundation', version 11.0.12005000 System Description: NixOS 20.03pre198214.4cd2cb43fb3 (Markhor) Recent messages: Executing scp -q /tmp/1577983199.org thblt@k9.thb.lt:/var/www/paste.thb.lt//1577983199.org (Shell command succeeded with no output) Wrote /tmp/1577983199.org.html Executing scp -q /tmp/1577983199.org.html thblt@k9.thb.lt:/var/www/paste.thb.lt//1577983199.org.html (Shell command succeeded with no output) Wrote /tmp/1577983199.org.html Pasted to https://paste.thb.lt/1577983199.org.html (on kill ring) Quit Saving file /home/thblt/temp/test.org... Wrote /home/thblt/temp/test.org Configured using: 'configure --prefix=/nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1 --disable-build-details --with-modules --with-x-toolkit=gtk3 --with-xft CFLAGS=-DMAC_OS_X_VERSION_MAX_ALLOWED=101200' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD PDUMPER GMP Important settings: value of $LANG: fr_FR.UTF-8 locale-coding-system: utf-8-unix Major mode: Nix Minor modes in effect: TeX-PDF-mode: t TeX-source-correlate-mode: t which-function-mode: t color-identifiers-mode: t outshine-mode: t pdf-occur-global-minor-mode: t magit-auto-revert-mode: t auto-revert-mode: t async-bytecomp-package-mode: t company-posframe-mode: t company-mode: t shell-dirtrack-mode: t outline-minor-mode: t super-save-mode: t yas-global-mode: t yas-minor-mode: t global-undo-tree-mode: t undo-tree-mode: t show-smartparens-global-mode: t show-smartparens-mode: t smartparens-global-mode: t smartparens-mode: t recentf-mode: t beginend-global-mode: t beginend-prog-mode: t winner-mode: t which-key-mode: t popwin-mode: t ivy-posframe-mode: t eyebrowse-mode: t counsel-projectile-mode: t ivy-mode: t projectile-mode: t auto-compile-on-load-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/thblt/.emacs.d/lib/password-store/password-store hides /home/thblt/.nix-profile/share/emacs/site-lisp/password-store /home/thblt/.nix-profile/share/emacs/site-lisp/site-start hides /run/current-system/sw/share/emacs/site-lisp/site-start /home/thblt/.nix-profile/share/emacs/site-lisp/site-start hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/site-lisp/site-start /home/thblt/.emacs.d/lib/auth-password-store/auth-source-pass hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/auth-source-pass /home/thblt/.emacs.d/lib/org/lisp/ob-emacs-lisp hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-emacs-lisp /home/thblt/.emacs.d/lib/org/lisp/ob-picolisp hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-picolisp /home/thblt/.emacs.d/lib/org/lisp/org-attach hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-attach /home/thblt/.emacs.d/lib/org/lisp/org-id hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-id /home/thblt/.emacs.d/lib/org/lisp/ox-publish hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-publish /home/thblt/.emacs.d/lib/org/lisp/org-indent hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-indent /home/thblt/.emacs.d/lib/org/lisp/ob-core hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-core /home/thblt/.emacs.d/lib/org/lisp/ob-hledger hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-hledger /home/thblt/.emacs.d/lib/org/lisp/org-protocol hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-protocol /home/thblt/.emacs.d/lib/org/lisp/ob-sqlite hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-sqlite /home/thblt/.emacs.d/lib/org/lisp/ob-python hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-python /home/thblt/.emacs.d/lib/org/lisp/org hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org /home/thblt/.emacs.d/lib/org/lisp/org-pcomplete hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-pcomplete /home/thblt/.emacs.d/lib/org/lisp/ob-java hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-java /home/thblt/.emacs.d/lib/org/lisp/ob-lua hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-lua /home/thblt/.emacs.d/lib/org/lisp/ob-mscgen hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-mscgen /home/thblt/.emacs.d/lib/org/lisp/org-timer hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-timer /home/thblt/.emacs.d/lib/org/lisp/org-lint hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-lint /home/thblt/.emacs.d/lib/org/lisp/org-plot hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-plot /home/thblt/.emacs.d/lib/org/lisp/ob-processing hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-processing /home/thblt/.emacs.d/lib/org/lisp/ob-scheme hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-scheme /home/thblt/.emacs.d/lib/org/lisp/ob-exp hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-exp /home/thblt/.emacs.d/lib/org/lisp/ob-sql hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-sql /home/thblt/.emacs.d/lib/org/lisp/org-faces hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-faces /home/thblt/.emacs.d/lib/org/lisp/org-crypt hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-crypt /home/thblt/.emacs.d/lib/org/lisp/org-table hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-table /home/thblt/.emacs.d/lib/org/lisp/ox-md hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-md /home/thblt/.emacs.d/lib/org/lisp/ox-ascii hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-ascii /home/thblt/.emacs.d/lib/org/lisp/org-loaddefs hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-loaddefs /home/thblt/.emacs.d/lib/org/lisp/org-colview hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-colview /home/thblt/.emacs.d/lib/org/lisp/ob-C hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-C /home/thblt/.emacs.d/lib/org/lisp/org-footnote hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-footnote /home/thblt/.emacs.d/lib/org/lisp/org-feed hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-feed /home/thblt/.emacs.d/lib/org/lisp/org-duration hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-duration /home/thblt/.emacs.d/lib/org/lisp/ob-calc hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-calc /home/thblt/.emacs.d/lib/org/lisp/ob-ebnf hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-ebnf /home/thblt/.emacs.d/lib/org/lisp/ob-ocaml hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-ocaml /home/thblt/.emacs.d/lib/org/lisp/ob-ditaa hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-ditaa /home/thblt/.emacs.d/lib/org/lisp/org-mobile hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-mobile /home/thblt/.emacs.d/lib/org/lisp/ob-gnuplot hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-gnuplot /home/thblt/.emacs.d/lib/org/lisp/ox-texinfo hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-texinfo /home/thblt/.emacs.d/lib/org/lisp/org-datetree hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-datetree /home/thblt/.emacs.d/lib/org/lisp/ob-J hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-J /home/thblt/.emacs.d/lib/org/lisp/ob-ruby hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-ruby /home/thblt/.emacs.d/lib/org/lisp/ob-eval hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-eval /home/thblt/.emacs.d/lib/org/lisp/ob-abc hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-abc /home/thblt/.emacs.d/lib/org/lisp/ox-html hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-html /home/thblt/.emacs.d/lib/org/lisp/ob-io hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-io /home/thblt/.emacs.d/lib/org/lisp/org-compat hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-compat /home/thblt/.emacs.d/lib/org/lisp/ob-perl hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-perl /home/thblt/.emacs.d/lib/org/lisp/org-archive hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-archive /home/thblt/.emacs.d/lib/org/lisp/ob-dot hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-dot /home/thblt/.emacs.d/lib/org/lisp/ob-ref hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-ref /home/thblt/.emacs.d/lib/org/lisp/org-habit hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-habit /home/thblt/.emacs.d/lib/org/lisp/org-capture hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-capture /home/thblt/.emacs.d/lib/org/lisp/ob-shell hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-shell /home/thblt/.emacs.d/lib/org/lisp/ob-js hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-js /home/thblt/.emacs.d/lib/org/lisp/ob-stan hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-stan /home/thblt/.emacs.d/lib/org/lisp/ob-css hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-css /home/thblt/.emacs.d/lib/org/lisp/ob-clojure hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-clojure /home/thblt/.emacs.d/lib/org/lisp/ob-tangle hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-tangle /home/thblt/.emacs.d/lib/org/lisp/org-element hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-element /home/thblt/.emacs.d/lib/org/lisp/org-version hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-version /home/thblt/.emacs.d/lib/org/lisp/ob-haskell hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-haskell /home/thblt/.emacs.d/lib/org/lisp/org-src hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-src /home/thblt/.emacs.d/lib/org/lisp/ob-lilypond hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-lilypond /home/thblt/.emacs.d/lib/org/lisp/ob-groovy hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-groovy /home/thblt/.emacs.d/lib/org/lisp/org-install hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-install /home/thblt/.emacs.d/lib/org/lisp/ob-table hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-table /home/thblt/.emacs.d/lib/org/lisp/ob-ledger hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-ledger /home/thblt/.emacs.d/lib/org/lisp/ob-plantuml hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-plantuml /home/thblt/.emacs.d/lib/org/lisp/ob-coq hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-coq /home/thblt/.emacs.d/lib/org/lisp/org-inlinetask hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-inlinetask /home/thblt/.emacs.d/lib/org/lisp/ox-beamer hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-beamer /home/thblt/.emacs.d/lib/org/lisp/org-macs hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-macs /home/thblt/.emacs.d/lib/org/lisp/org-entities hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-entities /home/thblt/.emacs.d/lib/org/lisp/ox-odt hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-odt /home/thblt/.emacs.d/lib/org/lisp/ob-lisp hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-lisp /home/thblt/.emacs.d/lib/org/lisp/ob-fortran hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-fortran /home/thblt/.emacs.d/lib/org/lisp/ob-forth hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-forth /home/thblt/.emacs.d/lib/org/lisp/ox-icalendar hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-icalendar /home/thblt/.emacs.d/lib/org/lisp/ob-comint hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-comint /home/thblt/.emacs.d/lib/org/lisp/ob-screen hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-screen /home/thblt/.emacs.d/lib/org/lisp/org-list hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-list /home/thblt/.emacs.d/lib/org/lisp/ob-shen hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-shen /home/thblt/.emacs.d/lib/org/lisp/org-mouse hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-mouse /home/thblt/.emacs.d/lib/org/lisp/ob-vala hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-vala /home/thblt/.emacs.d/lib/org/lisp/ob hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob /home/thblt/.emacs.d/lib/org/lisp/ob-sed hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-sed /home/thblt/.emacs.d/lib/org/lisp/ob-octave hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-octave /home/thblt/.emacs.d/lib/org/lisp/ox-org hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-org /home/thblt/.emacs.d/lib/org/lisp/org-ctags hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-ctags /home/thblt/.emacs.d/lib/org/lisp/org-macro hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-macro /home/thblt/.emacs.d/lib/org/lisp/ob-asymptote hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-asymptote /home/thblt/.emacs.d/lib/org/lisp/ob-latex hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-latex /home/thblt/.emacs.d/lib/org/lisp/ob-awk hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-awk /home/thblt/.emacs.d/lib/org/lisp/ox hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox /home/thblt/.emacs.d/lib/org/lisp/ob-maxima hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-maxima /home/thblt/.emacs.d/lib/org/lisp/ob-makefile hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-makefile /home/thblt/.emacs.d/lib/org/lisp/org-agenda hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-agenda /home/thblt/.emacs.d/lib/org/lisp/org-clock hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/org-clock /home/thblt/.emacs.d/lib/org/lisp/ox-latex hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-latex /home/thblt/.emacs.d/lib/org/lisp/ob-sass hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-sass /home/thblt/.emacs.d/lib/org/lisp/ob-org hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-org /home/thblt/.emacs.d/lib/org/lisp/ob-R hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-R /home/thblt/.emacs.d/lib/org/lisp/ob-matlab hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-matlab /home/thblt/.emacs.d/lib/org/lisp/ox-man hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ox-man /home/thblt/.emacs.d/lib/org/lisp/ob-lob hides /nix/store/rfgmqyi2klm545isn0r2wd8jqpwgvygn-emacs-27.1/share/emacs/27.0.50/lisp/org/ob-lob Features: (shadow sort orgalist mail-extr emacsbug mhtml-mode css-mode smie eww mm-url smartparens-javascript js cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs flycheck-irony irony-diagnostics flycheck highlight-indent-guides scpaste nix-mode nix-repl nix-shell nix-store nix-instantiate nix-shebang nix-format nix visual-regexp dabbrev two-column iso-transl org-agenda ace-window avy texmathp preview prv-emacs reporter tex-fold tex-buf font-latex latex latex-flymake flymake-proc flymake tex-ispell tex-style tex dbus smartparens-latex tex-mode latexenc reftex-parse misearch multi-isearch add-log which-func org-indent toc-org org-ref org-ref-ivy-cite bibtex-completion biblio biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core url-queue org-ref-core warnings reftex-cite reftex reftex-loaddefs reftex-vars parsebib org-ref-glossary org-ref-bibtex org-ref-citeproc doi-utils org-ref-utils org-ref-pdf url-http url-auth url-gw nsm htmlize f disp-table ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir ol-docview ol-bibtex bibtex ol-bbdb ol-w3m vc-git diff-mode mwim aggressive-indent color-identifiers-mode smartparens-python python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp company-oddmuse company-keywords company-etags etags fileloop company-gtags company-dabbrev-code company-dabbrev company-files company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-bbdb company-irony company-template irony-completion irony-snippet irony irony-iotask outshine outshine-org-cmds outorg pdf-occur tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch let-alist pdf-misc imenu pdf-tools cus-edit cus-start cus-load pdf-view bookmark pp pdf-cache pdf-info tq pdf-util auth-source-pass mu4e-contrib mu4e desktop frameset mu4e-speedbar speedbar sb-image ezimage dframe mu4e-main mu4e-view gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum url url-proxy url-privacy url-expand url-methods url-history mailcap shr url-cookie url-domsuf url-util svg xml gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus nnheader mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions ido rfc2368 smtpmail sendmail mu4e-mark mu4e-message flow-fill mu4e-proc mu4e-utils doc-view image-mode exif mu4e-lists mu4e-vars message rmc puny rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader hl-line mu4e-meta magit-repos magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process with-editor async-bytecomp async magit-mode transient magit-git magit-section magit-utils crm rainbow-mode evil-nerd-commenter evil-nerd-commenter-sdk smartparens-html sgml-mode dom company-posframe company pcase ob-shell shell ob-dot ox-extra ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree generator smartparens-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs find-func cal-menu calendar cal-loaddefs tex-site auto-loads visual-fill-column super-save yasnippet-snippets yasnippet undo-tree diff smartparens-config smartparens-text smartparens recentf tree-widget wid-edit nav-flash pulse beginend flyspell-correct-ivy flyspell-correct flyspell ispell hydra lv winner which-key popwin ivy-posframe easy-mmode posframe eyebrowse format-spec dash general diminish rx counsel-projectile counsel xdg xref project dired dired-loaddefs swiper ivy delsel colir ivy-overlay ffap projectile grep compile comint ansi-color ring ibuf-ext ibuffer ibuffer-loaddefs thingatpt server powerline powerline-separators color powerline-themes kurecolor s cl eziam-light-theme eziam-common advice edmacro kmacro finder-inf package browse-url url-handlers url-parse auth-source eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars jka-compr no-littering auto-compile packed org-loaddefs cl-extra help-mode cl-seq borg info easymenu cl-loaddefs cl-lib autoload radix-tree lisp-mnt seq byte-opt gv bytecomp byte-compile cconv 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 dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 789164 59498) (symbols 48 58767 1) (strings 32 205390 12137) (string-bytes 1 6934731) (vectors 16 92237) (vector-slots 8 1927353 75174) (floats 8 771 680) (intervals 56 22691 4615) (buffers 1000 34)) ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-01-02 17:14 bug#38872: 27.0.50; Keywords can be let-bound Thibault Polge @ 2020-01-16 19:52 ` Stefan Kangas 2020-01-16 20:06 ` Andreas Schwab 0 siblings, 1 reply; 10+ messages in thread From: Stefan Kangas @ 2020-01-16 19:52 UTC (permalink / raw) To: Thibault Polge; +Cc: 38872 [-- Attachment #1: Type: text/plain, Size: 2094 bytes --] Thibault Polge <thibault@thb.lt> writes: > This sexp: > > (let ((:k 1)) :k) > > evals to 1 in Emacs 25.3.1, 26.3, and HEAD > (d36adb544d984b91c70f6194da01344e4b2b6fc9) if and only if > `lexical-binding` is t. > > If lexical-binding is nil, it raises an error, as I'd expect it to. > > This is in contradiction with documentation at (info "Constant variables > (elisp)"). The issue also appears if the symbol's been interned with > (intern ":k") Thanks, I can reproduce this on current master. I'm very new to Emacs internals, but decided to dig in. The problem is that a keyword ":a" has that: (a1) XSYMBOL (tem)->u.s.declared_special == false (a2) XSYMBOL (tem)->u.s.trapped_write == SYMBOL_NOWRITE However, in eval.c line 972, where "let" is defined, we lexically bind a symbol under the above conditions: if (!NILP (lexenv) && SYMBOLP (var) && !XSYMBOL (var)->u.s.declared_special && NILP (Fmemq (var, Vinternal_interpreter_environment))) /* Lexically bind VAR by adding it to the lexenv alist. */ lexenv = Fcons (Fcons (var, tem), lexenv); This is what causes the bug. In contrast, "nil" and "t" has that: (b1) XSYMBOL (tem)->u.s.declared_special == true This makes the above check fail, and we defer to the dynamic binding code which refuses to bind them. 1. One possible fix is to add a check for (b), and refuse to bind it if it's true. The attached patch does that. 2. I'm not sure, but it seems to me that keywords *should* perhaps have declared_special == TRUE. That should be set for anything that should never be lexically bound -- right? If this is correct, then I guess we should make sure that it gets set properly, probably already in read1? In plain language, either we (1) change the test in "let" or we (2) change how keyword symbols gets initialized to pass the existing test. Or maybe we should do both..? Please, if someone could check my findings or point me in the right direction here, that would be very helpful. Or even provide a proper fix if mine is completely wrong. :-) Best regards, Stefan Kangas [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Don-t-let-bind-keywords-when-lexical-binding-is-t.patch --] [-- Type: text/x-diff, Size: 2248 bytes --] From 1070ee4579bc907bfdd1b96edc80b4f4d271d57d Mon Sep 17 00:00:00 2001 From: Stefan Kangas <stefankangas@gmail.com> Date: Thu, 16 Jan 2020 15:33:08 +0100 Subject: [PATCH] Don't let-bind keywords when lexical-binding is t * src/eval.c (Flet): Signal an error if trying to bind a keyword symbol when lexical-binding is t. This is consistent with the manual section "(elisp)Constant variables". (Bug#38872) * test/src/eval-tests.el (eval-tests-let): Add rudimentary tests for the let-form. --- src/eval.c | 7 +++++-- test/src/eval-tests.el | 12 ++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/eval.c b/src/eval.c index 4559a0e1f6..9a3f703f40 100644 --- a/src/eval.c +++ b/src/eval.c @@ -972,8 +972,11 @@ DEFUN ("let", Flet, Slet, 1, UNEVALLED, 0, if (!NILP (lexenv) && SYMBOLP (var) && !XSYMBOL (var)->u.s.declared_special && NILP (Fmemq (var, Vinternal_interpreter_environment))) - /* Lexically bind VAR by adding it to the lexenv alist. */ - lexenv = Fcons (Fcons (var, tem), lexenv); + if (XSYMBOL (var)->u.s.trapped_write == SYMBOL_NOWRITE) + xsignal1 (Qsetting_constant, var); + else + /* Lexically bind VAR by adding it to the lexenv alist. */ + lexenv = Fcons (Fcons (var, tem), lexenv); else /* Dynamically bind VAR. */ specbind (var, tem); diff --git a/test/src/eval-tests.el b/test/src/eval-tests.el index 074f5be1ef..702bd25040 100644 --- a/test/src/eval-tests.el +++ b/test/src/eval-tests.el @@ -28,6 +28,18 @@ (require 'ert) (eval-when-compile (require 'cl-lib)) +(ert-deftest eval-tests-let () + "Test let binding using dynamic and lexical scope." + (dolist (nil-or-t '(nil t)) + (with-temp-buffer + (setq lexical-binding nil-or-t) + (should (equal (let ((x 1)) x) 1)) + (should-error (let ((1 2)) x) :type '(wrong-type-argument)) + ;; Behave consistently with (info "(elisp)Constant variables") + (should-error (let ((t 1)) t) :type '(setting-constant)) + (should-error (let ((nil 1)) nil) :type '(setting-constant)) + (should-error (let ((:a 1)) :a) :type '(setting-constant))))) + (ert-deftest eval-tests--bug24673 () "Check that Bug#24673 has been fixed." ;; This should not crash. -- 2.20.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-01-16 19:52 ` Stefan Kangas @ 2020-01-16 20:06 ` Andreas Schwab 2020-01-17 7:47 ` Eli Zaretskii [not found] ` <87wo9r2fi6.fsf@marxist.se> 0 siblings, 2 replies; 10+ messages in thread From: Andreas Schwab @ 2020-01-16 20:06 UTC (permalink / raw) To: Stefan Kangas; +Cc: Thibault Polge, 38872 On Jan 16 2020, Stefan Kangas wrote: > diff --git a/src/eval.c b/src/eval.c > index 4559a0e1f6..9a3f703f40 100644 > --- a/src/eval.c > +++ b/src/eval.c > @@ -972,8 +972,11 @@ DEFUN ("let", Flet, Slet, 1, UNEVALLED, 0, > if (!NILP (lexenv) && SYMBOLP (var) > && !XSYMBOL (var)->u.s.declared_special > && NILP (Fmemq (var, Vinternal_interpreter_environment))) > - /* Lexically bind VAR by adding it to the lexenv alist. */ > - lexenv = Fcons (Fcons (var, tem), lexenv); > + if (XSYMBOL (var)->u.s.trapped_write == SYMBOL_NOWRITE) I think that should use the same condition as set_internal, so that (let ((:k :k))) still works. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-01-16 20:06 ` Andreas Schwab @ 2020-01-17 7:47 ` Eli Zaretskii [not found] ` <87wo9r2fi6.fsf@marxist.se> 1 sibling, 0 replies; 10+ messages in thread From: Eli Zaretskii @ 2020-01-17 7:47 UTC (permalink / raw) To: Andreas Schwab, Stefan Monnier; +Cc: thibault, stefan, 38872 > From: Andreas Schwab <schwab@linux-m68k.org> > Date: Thu, 16 Jan 2020 21:06:27 +0100 > Cc: Thibault Polge <thibault@thb.lt>, 38872@debbugs.gnu.org > > On Jan 16 2020, Stefan Kangas wrote: > > > diff --git a/src/eval.c b/src/eval.c > > index 4559a0e1f6..9a3f703f40 100644 > > --- a/src/eval.c > > +++ b/src/eval.c > > @@ -972,8 +972,11 @@ DEFUN ("let", Flet, Slet, 1, UNEVALLED, 0, > > if (!NILP (lexenv) && SYMBOLP (var) > > && !XSYMBOL (var)->u.s.declared_special > > && NILP (Fmemq (var, Vinternal_interpreter_environment))) > > - /* Lexically bind VAR by adding it to the lexenv alist. */ > > - lexenv = Fcons (Fcons (var, tem), lexenv); > > + if (XSYMBOL (var)->u.s.trapped_write == SYMBOL_NOWRITE) > > I think that should use the same condition as set_internal, so that (let > ((:k :k))) still works. Adding Stefan Monnier to the discussion. Stefan, any comments on this issue? Thanks. ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <87wo9r2fi6.fsf@marxist.se>]
* bug#38872: 27.0.50; Keywords can be let-bound [not found] ` <87wo9r2fi6.fsf@marxist.se> @ 2020-01-17 14:11 ` Stefan Monnier 2020-09-20 10:36 ` Lars Ingebrigtsen 0 siblings, 1 reply; 10+ messages in thread From: Stefan Monnier @ 2020-01-17 14:11 UTC (permalink / raw) To: Stefan Kangas; +Cc: Thibault Polge, Andreas Schwab, 38872 >> I think that should use the same condition as set_internal, so that (let >> ((:k :k))) still works. > Thanks, I forgot about that case. We should also look at what the byte-compiler does with this code. I get the impression that the best/simplest course of action is to set `declared_special` to `true` for keywords. Stefan ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-01-17 14:11 ` Stefan Monnier @ 2020-09-20 10:36 ` Lars Ingebrigtsen 2020-09-20 10:55 ` Eli Zaretskii 2020-09-20 12:53 ` Stefan Monnier 0 siblings, 2 replies; 10+ messages in thread From: Lars Ingebrigtsen @ 2020-09-20 10:36 UTC (permalink / raw) To: Stefan Monnier; +Cc: Stefan Kangas, Thibault Polge, Andreas Schwab, 38872 Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> I think that should use the same condition as set_internal, so that (let >>> ((:k :k))) still works. >> Thanks, I forgot about that case. > > We should also look at what the byte-compiler does with this code. > > I get the impression that the best/simplest course of action is to set > `declared_special` to `true` for keywords. So this would be just: diff --git a/src/lread.c b/src/lread.c index 8064bf4d0e..f465b451a9 100644 --- a/src/lread.c +++ b/src/lread.c @@ -4104,6 +4104,7 @@ intern_sym (Lisp_Object sym, Lisp_Object obarray, Lisp_Object index) { make_symbol_constant (sym); XSYMBOL (sym)->u.s.redirect = SYMBOL_PLAINVAL; + XSYMBOL (sym)->u.s.declared_special = true; SET_SYMBOL_VAL (XSYMBOL (sym), sym); } Which seems to work? "make check" still works after doing this, and the test case now fails like it should do. Some more context below. But I have to admit I don't understand why this fixes the test case. :-/ intern_sym (Lisp_Object sym, Lisp_Object obarray, Lisp_Object index) { Lisp_Object *ptr; XSYMBOL (sym)->u.s.interned = (EQ (obarray, initial_obarray) ? SYMBOL_INTERNED_IN_INITIAL_OBARRAY : SYMBOL_INTERNED); if (SREF (SYMBOL_NAME (sym), 0) == ':' && EQ (obarray, initial_obarray)) { make_symbol_constant (sym); XSYMBOL (sym)->u.s.redirect = SYMBOL_PLAINVAL; XSYMBOL (sym)->u.s.declared_special = true; SET_SYMBOL_VAL (XSYMBOL (sym), sym); } -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply related [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-09-20 10:36 ` Lars Ingebrigtsen @ 2020-09-20 10:55 ` Eli Zaretskii 2020-09-20 10:57 ` Lars Ingebrigtsen 2020-09-20 12:53 ` Stefan Monnier 1 sibling, 1 reply; 10+ messages in thread From: Eli Zaretskii @ 2020-09-20 10:55 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: stefan, thibault, schwab, monnier, 38872 > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Sun, 20 Sep 2020 12:36:12 +0200 > Cc: Stefan Kangas <stefan@marxist.se>, Thibault Polge <thibault@thb.lt>, > Andreas Schwab <schwab@linux-m68k.org>, 38872@debbugs.gnu.org > > Stefan Monnier <monnier@iro.umontreal.ca> writes: > > > I get the impression that the best/simplest course of action is to set > > `declared_special` to `true` for keywords. > > So this would be just: > > diff --git a/src/lread.c b/src/lread.c > index 8064bf4d0e..f465b451a9 100644 > --- a/src/lread.c > +++ b/src/lread.c > @@ -4104,6 +4104,7 @@ intern_sym (Lisp_Object sym, Lisp_Object obarray, Lisp_Object index) > { > make_symbol_constant (sym); > XSYMBOL (sym)->u.s.redirect = SYMBOL_PLAINVAL; > + XSYMBOL (sym)->u.s.declared_special = true; > SET_SYMBOL_VAL (XSYMBOL (sym), sym); > } > > Which seems to work? "make check" still works after doing this, and the > test case now fails like it should do. Some more context below. I see you've installed this change, but the log message doesn''t mention it, nor its reason. can we have some explanation in the comments in the code, please? ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-09-20 10:55 ` Eli Zaretskii @ 2020-09-20 10:57 ` Lars Ingebrigtsen 0 siblings, 0 replies; 10+ messages in thread From: Lars Ingebrigtsen @ 2020-09-20 10:57 UTC (permalink / raw) To: Eli Zaretskii; +Cc: stefan, thibault, schwab, monnier, 38872 Eli Zaretskii <eliz@gnu.org> writes: > I see you've installed this change, but the log message doesn''t > mention it, nor its reason. can we have some explanation in the > comments in the code, please? Did I? I didn't mean to -- I must have forgotten to remove it before checking in something else. I'll back it out again. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-09-20 10:36 ` Lars Ingebrigtsen 2020-09-20 10:55 ` Eli Zaretskii @ 2020-09-20 12:53 ` Stefan Monnier 2020-09-20 19:31 ` Lars Ingebrigtsen 1 sibling, 1 reply; 10+ messages in thread From: Stefan Monnier @ 2020-09-20 12:53 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Andreas Schwab, Thibault Polge, Stefan Kangas, 38872 > But I have to admit I don't understand why this fixes the test case. :-/ It's the magic of Emacs, Stefan ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#38872: 27.0.50; Keywords can be let-bound 2020-09-20 12:53 ` Stefan Monnier @ 2020-09-20 19:31 ` Lars Ingebrigtsen 0 siblings, 0 replies; 10+ messages in thread From: Lars Ingebrigtsen @ 2020-09-20 19:31 UTC (permalink / raw) To: Stefan Monnier; +Cc: Stefan Kangas, Thibault Polge, Andreas Schwab, 38872 Stefan Monnier <monnier@iro.umontreal.ca> writes: >> But I have to admit I don't understand why this fixes the test case. :-/ > > It's the magic of Emacs, > > Stefan OK; applied to Emacs 28. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-09-20 19:31 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-01-02 17:14 bug#38872: 27.0.50; Keywords can be let-bound Thibault Polge 2020-01-16 19:52 ` Stefan Kangas 2020-01-16 20:06 ` Andreas Schwab 2020-01-17 7:47 ` Eli Zaretskii [not found] ` <87wo9r2fi6.fsf@marxist.se> 2020-01-17 14:11 ` Stefan Monnier 2020-09-20 10:36 ` Lars Ingebrigtsen 2020-09-20 10:55 ` Eli Zaretskii 2020-09-20 10:57 ` Lars Ingebrigtsen 2020-09-20 12:53 ` Stefan Monnier 2020-09-20 19:31 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.