GNU bug report logs - #73874
29.4; Inconsistent cl-loop behavior with Common Lisp

Previous Next

Package: emacs;

Reported by: Bohong Huang <bohonghuang <at> qq.com>

Date: Sat, 19 Oct 2024 07:41:01 UTC

Severity: normal

Found in version 29.4

To reply to this bug, email your comments to 73874 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


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#73874; Package emacs. (Sat, 19 Oct 2024 07:41:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bohong Huang <bohonghuang <at> qq.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 19 Oct 2024 07:41:02 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: 29.4; Inconsistent cl-loop behavior with Common Lisp
Date: Sat, 19 Oct 2024 13:11:11 +0800
Hello, Emacs developers! When I was porting a Common Lisp library to
Emacs Lisp, I found that the following minimal code example fails the
assertion in Emacs Lisp:

```lisp
(cl-loop for i in '(1 2 3)
         for j = (1- i)
         and k = (1+ i)
         do (cl-assert (= i (1+ j) (1- k))))
```

But it works fine in any proper Common Lisp implementation:

```lisp
(loop for i in '(1 2 3)
      for j = (1- i)
      and k = (1+ i)
      do (assert (= i (1+ j) (1- k))))
```

By observing the macro expansion, it seems that `cl-loop` does not
correctly handle the `for ... and ...` clauses, which should bind
multiple variables in the current loop context in parallel, but
`cl-loop` always uses the values from the first iteration.

Thank you in advance for your time on this issue.


In GNU Emacs 29.4 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.43,
cairo version 1.18.0)
System Description: Manjaro Linux

Configured using:
 'configure --with-pgtk --with-native-compilation=aot --sysconfdir=/etc
 --prefix=/usr --libexecdir=/usr/lib --with-tree-sitter
 --localstatedir=/var --with-cairo --disable-build-details
 --with-harfbuzz --with-libsystemd --with-modules '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
JSON 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: Fundamental

Minor modes in effect:
  savehist-mode: t
  nerd-icons-completion-mode: t
  marginalia-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
  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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/coco24/.emacs.d/elpa/vertico-directory-20221123.14415/vertico-directory hides /home/coco24/.emacs.d/elpa/vertico-20240926.924/vertico-directory
/home/coco24/.emacs.d/elpa/cmake-mode-20240814.1725/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/coco24/.emacs.d/elpa/transient-20240918.1138/transient hides /usr/share/emacs/29.4/lisp/transient
/home/coco24/.emacs.d/elpa/jsonrpc-1.0.25.0.20240720.4208/jsonrpc hides /usr/share/emacs/29.4/lisp/jsonrpc
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package hides /usr/share/emacs/29.4/lisp/use-package/use-package
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /usr/share/emacs/29.4/lisp/use-package/use-package-lint
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /usr/share/emacs/29.4/lisp/use-package/use-package-jump
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /usr/share/emacs/29.4/lisp/use-package/use-package-ensure
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /usr/share/emacs/29.4/lisp/use-package/use-package-diminish
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /usr/share/emacs/29.4/lisp/use-package/use-package-delight
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /usr/share/emacs/29.4/lisp/use-package/use-package-core
/home/coco24/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /usr/share/emacs/29.4/lisp/use-package/use-package-bind-key
/home/coco24/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /usr/share/emacs/29.4/lisp/use-package/bind-key
/home/coco24/.emacs.d/elpa/eglot-1.17/eglot hides /usr/share/emacs/29.4/lisp/progmodes/eglot
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox hides /usr/share/emacs/29.4/lisp/org/ox
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-texinfo hides /usr/share/emacs/29.4/lisp/org/ox-texinfo
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-publish hides /usr/share/emacs/29.4/lisp/org/ox-publish
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-org hides /usr/share/emacs/29.4/lisp/org/ox-org
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-odt hides /usr/share/emacs/29.4/lisp/org/ox-odt
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-md hides /usr/share/emacs/29.4/lisp/org/ox-md
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-man hides /usr/share/emacs/29.4/lisp/org/ox-man
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-latex hides /usr/share/emacs/29.4/lisp/org/ox-latex
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-koma-letter hides /usr/share/emacs/29.4/lisp/org/ox-koma-letter
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-icalendar hides /usr/share/emacs/29.4/lisp/org/ox-icalendar
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-html hides /usr/share/emacs/29.4/lisp/org/ox-html
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-beamer hides /usr/share/emacs/29.4/lisp/org/ox-beamer
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ox-ascii hides /usr/share/emacs/29.4/lisp/org/ox-ascii
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org hides /usr/share/emacs/29.4/lisp/org/org
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-version hides /usr/share/emacs/29.4/lisp/org/org-version
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-timer hides /usr/share/emacs/29.4/lisp/org/org-timer
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-tempo hides /usr/share/emacs/29.4/lisp/org/org-tempo
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-table hides /usr/share/emacs/29.4/lisp/org/org-table
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-src hides /usr/share/emacs/29.4/lisp/org/org-src
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-refile hides /usr/share/emacs/29.4/lisp/org/org-refile
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-protocol hides /usr/share/emacs/29.4/lisp/org/org-protocol
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-plot hides /usr/share/emacs/29.4/lisp/org/org-plot
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-persist hides /usr/share/emacs/29.4/lisp/org/org-persist
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-pcomplete hides /usr/share/emacs/29.4/lisp/org/org-pcomplete
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-num hides /usr/share/emacs/29.4/lisp/org/org-num
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-mouse hides /usr/share/emacs/29.4/lisp/org/org-mouse
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-mobile hides /usr/share/emacs/29.4/lisp/org/org-mobile
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-macs hides /usr/share/emacs/29.4/lisp/org/org-macs
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-macro hides /usr/share/emacs/29.4/lisp/org/org-macro
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-loaddefs hides /usr/share/emacs/29.4/lisp/org/org-loaddefs
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-list hides /usr/share/emacs/29.4/lisp/org/org-list
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-lint hides /usr/share/emacs/29.4/lisp/org/org-lint
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-keys hides /usr/share/emacs/29.4/lisp/org/org-keys
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-inlinetask hides /usr/share/emacs/29.4/lisp/org/org-inlinetask
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-indent hides /usr/share/emacs/29.4/lisp/org/org-indent
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-id hides /usr/share/emacs/29.4/lisp/org/org-id
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-habit hides /usr/share/emacs/29.4/lisp/org/org-habit
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-goto hides /usr/share/emacs/29.4/lisp/org/org-goto
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-footnote hides /usr/share/emacs/29.4/lisp/org/org-footnote
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-fold hides /usr/share/emacs/29.4/lisp/org/org-fold
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-fold-core hides /usr/share/emacs/29.4/lisp/org/org-fold-core
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-feed hides /usr/share/emacs/29.4/lisp/org/org-feed
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-faces hides /usr/share/emacs/29.4/lisp/org/org-faces
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-entities hides /usr/share/emacs/29.4/lisp/org/org-entities
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-element hides /usr/share/emacs/29.4/lisp/org/org-element
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-duration hides /usr/share/emacs/29.4/lisp/org/org-duration
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-datetree hides /usr/share/emacs/29.4/lisp/org/org-datetree
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-cycle hides /usr/share/emacs/29.4/lisp/org/org-cycle
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-ctags hides /usr/share/emacs/29.4/lisp/org/org-ctags
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-crypt hides /usr/share/emacs/29.4/lisp/org/org-crypt
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-compat hides /usr/share/emacs/29.4/lisp/org/org-compat
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-colview hides /usr/share/emacs/29.4/lisp/org/org-colview
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-clock hides /usr/share/emacs/29.4/lisp/org/org-clock
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-capture hides /usr/share/emacs/29.4/lisp/org/org-capture
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-attach hides /usr/share/emacs/29.4/lisp/org/org-attach
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-attach-git hides /usr/share/emacs/29.4/lisp/org/org-attach-git
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-archive hides /usr/share/emacs/29.4/lisp/org/org-archive
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/org-agenda hides /usr/share/emacs/29.4/lisp/org/org-agenda
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol hides /usr/share/emacs/29.4/lisp/org/ol
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-w3m hides /usr/share/emacs/29.4/lisp/org/ol-w3m
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-rmail hides /usr/share/emacs/29.4/lisp/org/ol-rmail
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-mhe hides /usr/share/emacs/29.4/lisp/org/ol-mhe
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-man hides /usr/share/emacs/29.4/lisp/org/ol-man
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-irc hides /usr/share/emacs/29.4/lisp/org/ol-irc
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-info hides /usr/share/emacs/29.4/lisp/org/ol-info
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-gnus hides /usr/share/emacs/29.4/lisp/org/ol-gnus
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-eww hides /usr/share/emacs/29.4/lisp/org/ol-eww
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-eshell hides /usr/share/emacs/29.4/lisp/org/ol-eshell
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-doi hides /usr/share/emacs/29.4/lisp/org/ol-doi
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-docview hides /usr/share/emacs/29.4/lisp/org/ol-docview
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-bibtex hides /usr/share/emacs/29.4/lisp/org/ol-bibtex
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ol-bbdb hides /usr/share/emacs/29.4/lisp/org/ol-bbdb
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/oc hides /usr/share/emacs/29.4/lisp/org/oc
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/oc-natbib hides /usr/share/emacs/29.4/lisp/org/oc-natbib
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/oc-csl hides /usr/share/emacs/29.4/lisp/org/oc-csl
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/oc-bibtex hides /usr/share/emacs/29.4/lisp/org/oc-bibtex
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/oc-biblatex hides /usr/share/emacs/29.4/lisp/org/oc-biblatex
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/oc-basic hides /usr/share/emacs/29.4/lisp/org/oc-basic
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob hides /usr/share/emacs/29.4/lisp/org/ob
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-tangle hides /usr/share/emacs/29.4/lisp/org/ob-tangle
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-table hides /usr/share/emacs/29.4/lisp/org/ob-table
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-sqlite hides /usr/share/emacs/29.4/lisp/org/ob-sqlite
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-sql hides /usr/share/emacs/29.4/lisp/org/ob-sql
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-shell hides /usr/share/emacs/29.4/lisp/org/ob-shell
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-sed hides /usr/share/emacs/29.4/lisp/org/ob-sed
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-screen hides /usr/share/emacs/29.4/lisp/org/ob-screen
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-scheme hides /usr/share/emacs/29.4/lisp/org/ob-scheme
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-sass hides /usr/share/emacs/29.4/lisp/org/ob-sass
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-ruby hides /usr/share/emacs/29.4/lisp/org/ob-ruby
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-ref hides /usr/share/emacs/29.4/lisp/org/ob-ref
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-python hides /usr/share/emacs/29.4/lisp/org/ob-python
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-processing hides /usr/share/emacs/29.4/lisp/org/ob-processing
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-plantuml hides /usr/share/emacs/29.4/lisp/org/ob-plantuml
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-perl hides /usr/share/emacs/29.4/lisp/org/ob-perl
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-org hides /usr/share/emacs/29.4/lisp/org/ob-org
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-octave hides /usr/share/emacs/29.4/lisp/org/ob-octave
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-ocaml hides /usr/share/emacs/29.4/lisp/org/ob-ocaml
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-maxima hides /usr/share/emacs/29.4/lisp/org/ob-maxima
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-matlab hides /usr/share/emacs/29.4/lisp/org/ob-matlab
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-makefile hides /usr/share/emacs/29.4/lisp/org/ob-makefile
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-lua hides /usr/share/emacs/29.4/lisp/org/ob-lua
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-lob hides /usr/share/emacs/29.4/lisp/org/ob-lob
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-lisp hides /usr/share/emacs/29.4/lisp/org/ob-lisp
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-lilypond hides /usr/share/emacs/29.4/lisp/org/ob-lilypond
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-latex hides /usr/share/emacs/29.4/lisp/org/ob-latex
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-julia hides /usr/share/emacs/29.4/lisp/org/ob-julia
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-js hides /usr/share/emacs/29.4/lisp/org/ob-js
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-java hides /usr/share/emacs/29.4/lisp/org/ob-java
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-haskell hides /usr/share/emacs/29.4/lisp/org/ob-haskell
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-groovy hides /usr/share/emacs/29.4/lisp/org/ob-groovy
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-gnuplot hides /usr/share/emacs/29.4/lisp/org/ob-gnuplot
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-fortran hides /usr/share/emacs/29.4/lisp/org/ob-fortran
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-forth hides /usr/share/emacs/29.4/lisp/org/ob-forth
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-exp hides /usr/share/emacs/29.4/lisp/org/ob-exp
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-eval hides /usr/share/emacs/29.4/lisp/org/ob-eval
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-eshell hides /usr/share/emacs/29.4/lisp/org/ob-eshell
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-emacs-lisp hides /usr/share/emacs/29.4/lisp/org/ob-emacs-lisp
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-dot hides /usr/share/emacs/29.4/lisp/org/ob-dot
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-ditaa hides /usr/share/emacs/29.4/lisp/org/ob-ditaa
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-css hides /usr/share/emacs/29.4/lisp/org/ob-css
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-core hides /usr/share/emacs/29.4/lisp/org/ob-core
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-comint hides /usr/share/emacs/29.4/lisp/org/ob-comint
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-clojure hides /usr/share/emacs/29.4/lisp/org/ob-clojure
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-calc hides /usr/share/emacs/29.4/lisp/org/ob-calc
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-awk hides /usr/share/emacs/29.4/lisp/org/ob-awk
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-R hides /usr/share/emacs/29.4/lisp/org/ob-R
/home/coco24/.emacs.d/elpa/org-9.8pre0.20240922.161519/ob-C hides /usr/share/emacs/29.4/lisp/org/ob-C
/home/coco24/.emacs.d/elpa/eldoc-1.15.0.0.20240708.123037/eldoc hides /usr/share/emacs/29.4/lisp/emacs-lisp/eldoc

Features:
(shadow sort mail-extr emacsbug message yank-media puny dired-ext dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums vertico-directory
mule-util orderless savehist nerd-icons-completion marginalia
smartparens-config smartparens-text smartparens loadhist thingatpt
repeat which-key pulse color init 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 compat-30 winner
ring 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 icons kinsoku 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 anaphora-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 docker-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 flymake-popon-autoloads frameshot-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 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 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-remark-autoloads org-roam-ui-autoloads org-roam-autoloads
magit-section-autoloads emacsql-autoloads org-autoloads
org-tree-slide-autoloads ox-hugo-autoloads parsebib-autoloads
parsec-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 rustic-autoloads
flycheck-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 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 which-key-autoloads
with-editor-autoloads info compat-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 password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars 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 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 make-network-process
native-compile emacs)

Memory information:
((conses 16 561522 182453)
 (symbols 48 28656 4)
 (strings 32 188792 10817)
 (string-bytes 1 5002799)
 (vectors 16 46534)
 (vector-slots 8 1546336 151419)
 (floats 8 392 202)
 (intervals 56 1666 0)
 (buffers 984 13))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73874; Package emacs. (Sun, 03 Nov 2024 06:08:02 GMT) Full text and rfc822 format available.

Message #8 received at 73874 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefankangas <at> gmail.com>
To: Bohong Huang <bohonghuang <at> qq.com>
Cc: 73874 <at> debbugs.gnu.org
Subject: Re: bug#73874: 29.4; Inconsistent cl-loop behavior with Common Lisp
Date: Sat, 2 Nov 2024 23:06:29 -0700
Bohong Huang <bohonghuang <at> qq.com> writes:

> Hello, Emacs developers! When I was porting a Common Lisp library to
> Emacs Lisp, I found that the following minimal code example fails the
> assertion in Emacs Lisp:
>
> ```lisp
> (cl-loop for i in '(1 2 3)
>          for j = (1- i)
>          and k = (1+ i)
>          do (cl-assert (= i (1+ j) (1- k))))
> ```
>
> But it works fine in any proper Common Lisp implementation:
>
> ```lisp
> (loop for i in '(1 2 3)
>       for j = (1- i)
>       and k = (1+ i)
>       do (assert (= i (1+ j) (1- k))))
> ```
>
> By observing the macro expansion, it seems that `cl-loop` does not
> correctly handle the `for ... and ...` clauses, which should bind
> multiple variables in the current loop context in parallel, but
> `cl-loop` always uses the values from the first iteration.
>
> Thank you in advance for your time on this issue.

Is this a duplicate of Bug#72753?

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72753




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73874; Package emacs. (Thu, 02 Jan 2025 02:14:02 GMT) Full text and rfc822 format available.

Message #11 received at 73874 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefankangas <at> gmail.com>
To: Bohong Huang <bohonghuang <at> qq.com>
Cc: 73874 <at> debbugs.gnu.org
Subject: Re: bug#73874: 29.4; Inconsistent cl-loop behavior with Common Lisp
Date: Wed, 1 Jan 2025 20:13:25 -0600
[Please use "Reply to all" to record the discussion in the bug tracker.]

Bohong Huang <bohonghuang <at> qq.com> writes:

> Stefan Kangas <stefankangas <at> gmail.com> writes:
>
>> Is this a duplicate of Bug#72753?
>>
>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72753
>
> This doesn't seem to be the same issue. The report you mentioned is
> about incorrect results of the loop value in the `finally` block,
> whereas this issue is during the loop where variables `j` and `k` are
> not correctly assigned. Through debugging, it can be observed that the
> assignment expressions `(1 - i)` and `(1 + i)` are evaluated only once
> despite multiple iterations.




This bug report was last modified 168 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.