Package: emacs;
Reported by: Juan José García Ripoll <juanjose.garcia.ripoll <at> csic.es>
Date: Tue, 4 May 2021 08:56:02 UTC
Severity: normal
Found in version 27.1.90
View this message in rfc822 format
From: Juan José García Ripoll <juanjose.garcia.ripoll <at> csic.es> To: 48219 <at> debbugs.gnu.org Subject: bug#48219: 27.1.90; CL-LOOP facility fails with hash tables Date: Tue, 04 May 2021 10:46:57 +0200
(cl-loop for database in nil for aux = (message "databse: %S" database) for entry being the hash-values of database do (message "FOO %S" database)) This code should do nothing, because variable DATABASE runs over an empty list. Yet the macroexpansion of the loop produces code that tries to run over the entries of DATABASE, which is NIL. (cl--block-wrapper (catch '--cl-block-nil-- (let* ((--cl-var-- nil) (database nil) (aux nil)) (cl-block --cl-finish-- (maphash (lambda (--cl-var-- entry) (or (consp --cl-var--) (cl-return-from --cl-finish-- nil)) (setq database (car --cl-var--)) (setq aux (message "databse: %S" database)) (message "FOO %S" database) (setq --cl-var-- (cdr --cl-var--))) database)) nil))) Compare this with (cl-prettyprint (macroexpand '(cl-loop for database in nil for aux = (message "databse: %S" database) do (message "FOO %S" database)))) (cl--block-wrapper (catch '--cl-block-nil-- (let* ((--cl-var-- nil) (database nil) (aux nil)) (while (consp --cl-var--) (setq database (car --cl-var--)) (setq aux (message "databse: %S" database)) (message "FOO %S" database) (setq --cl-var-- (cdr --cl-var--))) nil))) Here the resulting code properly checks for the --cl-var-- variabel that runs the loop In GNU Emacs 27.1.90 (build 1, x86_64-w64-mingw32) Repository revision: 37eba74d609c74bcf9ac3c481a29377913783ac4 Repository branch: HEAD Windowing system distributor 'Microsoft Corp.', version 10.0.19042 System Description: Microsoft Windows 10 Pro (v10.0.2009.19042.928) Recent messages: nnimap read 0k from correo.csic.es [2 times] No more unseen articles No more unread articles nnimap read 0k from correo.csic.es No more unseen articles No more unread articles Auto-saving...done Mark set Replaced 122 occurrences Calendar ~/Nextcloud/Documents/Notes/calendar.ics unchanged Quit Configured using: 'configure --prefix=/c/Users/juanj/src/emacs-build/pkg/emacs-27_1_90-x86_64 --with-zlib --with-gnutls --with-xml2 --with-lcms2 --with-json --with-harfbuzz --with-cairo --with-rsvg --with-png --with-gif --with-tiff --with-jpeg --with-xpm --disable-build-details --disable-silent-rules --without-dbus' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY W32NOTIFY ACL GNUTLS LIBXML2 HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS JSON PDUMPER LCMS2 GMP Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: cp1252 Major mode: Summary Minor modes in effect: shell-dirtrack-mode: t display-time-mode: t which-key-mode: t icomplete-mode: t save-place-mode: t savehist-mode: t gcmh-mode: t override-global-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 temp-buffer-resize-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t Load-path shadows: c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/modus-vivendi-theme-0.13.2/modus-vivendi-theme hides c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/modus-themes-1.2.4/modus-vivendi-theme c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/modus-operandi-theme-0.13.2/modus-operandi-theme hides c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/modus-themes-1.2.4/modus-operandi-theme c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-virtual hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-virtual c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-view hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-view c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-util hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-util c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-tools hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-tools c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-sync hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-sync c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-outline hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-outline c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-occur hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-occur c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-misc hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-misc c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-loader hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-loader c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-links hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-links c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-isearch hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-isearch c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-info hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-info c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-history hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-history c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-dev hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-dev c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-cache hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-cache c:/Users/juanj/OneDrive/Library/Emacs/elpa-27/pdf-tools-0.90/pdf-annot hides c:/Users/juanj/scoop/apps/emacs/current/share/emacs/site-lisp/pdf-tools/pdf-annot Features: (shadow warnings emacsbug rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap sgml-mode nxml-util nxml-enc xmltok arc-mode archive-mode doc-view image-mode exif nnfolder jka-compr misearch multi-isearch gnus-icalendar org-capture org-refile org-tempo tempo org org-macro org-footnote org-pcomplete org-list org-faces org-entities noutline outline org-version ob-python python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete ob ob-tangle org-src ob-ref ob-lob ob-table ob-exp ob-comint comint ring ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs icalendar flow-fill smtpmail flyspell ispell vc-git diff-mode mailalias sendmail bbdb-mua bbdb-com crm bbdb bbdb-site timezone face-remap nnir mule-util sort smiley ansi-color gnus-cite mm-archive mail-extr gnus-bcklg gnus-async qp gnus-ml gnus-topic gnus-demon utf-7 nndraft nnmh nnmaild epa-file gnutls network-stream nsm nnml nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache gnus-sum url url-proxy url-privacy url-expand url-methods url-history shr url-cookie url-domsuf url-util svg xml dom gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search mail-utils mm-util mail-prsvr wid-edit time-date time cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs benchmark-init-modes debug backtrace find-func mailcap which-key icomplete epg-config modus-operandi-theme modus-themes saveplace savehist edmacro kmacro benchmark-init advice gcmh diminish 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 finder-inf tex-site info package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win 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 w32notify w32 lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 1068058 390211) (symbols 48 37670 37) (strings 32 286486 56033) (string-bytes 1 8189807) (vectors 16 85853) (vector-slots 8 2485239 445144) (floats 8 1011 1568) (intervals 56 14806 18837) (buffers 1000 184)) -- Juan José García Ripoll Quantum Information and Foundations Group Institute of Fundamental Physics IFF-CSIC Calle Serrano 113b, Madrid 28006 Spain http://quinfog.hbar.es - http://juanjose.garciaripoll.com
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.