GNU bug report logs - #67141
30.0.50; Missing element in the backtrace

Previous Next

Package: emacs;

Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>

Date: Sun, 12 Nov 2023 22:31:01 UTC

Severity: normal

Found in version 30.0.50

To reply to this bug, email your comments to 67141 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#67141; Package emacs. (Sun, 12 Nov 2023 22:31:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 12 Nov 2023 22:31:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; Missing element in the backtrace
Date: Sun, 12 Nov 2023 17:29:27 -0500
Package: Emacs
Version: 30.0.50


    emacs -Q
    (this is an unquoted list)
    C-j

Gives me:

    Debugger entered--Lisp error: (void-function this)
      (this is an unquoted list)
      (progn (this is an unquoted list))
      elisp--eval-last-sexp(t)
      eval-last-sexp(t)
      eval-print-last-sexp(nil)
      funcall-interactively(eval-print-last-sexp nil)
      command-execute(eval-print-last-sexp)

But `elisp--eval-last-sexp` doesn't directly run that `progn`.
Instead it calls `eval` to do so.  Where did `eval` go?

I see this both in Debian's Emacs-28,2 as well as on `master`.
In both cases, this is using the native compiler.
I have a local Emacs with various patches but without using the native
compiler and the problem doesn't appear there.
So my crystal ball pointed their pointy finger at the native code compiler.


        Stefan


 In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.16.0, Xaw3d scroll bars) of 2023-11-07 built on pastel
Repository revision: 62182311c1eb8b13a090b528e35f4f54dd9ca7f7
Repository branch: work
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure -C --enable-checking --enable-check-lisp-object-type --with-modules --with-cairo --with-tiff=ifavailable
 'CFLAGS=-Wall -g3 -Og -Wno-pointer-sign'
 PKG_CONFIG_PATH=/home/monnier/lib/pkgconfig'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON
LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND
THREADS TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2
XPM LUCID ZLIB

Important settings:
  value of $LANG: fr_CH.UTF-8
  locale-coding-system: utf-8-unix

Major mode: InactiveMinibuffer

Minor modes in effect:
  server-mode: t
  electric-pair-mode: t
  url-handler-mode: t
  global-reveal-mode: t
  reveal-mode: t
  auto-insert-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  type-break-mode: t
  global-compact-docstrings-mode: t
  global-corfu-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-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/monnier/src/emacs/nongnu/packages/jade-mode/jade-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/jade-mode
/home/monnier/src/emacs/nongnu/packages/jade-mode/sws-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/sws-mode
/home/monnier/src/emacs/nongnu/packages/jade-mode/stylus-mode hides /home/monnier/src/emacs/nongnu/packages/stylus-mode/stylus-mode
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/easy-kill/test
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-consult hides /home/monnier/src/emacs/elpa/packages/embark/embark-consult
/home/monnier/src/emacs/elpa/packages/embark-consult/embark-org hides /home/monnier/src/emacs/elpa/packages/embark/embark-org
/home/monnier/src/emacs/elpa/packages/embark-consult/embark hides /home/monnier/src/emacs/elpa/packages/embark/embark
/home/monnier/src/emacs/elpa/packages/embark-consult/avy-embark-collect hides /home/monnier/src/emacs/elpa/packages/embark/avy-embark-collect
/home/monnier/src/emacs/elpa/packages/ada-mode/prj hides /home/monnier/src/emacs/elpa/packages/gpr-query/prj
/home/monnier/src/emacs/nongnu/packages/forth-mode/build hides /home/monnier/src/emacs/elpa/packages/lentic/build
/home/monnier/src/emacs/elpa/packages/ef-themes/theme-loaddefs hides /home/monnier/src/emacs/elpa/packages/modus-themes/theme-loaddefs
/home/monnier/src/emacs/nongnu/packages/paredit/test hides /home/monnier/src/emacs/elpa/packages/num3-mode/test
/home/monnier/src/emacs/nongnu/packages/org-contrib/lisp/ob-asymptote hides /home/monnier/src/emacs/elpa/packages/ob-asymptote/ob-asymptote
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud-trepan-ni/cask-install
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/realgud/cask-install
/home/monnier/src/emacs/elpa/packages/realgud-lldb/cask-install hides /home/monnier/src/emacs/elpa/packages/loc-changes/cask-install
/home/monnier/src/emacs/elpa/packages/ef-themes/theme-loaddefs hides /home/monnier/src/emacs/elpa/packages/standard-themes/theme-loaddefs
/home/monnier/src/emacs/elpa/packages/elsa/Elsafile hides /home/monnier/src/emacs/elpa/packages/trinary/Elsafile
/home/monnier/src/emacs/elpa/packages/url-http-oauth-demo/url-http-oauth-demo hides /home/monnier/src/emacs/elpa/packages/url-http-oauth/url-http-oauth-demo
/home/monnier/src/emacs/elpa/packages/hydra/hydra-test hides /home/monnier/src/emacs/elpa/packages/lv/hydra-test
/home/monnier/src/emacs/elpa/packages/hydra/hydra hides /home/monnier/src/emacs/elpa/packages/lv/hydra
/home/monnier/src/emacs/elpa/packages/hydra/lv hides /home/monnier/src/emacs/elpa/packages/lv/lv
/home/monnier/src/emacs/elpa/packages/hydra/hydra-ox hides /home/monnier/src/emacs/elpa/packages/lv/hydra-ox
/home/monnier/src/emacs/elpa/packages/hydra/hydra-examples hides /home/monnier/src/emacs/elpa/packages/lv/hydra-examples
/home/monnier/src/emacs/elpa/packages/transient/lisp/transient hides /home/monnier/src/emacs/work/lisp/transient
/home/monnier/src/emacs/elpa/packages/ef-themes/theme-loaddefs hides /home/monnier/src/emacs/work/lisp/theme-loaddefs
/home/monnier/src/emacs/elpa/packages/csharp-mode/csharp-mode hides /home/monnier/src/emacs/work/lisp/progmodes/csharp-mode
/home/monnier/src/emacs/nongnu/packages/lua-mode/lua-mode hides /home/monnier/src/emacs/work/lisp/progmodes/lua-mode
/home/monnier/src/emacs/elpa/packages/org/lisp/org-src hides /home/monnier/src/emacs/work/lisp/org/org-src
/home/monnier/src/emacs/elpa/packages/org/lisp/oc hides /home/monnier/src/emacs/work/lisp/org/oc
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-screen hides /home/monnier/src/emacs/work/lisp/org/ob-screen
/home/monnier/src/emacs/elpa/packages/org/lisp/org-loaddefs hides /home/monnier/src/emacs/work/lisp/org/org-loaddefs
/home/monnier/src/emacs/elpa/packages/org/lisp/org-agenda hides /home/monnier/src/emacs/work/lisp/org/org-agenda
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-dot hides /home/monnier/src/emacs/work/lisp/org/ob-dot
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-plantuml hides /home/monnier/src/emacs/work/lisp/org/ob-plantuml
/home/monnier/src/emacs/elpa/packages/org/lisp/org-inlinetask hides /home/monnier/src/emacs/work/lisp/org/org-inlinetask
/home/monnier/src/emacs/elpa/packages/org/lisp/oc-natbib hides /home/monnier/src/emacs/work/lisp/org/oc-natbib
/home/monnier/src/emacs/elpa/packages/org/lisp/org-attach-git hides /home/monnier/src/emacs/work/lisp/org/org-attach-git
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-docview hides /home/monnier/src/emacs/work/lisp/org/ol-docview
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-exp hides /home/monnier/src/emacs/work/lisp/org/ob-exp
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-mhe hides /home/monnier/src/emacs/work/lisp/org/ol-mhe
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-awk hides /home/monnier/src/emacs/work/lisp/org/ob-awk
/home/monnier/src/emacs/elpa/packages/org/lisp/org-fold-core hides /home/monnier/src/emacs/work/lisp/org/org-fold-core
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-doi hides /home/monnier/src/emacs/work/lisp/org/ol-doi
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-ref hides /home/monnier/src/emacs/work/lisp/org/ob-ref
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-calc hides /home/monnier/src/emacs/work/lisp/org/ob-calc
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-js hides /home/monnier/src/emacs/work/lisp/org/ob-js
/home/monnier/src/emacs/elpa/packages/org/lisp/org-colview hides /home/monnier/src/emacs/work/lisp/org/org-colview
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-julia hides /home/monnier/src/emacs/work/lisp/org/ob-julia
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-ruby hides /home/monnier/src/emacs/work/lisp/org/ob-ruby
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-forth hides /home/monnier/src/emacs/work/lisp/org/ob-forth
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-lua hides /home/monnier/src/emacs/work/lisp/org/ob-lua
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-lob hides /home/monnier/src/emacs/work/lisp/org/ob-lob
/home/monnier/src/emacs/elpa/packages/org/lisp/org-compat hides /home/monnier/src/emacs/work/lisp/org/org-compat
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-matlab hides /home/monnier/src/emacs/work/lisp/org/ob-matlab
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-scheme hides /home/monnier/src/emacs/work/lisp/org/ob-scheme
/home/monnier/src/emacs/elpa/packages/org/lisp/org-table hides /home/monnier/src/emacs/work/lisp/org/org-table
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-haskell hides /home/monnier/src/emacs/work/lisp/org/ob-haskell
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-octave hides /home/monnier/src/emacs/work/lisp/org/ob-octave
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-processing hides /home/monnier/src/emacs/work/lisp/org/ob-processing
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-bibtex hides /home/monnier/src/emacs/work/lisp/org/ol-bibtex
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-ocaml hides /home/monnier/src/emacs/work/lisp/org/ob-ocaml
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-bbdb hides /home/monnier/src/emacs/work/lisp/org/ol-bbdb
/home/monnier/src/emacs/elpa/packages/org/lisp/org-plot hides /home/monnier/src/emacs/work/lisp/org/org-plot
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-core hides /home/monnier/src/emacs/work/lisp/org/ob-core
/home/monnier/src/emacs/elpa/packages/org/lisp/org-refile hides /home/monnier/src/emacs/work/lisp/org/org-refile
/home/monnier/src/emacs/elpa/packages/org/lisp/org-lint hides /home/monnier/src/emacs/work/lisp/org/org-lint
/home/monnier/src/emacs/elpa/packages/org/lisp/org-footnote hides /home/monnier/src/emacs/work/lisp/org/org-footnote
/home/monnier/src/emacs/elpa/packages/org/lisp/org hides /home/monnier/src/emacs/work/lisp/org/org
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-w3m hides /home/monnier/src/emacs/work/lisp/org/ol-w3m
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-info hides /home/monnier/src/emacs/work/lisp/org/ol-info
/home/monnier/src/emacs/elpa/packages/org/lisp/org-num hides /home/monnier/src/emacs/work/lisp/org/org-num
/home/monnier/src/emacs/elpa/packages/org/lisp/org-cycle hides /home/monnier/src/emacs/work/lisp/org/org-cycle
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-tangle hides /home/monnier/src/emacs/work/lisp/org/ob-tangle
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-clojure hides /home/monnier/src/emacs/work/lisp/org/ob-clojure
/home/monnier/src/emacs/elpa/packages/org/lisp/org-attach hides /home/monnier/src/emacs/work/lisp/org/org-attach
/home/monnier/src/emacs/elpa/packages/org/lisp/org-element hides /home/monnier/src/emacs/work/lisp/org/org-element
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-comint hides /home/monnier/src/emacs/work/lisp/org/ob-comint
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-latex hides /home/monnier/src/emacs/work/lisp/org/ox-latex
/home/monnier/src/emacs/elpa/packages/org/lisp/org-faces hides /home/monnier/src/emacs/work/lisp/org/org-faces
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-html hides /home/monnier/src/emacs/work/lisp/org/ox-html
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-lisp hides /home/monnier/src/emacs/work/lisp/org/ob-lisp
/home/monnier/src/emacs/elpa/packages/org/lisp/org-persist hides /home/monnier/src/emacs/work/lisp/org/org-persist
/home/monnier/src/emacs/elpa/packages/org/lisp/oc-basic hides /home/monnier/src/emacs/work/lisp/org/oc-basic
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-maxima hides /home/monnier/src/emacs/work/lisp/org/ob-maxima
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-gnuplot hides /home/monnier/src/emacs/work/lisp/org/ob-gnuplot
/home/monnier/src/emacs/elpa/packages/org/lisp/org-archive hides /home/monnier/src/emacs/work/lisp/org/org-archive
/home/monnier/src/emacs/elpa/packages/org/lisp/org-protocol hides /home/monnier/src/emacs/work/lisp/org/org-protocol
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-gnus hides /home/monnier/src/emacs/work/lisp/org/ol-gnus
/home/monnier/src/emacs/elpa/packages/org/lisp/org-indent hides /home/monnier/src/emacs/work/lisp/org/org-indent
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-java hides /home/monnier/src/emacs/work/lisp/org/ob-java
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-shell hides /home/monnier/src/emacs/work/lisp/org/ob-shell
/home/monnier/src/emacs/elpa/packages/org/lisp/org-tempo hides /home/monnier/src/emacs/work/lisp/org/org-tempo
/home/monnier/src/emacs/elpa/packages/org/lisp/oc-bibtex hides /home/monnier/src/emacs/work/lisp/org/oc-bibtex
/home/monnier/src/emacs/elpa/packages/org/lisp/ob hides /home/monnier/src/emacs/work/lisp/org/ob
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-texinfo hides /home/monnier/src/emacs/work/lisp/org/ox-texinfo
/home/monnier/src/emacs/elpa/packages/org/lisp/org-ctags hides /home/monnier/src/emacs/work/lisp/org/org-ctags
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-beamer hides /home/monnier/src/emacs/work/lisp/org/ox-beamer
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-perl hides /home/monnier/src/emacs/work/lisp/org/ob-perl
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-man hides /home/monnier/src/emacs/work/lisp/org/ox-man
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-R hides /home/monnier/src/emacs/work/lisp/org/ob-R
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-icalendar hides /home/monnier/src/emacs/work/lisp/org/ox-icalendar
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-python hides /home/monnier/src/emacs/work/lisp/org/ob-python
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-sass hides /home/monnier/src/emacs/work/lisp/org/ob-sass
/home/monnier/src/emacs/elpa/packages/org/lisp/oc-csl hides /home/monnier/src/emacs/work/lisp/org/oc-csl
/home/monnier/src/emacs/elpa/packages/org/lisp/org-feed hides /home/monnier/src/emacs/work/lisp/org/org-feed
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-ascii hides /home/monnier/src/emacs/work/lisp/org/ox-ascii
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-eshell hides /home/monnier/src/emacs/work/lisp/org/ob-eshell
/home/monnier/src/emacs/elpa/packages/org/lisp/org-id hides /home/monnier/src/emacs/work/lisp/org/org-id
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-man hides /home/monnier/src/emacs/work/lisp/org/ol-man
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-org hides /home/monnier/src/emacs/work/lisp/org/ox-org
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-ditaa hides /home/monnier/src/emacs/work/lisp/org/ob-ditaa
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-rmail hides /home/monnier/src/emacs/work/lisp/org/ol-rmail
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-C hides /home/monnier/src/emacs/work/lisp/org/ob-C
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-emacs-lisp hides /home/monnier/src/emacs/work/lisp/org/ob-emacs-lisp
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-makefile hides /home/monnier/src/emacs/work/lisp/org/ob-makefile
/home/monnier/src/emacs/elpa/packages/org/lisp/org-keys hides /home/monnier/src/emacs/work/lisp/org/org-keys
/home/monnier/src/emacs/elpa/packages/org/lisp/org-duration hides /home/monnier/src/emacs/work/lisp/org/org-duration
/home/monnier/src/emacs/elpa/packages/org/lisp/org-macro hides /home/monnier/src/emacs/work/lisp/org/org-macro
/home/monnier/src/emacs/elpa/packages/org/lisp/org-timer hides /home/monnier/src/emacs/work/lisp/org/org-timer
/home/monnier/src/emacs/elpa/packages/org/lisp/org-datetree hides /home/monnier/src/emacs/work/lisp/org/org-datetree
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-sed hides /home/monnier/src/emacs/work/lisp/org/ob-sed
/home/monnier/src/emacs/elpa/packages/org/lisp/ol hides /home/monnier/src/emacs/work/lisp/org/ol
/home/monnier/src/emacs/elpa/packages/org/lisp/org-list hides /home/monnier/src/emacs/work/lisp/org/org-list
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-eshell hides /home/monnier/src/emacs/work/lisp/org/ol-eshell
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-eval hides /home/monnier/src/emacs/work/lisp/org/ob-eval
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-css hides /home/monnier/src/emacs/work/lisp/org/ob-css
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-table hides /home/monnier/src/emacs/work/lisp/org/ob-table
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-eww hides /home/monnier/src/emacs/work/lisp/org/ol-eww
/home/monnier/src/emacs/elpa/packages/org/lisp/ox hides /home/monnier/src/emacs/work/lisp/org/ox
/home/monnier/src/emacs/elpa/packages/org/lisp/oc-biblatex hides /home/monnier/src/emacs/work/lisp/org/oc-biblatex
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-fortran hides /home/monnier/src/emacs/work/lisp/org/ob-fortran
/home/monnier/src/emacs/elpa/packages/org/lisp/org-habit hides /home/monnier/src/emacs/work/lisp/org/org-habit
/home/monnier/src/emacs/elpa/packages/org/lisp/ol-irc hides /home/monnier/src/emacs/work/lisp/org/ol-irc
/home/monnier/src/emacs/elpa/packages/org/lisp/org-mouse hides /home/monnier/src/emacs/work/lisp/org/org-mouse
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-koma-letter hides /home/monnier/src/emacs/work/lisp/org/ox-koma-letter
/home/monnier/src/emacs/elpa/packages/org/lisp/org-mobile hides /home/monnier/src/emacs/work/lisp/org/org-mobile
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-publish hides /home/monnier/src/emacs/work/lisp/org/ox-publish
/home/monnier/src/emacs/elpa/packages/org/lisp/org-clock hides /home/monnier/src/emacs/work/lisp/org/org-clock
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-lilypond hides /home/monnier/src/emacs/work/lisp/org/ob-lilypond
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-sqlite hides /home/monnier/src/emacs/work/lisp/org/ob-sqlite
/home/monnier/src/emacs/elpa/packages/org/lisp/org-macs hides /home/monnier/src/emacs/work/lisp/org/org-macs
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-odt hides /home/monnier/src/emacs/work/lisp/org/ox-odt
/home/monnier/src/emacs/elpa/packages/org/lisp/org-fold hides /home/monnier/src/emacs/work/lisp/org/org-fold
/home/monnier/src/emacs/elpa/packages/org/lisp/org-crypt hides /home/monnier/src/emacs/work/lisp/org/org-crypt
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-org hides /home/monnier/src/emacs/work/lisp/org/ob-org
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-latex hides /home/monnier/src/emacs/work/lisp/org/ob-latex
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-groovy hides /home/monnier/src/emacs/work/lisp/org/ob-groovy
/home/monnier/src/emacs/elpa/packages/org/lisp/ob-sql hides /home/monnier/src/emacs/work/lisp/org/ob-sql
/home/monnier/src/emacs/elpa/packages/org/lisp/org-pcomplete hides /home/monnier/src/emacs/work/lisp/org/org-pcomplete
/home/monnier/src/emacs/elpa/packages/org/lisp/ox-md hides /home/monnier/src/emacs/work/lisp/org/ox-md
/home/monnier/src/emacs/elpa/packages/org/lisp/org-capture hides /home/monnier/src/emacs/work/lisp/org/org-capture
/home/monnier/src/emacs/elpa/packages/org/lisp/org-entities hides /home/monnier/src/emacs/work/lisp/org/org-entities
/home/monnier/src/emacs/elpa/packages/org/lisp/org-goto hides /home/monnier/src/emacs/work/lisp/org/org-goto
/home/monnier/src/emacs/work/lisp/keymap hides /home/monnier/src/emacs/work/lisp/emacs-lisp/keymap
/home/monnier/src/emacs/elpa/packages/landmark/landmark hides /home/monnier/src/emacs/work/lisp/obsolete/landmark
/home/monnier/src/emacs/elpa/packages/crisp/crisp hides /home/monnier/src/emacs/work/lisp/obsolete/crisp

Features:
(magit-base magit-section cursor-sensor dash texinfo texinfo-loaddefs
emacs-news-mode vc-fossil vc-backup vc-hg vc-bzr vc-src vc-sccs vc-svn
vc-cvs vc-rcs vc-got vc-annotate vc-dir disass prefixed-core dabbrev
shortdoc log-edit bbdb-com crm bbdb bbdb-site timezone comp comp-cstr
slime-tests ert ewoc slime etags fileloop generator xref arc-mode
archive-mode hyperspec browse-url completion wgrep grep help-fns
radix-tree cl-print debug backtrace whitespace smerge-mode add-log
log-view pcvs-util vc bug-reference cl-extra view cal-china lunar solar
cal-dst cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs
cal-french org-journal org-crypt org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote
org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table
ol org-fold org-fold-core org-keys oc org-loaddefs find-func org-compat
org-macs cal-iso diary-lib diary-loaddefs mule-util cal-move cal-menu
calendar cal-loaddefs autorevert imenu doc-view filenotify jka-compr
image-mode exif sh-script smie rx treesit make-mode files-x format-spec
texmathp ffap reftex-dcr reftex reftex-loaddefs reftex-vars tex-mode
shell drupal/pcomplete pcomplete latexenc executable copyright misearch
multi-isearch html5-schema 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 facemenu dom
nxml-util nxml-enc xmltok rfc2104 gnutls network-stream nsm mailalias
smtpmail textsec uni-scripts url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util idna-mapping ucs-normalize uni-confusable textsec-check vc-git
diff-mode easy-mmode vc-dispatcher pp shadow sort mail-extr emacsbug
message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec
epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils diff filecache
raku-detect server time-date flymake project compile
text-property-search comint ansi-osc ansi-color ring warnings noutline
outline icons flyspell ispell checkdoc lisp-mnt thingatpt help-mode
elec-pair url-handlers reveal autoinsert cl-seq savehist minibuf-eldef
disp-table type-break compact-docstrings corfu compat info
adoc-mode-autoloads afternoon-theme-autoloads alect-themes-autoloads
ample-theme-autoloads annotate-autoloads anti-zenburn-theme-autoloads
apache-mode-autoloads apropospriate-theme-autoloads
arduino-mode-autoloads ede/auto eieio-base
auto-dim-other-buffers-autoloads bash-completion-autoloads
better-jumper-autoloads bison-mode-autoloads blow-autoloads
blueprint-ts-mode-autoloads boxquote-autoloads buttercup-autoloads
camera-autoloads cdlatex-autoloads cider-autoloads
clojure-ts-mode-autoloads coffee-mode-autoloads corfu-terminal-autoloads
crux-autoloads cyberpunk-theme-autoloads cycle-at-point-autoloads
d-mode-autoloads dart-mode-autoloads dcs-mode-autoloads
denote-refs-autoloads devhelp-autoloads devil-autoloads
diff-ansi-autoloads doc-show-inline-autoloads dockerfile-mode-autoloads
dracula-theme-autoloads drupal-mode-autoloads eat-autoloads
edit-indirect-autoloads editorconfig-autoloads el-mock-autoloads
elixir-mode-autoloads elpher-autoloads emacsql-mysql-autoloads
emacsql-psql-autoloads emacsql-sqlite-autoloads
emacsql-sqlite-builtin-autoloads emacsql-autoloads engine-mode-autoloads
evil-anzu-autoloads anzu-autoloads evil-args-autoloads
evil-exchange-autoloads evil-goggles-autoloads
evil-iedit-state-autoloads evil-indent-plus-autoloads
evil-lisp-state-autoloads bind-map-autoloads evil-matchit-autoloads
evil-nerd-commenter-autoloads evil-numbers-autoloads
evil-surround-autoloads evil-visual-mark-mode-autoloads
evil-visualstar-autoloads evil-autoloads exec-path-from-shell-autoloads
flx-ido-autoloads flx-autoloads flymake-guile-autoloads
flymake-kondor-autoloads flymake-popon-autoloads focus-autoloads
forth-mode-autoloads free-keys-autoloads gc-buffers-autoloads
geiser-chez-autoloads geiser-chibi-autoloads geiser-chicken-autoloads
geiser-gambit-autoloads geiser-gauche-autoloads geiser-guile-autoloads
geiser-kawa-autoloads geiser-mit-autoloads geiser-racket-autoloads
geiser-stklos-autoloads geiser-autoloads git-modes-autoloads
gnu-apl-mode-autoloads gnu-indent-autoloads gnuplot-autoloads
go-mode-autoloads golden-ratio-autoloads gotham-theme-autoloads
goto-chg-autoloads graphql-mode-autoloads gruber-darker-theme-autoloads
gruvbox-theme-autoloads autothemer-autoloads guru-mode-autoloads
haskell-mode-autoloads haskell-tng-mode-autoloads helm-autoloads
helm-core-autoloads highlight-parentheses-autoloads
hl-block-mode-autoloads hl-column-autoloads htmlize-autoloads
hyperdrive-autoloads idle-highlight-mode-autoloads idris-mode-autoloads
iedit-autoloads inf-clojure-autoloads clojure-mode-autoloads
inf-ruby-autoloads inkpot-theme-autoloads iwindow-autoloads
j-mode-autoloads jabber-autoloads jade-mode-autoloads
jinja2-mode-autoloads julia-mode-autoloads keycast-autoloads
kotlin-mode-autoloads lorem-ipsum-autoloads lua-mode-autoloads
markdown-mode-autoloads mastodon-autoloads material-theme-autoloads
mentor-autoloads meow-autoloads minibar-autoloads moe-theme-autoloads
monokai-theme-autoloads mpv-autoloads multiple-cursors-autoloads
nasm-mode-autoloads nginx-mode-autoloads nix-mode-autoloads
oblivion-theme-autoloads opam-switch-mode-autoloads
org-auto-tangle-autoloads org-drill-autoloads org-journal-autoloads
org-mime-autoloads org-present-autoloads org-superstar-autoloads
org-tree-slide-autoloads orgit-autoloads package-lint-autoloads
pacmacs-autoloads page-break-lines-autoloads paredit-autoloads
parseedn-autoloads parseclj-autoloads pcmpl-args-autoloads
pcre2el-autoloads popon-autoloads popup-autoloads prescient-autoloads
projectile-autoloads proof-general-autoloads proof-site proof-autoloads
prop-menu-autoloads racket-mode-autoloads rainbow-delimiters-autoloads
raku-mode-autoloads recomplete-autoloads rfc-mode-autoloads
rubocop-autoloads rust-mode-autoloads sass-mode-autoloads
haml-mode-autoloads scad-mode-autoloads scala-mode-autoloads
scroll-on-drag-autoloads scroll-on-jump-autoloads sesman-autoloads
shellcop-autoloads slime-autoloads macrostep-autoloads sly-autoloads
smartparens-autoloads solarized-theme-autoloads
spacemacs-theme-autoloads spell-fu-autoloads sqlite3-autoloads
stylus-mode-autoloads subatomic-theme-autoloads subed-autoloads
sweeprolog-autoloads swift-mode-autoloads swsw-autoloads
symbol-overlay-autoloads systemd-autoloads tablist-autoloads
tangotango-theme-autoloads telephone-line-autoloads
testcover-mark-line-autoloads textile-mode-autoloads toc-org-autoloads
tuareg-autoloads caml-autoloads typescript-mode-autoloads
ujelly-theme-autoloads undo-fu-autoloads undo-fu-session-autoloads
vc-fossil-autoloads vcomplete-autoloads visual-fill-column-autoloads
web-mode-autoloads webpaste-autoloads wfnames-autoloads wgrep-autoloads
why-this-autoloads with-simulated-input-autoloads workroom-autoloads
writegood-mode-autoloads ws-butler-autoloads xah-fly-keys-autoloads
xkcd-autoloads xml-rpc-autoloads yaml-mode-autoloads
yasnippet-snippets-autoloads zenburn-theme-autoloads zig-mode-autoloads
reformatter-autoloads ace-window-autoloads ack-autoloads
ada-mode-autoloads ada-ref-man-autoloads adaptive-wrap-autoloads
adjust-parens-autoloads advice-patch-autoloads
aggressive-completion-autoloads aggressive-indent-autoloads
agitate-autoloads ahungry-theme-autoloads aircon-theme-autoloads
all-autoloads altcaps-autoloads ampc-autoloads arbitools-autoloads
assess-autoloads aumix-mode-autoloads auto-correct-autoloads
auto-header-autoloads auto-overlays-autoloads autocrypt-autoloads
bbdb-autoloads beacon-autoloads beardbolt-autoloads beframe-autoloads
blist-autoloads bluetooth-autoloads bnf-mode-autoloads
boxy-headings-autoloads boxy-headlines-autoloads breadcrumb-autoloads
brief-autoloads buffer-env-autoloads buffer-expose-autoloads
bug-hunter-autoloads buildbot-autoloads calibre-autoloads cape-autoloads
capf-autosuggest-autoloads caps-lock-autoloads captain-autoloads
chess-autoloads clipboard-collector-autoloads cobol-mode-autoloads
code-cells-autoloads comint-mime-autoloads compact-docstrings-autoloads
company-ebdb-autoloads company-math-autoloads
company-statistics-autoloads company-autoloads consult-recoll-autoloads
context-coloring-autoloads corfu-autoloads coterm-autoloads
counsel-autoloads cpio-mode-autoloads cpupower-autoloads crdt-autoloads
crisp-autoloads csharp-mode-autoloads csv-mode-autoloads
cursory-autoloads cycle-quotes-autoloads darkroom-autoloads
dbus-codegen-autoloads debbugs-autoloads delight-autoloads
denote-menu-autoloads denote-autoloads detached-autoloads
devdocs-autoloads dict-tree-autoloads diff-hl-autoloads
diffview-autoloads diminish-autoloads dired-du-autoloads
dired-git-info-autoloads dired-preview-autoloads disk-usage-autoloads
dismal-autoloads djvu-autoloads do-at-point-autoloads doc-toc-autoloads
docbook-autoloads dts-mode-autoloads easy-escape-autoloads
easy-kill-autoloads ebdb-gnorb-autoloads ebdb-i18n-chn-autoloads
ebdb-autoloads ediprolog-autoloads eev-autoloads ef-themes-autoloads
el-search-autoloads electric-spacing-autoloads
elisp-benchmarks-autoloads elsa-autoloads emacs-gc-stats-autoloads
emacspeak-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads ement-autoloads emms-autoloads engrave-faces-autoloads
enwc-autoloads epoch-view-autoloads ergoemacs-mode-autoloads
ess-autoloads excorporate-autoloads expand-region-autoloads
expreg-autoloads exwm-autoloads f90-interface-browser-autoloads
face-shift-autoloads filladapt-autoloads
firefox-javascript-repl-autoloads flylisp-autoloads
flymake-proselint-autoloads fontaine-autoloads frame-tabs-autoloads
frog-menu-autoloads fsm-autoloads ftable-autoloads gcmh-autoloads
ggtags-autoloads gited-autoloads gle-mode-autoloads
gnome-c-style-autoloads gnorb-autoloads gnu-elpa-autoloads
gnu-elpa-features gnu-elpa-keyring-update-autoloads gnugo-autoloads
ascii-art-to-unicode-autoloads gnus-mock-autoloads gpastel-autoloads
gpr-mode-autoloads gpr-query-autoloads gnat-compiler-autoloads
graphql-autoloads greader-autoloads greenbar-autoloads
gtags-mode-autoloads guess-language-autoloads hcel-autoloads
hiddenquote-autoloads highlight-escape-sequences-autoloads
hook-helpers-autoloads html5-schema-autoloads ilist-autoloads
inspector-autoloads ioccur-autoloads isearch-mb-autoloads
iterators-autoloads ivy-avy-autoloads avy-autoloads
ivy-explorer-autoloads ivy-hydra-autoloads ivy-posframe-autoloads
jarchive-autoloads javaimp-autoloads jgraph-mode-autoloads
jinx-autoloads jit-spell-autoloads js2-mode-autoloads
json-mode-autoloads jumpc-autoloads kind-icon-autoloads kiwix-autoloads
request-autoloads kmb-autoloads landmark-autoloads
latex-table-wizard-autoloads auctex-autoloads tex-site leaf-autoloads
lentic-server-autoloads lentic-autoloads lex-autoloads lin-autoloads
llm-autoloads lmc-autoloads load-dir-autoloads loccur-autoloads
logos-autoloads luwak-autoloads m-buffer-autoloads marginalia-autoloads
markchars-autoloads math-symbol-lists-autoloads mct-autoloads
memory-usage-autoloads metar-autoloads midi-kbd-autoloads
mines-autoloads minibuffer-header-autoloads minibuffer-line-autoloads
minimap-autoloads modus-themes-autoloads multi-mode-autoloads
multishell-autoloads muse-autoloads myers-autoloads nameless-autoloads
names-autoloads nano-agenda-autoloads nano-modeline-autoloads
nano-theme-autoloads nftables-mode-autoloads nhexl-mode-autoloads
nlinum-autoloads notes-mode-autoloads notmuch-indicator-autoloads
num3-mode-autoloads oauth2-autoloads ob-asymptote-autoloads
ob-haxe-autoloads objed-autoloads omn-mode-autoloads on-screen-autoloads
openpgp-autoloads orderless-autoloads org-contacts-autoloads
org-edna-autoloads org-modern-autoloads org-notify-autoloads
org-real-autoloads boxy-autoloads org-remark-autoloads
org-transclusion-autoloads org-translate-autoloads org-autoloads
orgalist-autoloads osc-autoloads osm-autoloads
other-frame-window-autoloads pabbrev-autoloads paced-autoloads
parsec-autoloads parser-generator-autoloads path-iterator-autoloads
peg-autoloads perl-doc-autoloads persist-autoloads phpinspect-autoloads
phps-mode-autoloads pinentry-autoloads poke-autoloads
poke-mode-autoloads poker-autoloads polymode-autoloads popper-autoloads
pq-autoloads prefixed-core-autoloads psgml-autoloads pspp-mode-autoloads
pulsar-autoloads pyim-autoloads async-autoloads pyim-basedict-autoloads
quarter-plane-autoloads rainbow-mode-autoloads rbit-autoloads
rcirc-color-autoloads rcirc-menu-autoloads realgud-ipdb-autoloads
realgud-jdb-autoloads realgud-lldb-autoloads
realgud-node-debug-autoloads realgud-node-inspect-autoloads
realgud-pdbpp-autoloads realgud-trepan-ni-autoloads
realgud-trepan-xpy-autoloads realgud-autoloads loc-changes-autoloads
load-relative-autoloads rec-mode-autoloads register-list-autoloads
relint-autoloads repology-autoloads rich-minority-autoloads
rmsbolt-autoloads rnc-mode-autoloads rt-liberation-autoloads
ruby-end-autoloads rudel-autoloads satchel-autoloads scanner-autoloads
scroll-restore-autoloads sed-mode-autoloads setup-autoloads
shelisp-autoloads shell-command+-autoloads shell-quasiquote-autoloads
shen-mode-autoloads sisu-mode-autoloads site-lisp-autoloads
sketch-mode-autoloads slime-volleyball-autoloads sm-c-mode-autoloads
smalltalk-mode-autoloads smart-yank-autoloads sml-mode-autoloads
sokoban-autoloads sotlisp-autoloads spacious-padding-autoloads
spinner-autoloads sql-beeline-autoloads sql-cassandra-autoloads
sql-indent-autoloads sql-smie-autoloads plz-autoloads
ssh-deploy-autoloads standard-themes-autoloads stream-autoloads
substitute-autoloads svg-clock-autoloads svg-tag-mode-autoloads
svg-lib-autoloads swiper-autoloads ivy-autoloads
switchy-window-autoloads sxhkdrc-mode-autoloads
system-packages-autoloads tam-autoloads taxy-magit-section-autoloads
taxy-autoloads dash-autoloads temp-buffer-browse-autoloads
tempel-autoloads test-simple-autoloads timerfunctions-autoloads
tiny-autoloads tmr-autoloads tomelr-autoloads topspace-autoloads
tramp-nspawn-autoloads tramp-theme-autoloads transcribe-autoloads
transient-cycles-autoloads tree-inspector-autoloads treeview-autoloads
trie-autoloads heap-autoloads tNFA-autoloads trinary-autoloads
triples-autoloads typo-autoloads ulisp-repl-autoloads
undo-tree-autoloads uni-confusables-autoloads uniquify-files-autoloads
urgrep-autoloads url-http-ntlm-autoloads url-http-oauth-demo-autoloads
url-http-oauth-autoloads url-auth url-parse auth-source eieio eieio-core
cl-macs pcase cl-loaddefs cl-lib gv password-cache json subr-x map
byte-opt bytecomp byte-compile url-vars url-scgi-autoloads
validate-autoloads valign-autoloads vc-backup-autoloads vc-got-autoloads
vc-hgcmd-autoloads vcard-autoloads vcl-mode-autoloads vdiff-autoloads
hydra-autoloads lv-autoloads vertico-posframe-autoloads
vertico-autoloads compat-autoloads posframe-autoloads vigenere-autoloads
visual-filename-abbrev-autoloads visual-fill-autoloads vlf-autoloads
vundo-autoloads wcheck-mode-autoloads wconf-autoloads
web-server-autoloads webfeeder-autoloads websocket-autoloads
which-key-autoloads window-commander-autoloads windower-autoloads
windresize-autoloads wisitoken-grammar-mode-autoloads mmm-mode-autoloads
wisi-autoloads wpuzzle-autoloads wrap-search-autoloads xclip-autoloads
xeft-autoloads xelb-autoloads xpm-autoloads queue-autoloads xr-autoloads
xref-union-autoloads yasnippet-classic-snippets-autoloads
yasnippet-autoloads zones-autoloads ztree-autoloads zuul-autoloads rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd touch-screen 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 button
loaddefs theme-loaddefs oclosure cl-preloaded 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 x-toolkit xinput2 x multi-tty move-toolbar
make-network-process emacs)

Memory information:
((conses 16 720118 577484) (symbols 48 47897 2) (strings 32 230032 32352)
 (string-bytes 1 6576994) (vectors 16 120799)
 (vector-slots 8 3176737 679304) (floats 8 1074 750)
 (intervals 56 38990 2084) (buffers 992 107))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 13 Nov 2023 14:05:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>,
 Andrea Corallo <acorallo <at> gnu.org>
Cc: 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 13 Nov 2023 16:03:45 +0200
> Date: Sun, 12 Nov 2023 17:29:27 -0500
> From:  Stefan Monnier via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> Package: Emacs
> Version: 30.0.50
> 
> 
>     emacs -Q
>     (this is an unquoted list)
>     C-j
> 
> Gives me:
> 
>     Debugger entered--Lisp error: (void-function this)
>       (this is an unquoted list)
>       (progn (this is an unquoted list))
>       elisp--eval-last-sexp(t)
>       eval-last-sexp(t)
>       eval-print-last-sexp(nil)
>       funcall-interactively(eval-print-last-sexp nil)
>       command-execute(eval-print-last-sexp)
> 
> But `elisp--eval-last-sexp` doesn't directly run that `progn`.
> Instead it calls `eval` to do so.  Where did `eval` go?
> 
> I see this both in Debian's Emacs-28,2 as well as on `master`.
> In both cases, this is using the native compiler.
> I have a local Emacs with various patches but without using the native
> compiler and the problem doesn't appear there.
> So my crystal ball pointed their pointy finger at the native code compiler.

Adding Andrea.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 13 Nov 2023 16:28:01 GMT) Full text and rfc822 format available.

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

From: Andrea Corallo <acorallo <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 67141 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 13 Nov 2023 11:27:07 -0500
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Sun, 12 Nov 2023 17:29:27 -0500
>> From:  Stefan Monnier via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> Package: Emacs
>> Version: 30.0.50
>> 
>> 
>>     emacs -Q
>>     (this is an unquoted list)
>>     C-j
>> 
>> Gives me:
>> 
>>     Debugger entered--Lisp error: (void-function this)
>>       (this is an unquoted list)
>>       (progn (this is an unquoted list))
>>       elisp--eval-last-sexp(t)
>>       eval-last-sexp(t)
>>       eval-print-last-sexp(nil)
>>       funcall-interactively(eval-print-last-sexp nil)
>>       command-execute(eval-print-last-sexp)
>> 
>> But `elisp--eval-last-sexp` doesn't directly run that `progn`.
>> Instead it calls `eval` to do so.  Where did `eval` go?
>> 
>> I see this both in Debian's Emacs-28,2 as well as on `master`.
>> In both cases, this is using the native compiler.
>> I have a local Emacs with various patches but without using the native
>> compiler and the problem doesn't appear there.
>> So my crystal ball pointed their pointy finger at the native code compiler.
>
> Adding Andrea.

Thanks,

mmmh, my crystal ball suggests that some (native compiled) code is
calling directly a primitive (eval) without going through funcall, as a
consequence no backtrace is recorded.  AFAIR that's what happen with
byte compiled code with primitves with assigned (byte)op-code as well.

BR

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Thu, 16 Nov 2023 09:37:01 GMT) Full text and rfc822 format available.

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

From: Andrea Corallo <acorallo <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 67141 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Thu, 16 Nov 2023 04:35:48 -0500
Andrea Corallo <acorallo <at> gnu.org> writes:

> Eli Zaretskii <eliz <at> gnu.org> writes:
>
>>> Date: Sun, 12 Nov 2023 17:29:27 -0500
>>> From:  Stefan Monnier via "Bug reports for GNU Emacs,
>>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>>> 
>>> Package: Emacs
>>> Version: 30.0.50
>>> 
>>> 
>>>     emacs -Q
>>>     (this is an unquoted list)
>>>     C-j
>>> 
>>> Gives me:
>>> 
>>>     Debugger entered--Lisp error: (void-function this)
>>>       (this is an unquoted list)
>>>       (progn (this is an unquoted list))
>>>       elisp--eval-last-sexp(t)
>>>       eval-last-sexp(t)
>>>       eval-print-last-sexp(nil)
>>>       funcall-interactively(eval-print-last-sexp nil)
>>>       command-execute(eval-print-last-sexp)
>>> 
>>> But `elisp--eval-last-sexp` doesn't directly run that `progn`.
>>> Instead it calls `eval` to do so.  Where did `eval` go?
>>> 
>>> I see this both in Debian's Emacs-28,2 as well as on `master`.
>>> In both cases, this is using the native compiler.
>>> I have a local Emacs with various patches but without using the native
>>> compiler and the problem doesn't appear there.
>>> So my crystal ball pointed their pointy finger at the native code compiler.
>>
>> Adding Andrea.
>
> Thanks,
>
> mmmh, my crystal ball suggests that some (native compiled) code is
> calling directly a primitive (eval) without going through funcall, as a
> consequence no backtrace is recorded.  AFAIR that's what happen with
> byte compiled code with primitves with assigned (byte)op-code as well.

PS and indeed similarly what happen calling a primitive from other C
code.

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Fri, 17 Nov 2023 19:03:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Fri, 17 Nov 2023 14:01:41 -0500
>> mmmh, my crystal ball suggests that some (native compiled) code is
>> calling directly a primitive (eval) without going through funcall, as a
>> consequence no backtrace is recorded.  AFAIR that's what happen with
>> byte compiled code with primitves with assigned (byte)op-code as well.
>
> PS and indeed similarly what happen calling a primitive from other C
> code.

But C code can choose whether it calls `F<foo>` directly or goes through
`Ffuncall`, whereas for ELisp code there is no such control.
It impacts debugging and profiling, in my experience.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Fri, 17 Nov 2023 20:49:02 GMT) Full text and rfc822 format available.

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

From: Andrea Corallo <acorallo <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Fri, 17 Nov 2023 15:48:28 -0500
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>>> mmmh, my crystal ball suggests that some (native compiled) code is
>>> calling directly a primitive (eval) without going through funcall, as a
>>> consequence no backtrace is recorded.  AFAIR that's what happen with
>>> byte compiled code with primitves with assigned (byte)op-code as well.
>>
>> PS and indeed similarly what happen calling a primitive from other C
>> code.
>
> But C code can choose whether it calls `F<foo>` directly or goes through
> `Ffuncall`, whereas for ELisp code there is no such control.

Yes, still already with bytecode only in some case in Elisp code it goes
through funcall and in some it doesn't.

> It impacts debugging and profiling, in my experience.

I see, the outcome for me is that we should offer a way for the user to
force the use of funcall.  Unfortunatelly ATM if one writes like
(funcall 'eval ...) it gets optimized.  Maybe even a funcall wrapper
written in Elisp would be sufficient?

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Fri, 17 Nov 2023 21:30:02 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Fri, 17 Nov 2023 16:29:27 -0500
>> It impacts debugging and profiling, in my experience.
> I see, the outcome for me is that we should offer a way for the user to
> force the use of funcall.  Unfortunatelly ATM if one writes like
> (funcall 'eval ...) it gets optimized.  Maybe even a funcall wrapper
> written in Elisp would be sufficient?

FWIW, for the specific example in the bug report, I'd argue that we
should never call `Feval` directly because a call to `eval`
is a pretty strong hint that speed is probably not a priority.
Similarly I'd expect that most calls to `mapcar` won't benefit very much
from a direct call because the cost of preparing the call
(constructing a closure to pass to `mapcar`) and running the loop is
probably high enough to dwarf the function call itself.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 08:56:02 GMT) Full text and rfc822 format available.

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

From: Andrea Corallo <acorallo <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 20 Nov 2023 03:55:40 -0500
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>>> It impacts debugging and profiling, in my experience.
>> I see, the outcome for me is that we should offer a way for the user to
>> force the use of funcall.  Unfortunatelly ATM if one writes like
>> (funcall 'eval ...) it gets optimized.  Maybe even a funcall wrapper
>> written in Elisp would be sufficient?
>
> FWIW, for the specific example in the bug report, I'd argue that we
> should never call `Feval` directly because a call to `eval`
> is a pretty strong hint that speed is probably not a priority.
> Similarly I'd expect that most calls to `mapcar` won't benefit very much
> from a direct call because the cost of preparing the call
> (constructing a closure to pass to `mapcar`) and running the loop is
> probably high enough to dwarf the function call itself.

Good points,

With ea7a52dbaed I added eval to 'native-comp-never-optimize-functions'
so this should fix the reported issue, for mapcar I think we should
prove it has really no performance impact before deciding to include it
as well.

Thanks

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 12:14:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: 67141 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 20 Nov 2023 14:12:44 +0200
> From: Andrea Corallo <acorallo <at> gnu.org>
> Cc: Eli Zaretskii <eliz <at> gnu.org>,  67141 <at> debbugs.gnu.org
> Date: Mon, 20 Nov 2023 03:55:40 -0500
> 
> With ea7a52dbaed I added eval to 'native-comp-never-optimize-functions'
> so this should fix the reported issue, for mapcar I think we should
> prove it has really no performance impact before deciding to include it
> as well.

Should this bug be closed now?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 13:43:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Andrea Corallo <acorallo <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 20 Nov 2023 08:41:51 -0500
>> With ea7a52dbaed I added eval to 'native-comp-never-optimize-functions'
>> so this should fix the reported issue,

Thanks.

>> for mapcar I think we should prove it has really no performance
>> impact before deciding to include it as well.

Agreed.  It occurred to me that there are several places where we use
`mapcar` with a lists that's usually empty, and hence where the funcall
overhead is not necessarily negligible.

> Should this bug be closed now?

AFAIK the sample backtrace is only one among many others and the fact
that the missing element in the backtrace happened to be using `eval` is
circumstantial, so the addition of `eval` to
`native-comp-never-optimize-functions` just circumvents the problem for
`eval` but not for all the other C primitives we call directly.

IOW no, I don't think it fixes the bug :-(


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 15:14:02 GMT) Full text and rfc822 format available.

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

From: Andrea Corallo <acorallo <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 20 Nov 2023 10:13:47 -0500
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>>> With ea7a52dbaed I added eval to 'native-comp-never-optimize-functions'
>>> so this should fix the reported issue,
>
> Thanks.
>
>>> for mapcar I think we should prove it has really no performance
>>> impact before deciding to include it as well.
>
> Agreed.  It occurred to me that there are several places where we use
> `mapcar` with a lists that's usually empty, and hence where the funcall
> overhead is not necessarily negligible.
>
>> Should this bug be closed now?
>
> AFAIK the sample backtrace is only one among many others and the fact
> that the missing element in the backtrace happened to be using `eval` is
> circumstantial, so the addition of `eval` to
> `native-comp-never-optimize-functions` just circumvents the problem for
> `eval` but not for all the other C primitives we call directly.
>
> IOW no, I don't think it fixes the bug :-(

If you want then I think we should consider this bug not only native
comp related, as I explained we have this issue since long time in other
circumstances.

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 17:56:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 20 Nov 2023 12:52:27 -0500
> If you want then I think we should consider this bug not only native
> comp related, as I explained we have this issue since long time in
> other circumstances.

I think it's qualitatively different, but yes, this is not the only
occurrence of the problem.  AFAICT, we have 3 different cases:

A. Native compiled code making a "direct call" to a C primitive.
B. ELisp primitives with their own bytecode.
C. C code calling `Ffoo` instead of `Ffuncall (Qfoo, ...)`.

(B) and (C) have been with us for ever.  They also suffer from being
unaffected by advice.  (A) on the other hand is new, but obeys advice.

I think (C) is qualitatively very different from (A) because
(C) can be fixed by hand whenever we decide that it's a problem,
i.e. whenever we decide that the fact that the code calls exactly
`foo` (as opposed to some other code with similar behavior) shouldn't
be seen as an internal implementation detail.

Similarly B is qualitatively different from (A) because (B) applies only
to a small set of primitives.

(B) is more annoying than (C), admittedly, since it occurs fairly often
in a backtrace that we'd like to have a better idea of where we are
inside a byte-compiled function.  I'd welcome improvement in this area
(maybe by looking at the (bytecode)PC, then disassembling the bytecode
at that position to find the primitive that we're executing).


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 18:18:01 GMT) Full text and rfc822 format available.

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

From: Andrea Corallo <acorallo <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 20 Nov 2023 13:16:39 -0500
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>> If you want then I think we should consider this bug not only native
>> comp related, as I explained we have this issue since long time in
>> other circumstances.
>
> I think it's qualitatively different, but yes, this is not the only
> occurrence of the problem.  AFAICT, we have 3 different cases:
>
> A. Native compiled code making a "direct call" to a C primitive.
> B. ELisp primitives with their own bytecode.
> C. C code calling `Ffoo` instead of `Ffuncall (Qfoo, ...)`.
>
> (B) and (C) have been with us for ever.  They also suffer from being
> unaffected by advice.  (A) on the other hand is new, but obeys advice.
>
> I think (C) is qualitatively very different from (A) because
> (C) can be fixed by hand whenever we decide that it's a problem,

Well ATM we can fix A by hand as well with a (declare (speed 0)) in the
calling function.  Admittedly would be nice to have a more narrowed way
to handle this at call site.  I'd e in favor of adding it.  Do you think
this would be sufficient?

  Andrea




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 18:51:01 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: Re: bug#67141: 30.0.50; Missing element in the backtrace
Date: Mon, 20 Nov 2023 13:47:59 -0500
>>> If you want then I think we should consider this bug not only native
>>> comp related, as I explained we have this issue since long time in
>>> other circumstances.
>> I think it's qualitatively different, but yes, this is not the only
>> occurrence of the problem.  AFAICT, we have 3 different cases:
>>
>> A. Native compiled code making a "direct call" to a C primitive.
>> B. ELisp primitives with their own bytecode.
>> C. C code calling `Ffoo` instead of `Ffuncall (Qfoo, ...)`.
>>
>> (B) and (C) have been with us for ever.  They also suffer from being
>> unaffected by advice.  (A) on the other hand is new, but obeys advice.
>>
>> I think (C) is qualitatively very different from (A) because
>> (C) can be fixed by hand whenever we decide that it's a problem,
>
> Well ATM we can fix A by hand as well with a (declare (speed 0)) in the
> calling function.  Admittedly would be nice to have a more narrowed way
> to handle this at call site.  I'd e in favor of adding it.  Do you think
> this would be sufficient?

Don't know if it would be sufficient, nor if it would be useful.
I don't yet have enough experience with it to get a good intuition about
when we need that info and how we use it.  So far, most of the cases
where I noticed the absence of a function in the backtrace:

- I wasn't sure whether it was an occurrence of the current problem,
  or simply some misunderstanding on my part.
- I wouldn't have known which function call to annotate (I needed the
  backtrace info specifically to find that out :-(
- I de-optimized the function by redefining it (i.e. non-compiled) in
  order to solve the immediate lack of info.  It'd be good to reduce our
  reliance on interpreted ELisp code for debugging purposes, but so far,
  that's still our go-to tool, AFAICT.

I suspect that for the non-expert ELisp coder the above are serious problems.


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67141; Package emacs. (Mon, 20 Nov 2023 21:03:02 GMT) Full text and rfc822 format available.

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

From: Mattias EngdegÄrd <mattias.engdegard <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Andrea Corallo <acorallo <at> gnu.org>, 67141 <at> debbugs.gnu.org
Subject: bug#67141: 30.0.50; Missing element in the backtrace 
Date: Mon, 20 Nov 2023 22:01:49 +0100
> B. ELisp primitives with their own bytecode.

Some time ago I made a feeble attempt to remedy this problem but only got as far as dealing with a few byte ops that open-coded their respective Lisp operations (car, aref, and a few more).

The straightforward solution would be to access the PC and SP from a bytecode frame when a backtrace is required but it will be a bit messy and I feared there might be performance consequences, and it's possible that the stack frame format would need changing as well. Still worth a try, though.

(Actually I'd like the option to include a byte code offset to source location map in the compiled bytecode as well. It would be the next logical step. Not sure how best to store it but a byte string is probably what I'd use, possibly loaded dynamically like doc strings.)

Not sure if the native compiler would prefer building on that kind of source location structure but why not.





This bug report was last modified 165 days ago.

Previous Next


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