* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
@ 2023-05-18 2:40 Jimmy Yuen Ho Wong
2023-05-18 6:50 ` Eli Zaretskii
2023-05-18 7:01 ` Mattias Engdegård
0 siblings, 2 replies; 8+ messages in thread
From: Jimmy Yuen Ho Wong @ 2023-05-18 2:40 UTC (permalink / raw)
To: 63564
Users have discovered there's a markdown-mode function that behaves
differently depending Emacs is executing byte-compiled code or natively
compiled code.
The issue is documented
[here](https://github.com/jrblevin/markdown-mode/issues/578).
There are two examples in the issue that will produce an `Wrong type
argument: consp, nil` error on the natively compiled version of
`markdown-imenu-create-nested-index`, but not the byte-compiled or
interpreted version. A user has provided a disassembly of the natively
compiled code for that function.
The last user has said and I can confirm the offending line seems to be `(setcdr
sibling-alist alist)` in that function.
Much appreciate it if Andrea could take a look.
In GNU Emacs 29.0.91 (build 1, aarch64-apple-darwin22.4.0, NS
appkit-2299.50 Version 13.3.1 (a) (Build 22E772610a)) of 2023-05-17
built on MobileCat.localdomain
Windowing system distributor 'Apple', version 10.3.2299
System Description: macOS 13.3.1
Configured using:
'configure --prefix=/opt/local --disable-silent-rules --without-dbus
--without-gconf --without-libotf --without-m17n-flt --with-libgmp
--with-gnutls --with-json --with-xml2 --with-modules --infodir
/opt/local/share/info/emacs --with-sqlite3 --with-webp --with-ns
--with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d
--with-tree-sitter --with-rsvg --with-xwidgets
--with-native-compilation=aot 'CFLAGS=-pipe -Os -Wno-attributes
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch
arm64' 'CPPFLAGS=-I/opt/local/include
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk'
'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath
/opt/local/lib/gcc12 -Wl,-no_pie
-Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk
-arch arm64''
Configured features:
ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XWIDGETS ZLIB
Important settings:
value of $LANG: en_GB.UTF-8
locale-coding-system: utf-8-unix
Major mode: ELisp/l
Minor modes in effect:
company-quickhelp-mode: t
company-quickhelp-local-mode: t
company-prescient-mode: t
prescient-persist-mode: t
rainbow-mode: t
elisp-def-mode: t
display-line-numbers-mode: t
subword-mode: t
page-break-lines-mode: t
beginend-prog-mode: t
imenu-list-minor-mode: t
purpose-mode: t
windmove-mode: t
magit-todos-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
diff-hl-flydiff-mode: t
projectile-rails-global-mode: t
projectile-mode: t
pdf-occur-global-minor-mode: t
crm-custom-mode: t
override-global-mode: t
shell-dirtrack-mode: t
dap-tooltip-mode: t
dap-ui-many-windows-mode: t
dap-ui-controls-mode: t
dap-ui-mode: t
treemacs-filewatch-mode: t
treemacs-follow-mode: t
treemacs-git-mode: t
treemacs-fringe-indicator-mode: t
winner-mode: t
which-key-mode: t
which-function-mode: t
smooth-scrolling-mode: t
show-smartparens-global-mode: t
show-smartparens-mode: t
smartparens-global-mode: t
smartparens-mode: t
server-mode: t
savehist-mode: t
save-place-mode: t
rxt-global-mode: t
rxt-mode: t
recentf-mode: t
minibuffer-depth-indicate-mode: t
ido-vertical-mode: t
ido-ubiquitous-mode: t
global-whitespace-cleanup-mode: t
whitespace-cleanup-mode: t
global-so-long-mode: t
global-origami-mode: t
origami-mode: t
global-move-dup-mode: t
move-dup-mode: t
global-hl-line-mode: t
global-flycheck-mode: t
global-diff-hl-show-hunk-mouse-mode: t
diff-hl-show-hunk-mouse-mode: t
global-diff-hl-mode: t
diff-hl-mode: t
global-company-mode: t
company-mode: t
global-auto-revert-mode: t
global-aggressive-indent-mode: t
aggressive-indent-mode: t
gcmh-mode: t
flx-ido-mode: t
ido-everywhere: t
icomplete-vertical-mode: t
icomplete-mode: t
fido-mode: t
editorconfig-mode: t
direnv-mode: t
desktop-save-mode: t
delete-selection-mode: t
dap-auto-configure-mode: t
dap-mode: t
yas-minor-mode: t
auto-compile-on-save-mode: t
auto-compile-mode: t
amx-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
window-divider-mode: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
visual-line-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
temp-buffer-resize-mode: t
Load-path shadows:
/Users/wyuenho/.emacs.d/elpa/jsonrpc-1.0.17/jsonrpc hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/jsonrpc
/Users/wyuenho/.emacs.d/elpa/transient-20230510.1318/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-jump
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-ensure
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-core
/Users/wyuenho/.emacs.d/elpa/use-package-ensure-system-package-20221209.2013/use-package-ensure-system-package hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-ensure-system-package
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-delight
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-diminish
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-bind-key
/Users/wyuenho/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/bind-key
/Users/wyuenho/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/use-package/use-package-lint
/Users/wyuenho/.emacs.d/elpa/verilog-mode-2022.12.18.181110314/verilog-mode hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/progmodes/verilog-mode
/Users/wyuenho/.emacs.d/elpa/eglot-1.15/eglot hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/progmodes/eglot
/Users/wyuenho/.emacs.d/elpa/flymake-1.3.4/flymake hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/progmodes/flymake
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-exp hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-exp
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-emacs-lisp hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/oc hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/oc
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-css hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-css
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-lob hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-lob
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-irc hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-irc
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-forth hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-forth
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-macs hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-macs
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-version hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-version
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-scheme hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-scheme
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-C hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-C
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-capture hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-capture
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-ref hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-ref
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-clojure hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-clojure
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-mouse hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-mouse
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-persist hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-persist
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-ctags hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-ctags
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-entities hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-entities
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-archive hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-archive
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-screen hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-screen
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-bibtex hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-bibtex
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-haskell hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-haskell
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-loaddefs hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-table hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-table
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-eww hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-eww
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-man hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-man
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-org hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-org
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-num hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-num
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-plot hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-plot
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-rmail hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-rmail
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-awk hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-awk
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-groovy hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-groovy
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-octave hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-octave
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-faces hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-faces
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/oc-biblatex hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/oc-biblatex
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-colview hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-colview
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-R hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-R
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-refile hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-refile
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-timer hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-timer
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-mobile hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-mobile
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-fortran hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-fortran
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-shell hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-shell
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-perl hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-perl
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-sqlite hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/oc-basic hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/oc-basic
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-sed hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-sed
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-list hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-list
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-ruby hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-ruby
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-eval hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-eval
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-habit hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-habit
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-clock hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-clock
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-goto hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-goto
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-html hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-html
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-src hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-src
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-lisp hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-lisp
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-eshell hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-eshell
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-ditaa hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-pcomplete hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-lint hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-lint
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-latex hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-latex
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-sass hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-sass
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-tangle hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-tangle
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-calc hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-calc
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-java hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-java
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-icalendar hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-mhe hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-mhe
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-attach-git hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-attach-git
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-md hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-md
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-beamer hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-beamer
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-element hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-element
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/oc-natbib hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/oc-natbib
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-protocol hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-protocol
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-gnuplot hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-tempo hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-tempo
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-latex hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-latex
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-w3m hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-w3m
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-id hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-id
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-man hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-man
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-doi hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-doi
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-feed hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-feed
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-fold-core hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-fold-core
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-julia hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-julia
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-lua hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-lua
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-table hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-table
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-ocaml hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/oc-csl hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/oc-csl
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-gnus hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-gnus
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-indent hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-indent
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-lilypond hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-matlab hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-matlab
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-datetree hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-datetree
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-docview hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-docview
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/oc-bibtex hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/oc-bibtex
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-python hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-python
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-makefile hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-makefile
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-duration hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-duration
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-agenda hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-agenda
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-dot hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-dot
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-js hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-js
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-publish hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-publish
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-inlinetask hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-org hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-org
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-keys hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-keys
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-core hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-core
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-compat hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-compat
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-odt hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-odt
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-info hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-info
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-plantuml hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-eshell hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-eshell
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-ascii hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-ascii
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-koma-letter hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-koma-letter
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-maxima hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-maxima
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ol-bbdb hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ol-bbdb
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-macro hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-macro
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-fold hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-fold
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-sql hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-sql
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-attach hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-attach
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-cycle hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-cycle
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-processing hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-processing
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ox-texinfo hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-crypt hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-crypt
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/org-footnote hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/org-footnote
/Users/wyuenho/.emacs.d/elpa/org-9.6.6/ob-comint hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/org/ob-comint
/Users/wyuenho/.emacs.d/elpa/soap-client-3.2.3/soap-client hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/net/soap-client
/Users/wyuenho/.emacs.d/elpa/soap-client-3.2.3/soap-inspect hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/net/soap-inspect
/Users/wyuenho/.emacs.d/elpa/faceup-20170925.1946/faceup hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/emacs-lisp/faceup
/Users/wyuenho/.emacs.d/elpa/eldoc-1.14.0/eldoc hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/emacs-lisp/eldoc
Features:
(shadow sort mail-extr emacsbug helpful cc-langs trace edebug info-look
elisp-refs expand-region subword-mode-expansions text-mode-expansions
cc-mode-expansions the-org-mode-expansions org-element org-persist xdg
org-id org-refile avl-tree ruby-mode-expansions
python-el-fgallina-expansions js-mode-expansions er-basic-expansions
expand-region-core expand-region-custom tabify cus-start facemenu
two-column dired-aux vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs
diff-hl-dired all-the-icons-dired dired-collapse dired-hacks-utils
add-node-modules-path company-quickhelp pos-tip company-prescient
prescient char-fold company-keywords company-etags etags fileloop
company-gtags company-dabbrev-code company-dabbrev company-yasnippet
company-capf company-files company-cmake company-clang company-semantic
company-template company-bbdb rainbow-mode elisp-def ert debug backtrace
display-line-numbers cap-words superword subword smartparens-rust
smartparens-config smartparens-javascript smartparens-ruby
smartparens-org smartparens-python smartparens-markdown smartparens-text
smartparens-c page-break-lines beginend window-purpose-x shut-up
imenu-list hideshow window-purpose window-purpose-fixes
window-purpose-prefix-overload window-purpose-switch
window-purpose-layout window-purpose-core window-purpose-configuration
window-purpose-utils ibuffer-projectile windmove dired-hide-dotfiles
shrink-path git-timemachine vc-git magit-lfs magit-todos hl-todo async
forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs
gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
gsexp ghub url-http url-gw url-auth gnutls forge-notify forge-revnote
forge-pullreq forge-issue forge-topic bug-reference forge-post
forge-repo forge forge-core forge-db closql emacsql-sqlite-common
emacsql emacsql-compiler magit-bookmark magit-submodule magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log magit-diff smerge-mode git-commit log-edit message
sendmail yank-media rfc822 mml mml-sec epa gnus-util mailabbrev
gmm-utils add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor magit-mode magit-git
magit-base magit-section cursor-sensor crm diff-hl-flydiff diff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util rg rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep
rg-history rg-header projectile-rails rake inflections inf-ruby
ruby-mode smie autoinsert lsp-metals view lsp-metals-treeview
treemacs-extensions treemacs-mouse-interface lsp-metals-protocol
lsp-sourcekit dap-java lsp-java request mailheader mail-utils lsp cargo
cargo-process rust-ts-mode cmake-ts-mode yard-mode lsp-pyright pet
lsp-jedi python-pytest projectile grep transient python-isort
python-black python compat python-insert-docstring typescript-ts-mode
jq-format prettier nvm iter2 generator reformatter flycheck-package
package-lint finder finder-inf dockerfile-ts-mode toml-ts-mode
yaml-ts-mode eterm-256color term disp-table ehelp xterm-color
native-complete verb js c-ts-common treesit cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs url-queue
url-file 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 cal-menu calendar
cal-loaddefs org-version org-compat org-macs quick-peek lsp-ui
lsp-ui-flycheck lsp-ui-doc xwidget goto-addr lsp-ui-imenu lsp-ui-peek
lsp-ui-sideline lsp-ui-util face-remap pdf-loader pdf-occur ibuf-ext
ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet
pdf-isearch pdf-misc pdf-tools pdf-view treemacs-bookmarks treemacs-tags
bookmark jka-compr pdf-cache pdf-info tq pdf-util pdf-macs image-mode
dired dired-loaddefs exif iedit iedit-lib mc-hide-unmatched-lines-mode
mc-mark-more mc-cycle-cursors multiple-cursors-core rect crm-custom
scroll-on-jump pager-default-keybindings pager browse-kill-ring edmacro
kmacro use-package-bind-key bind-key use-package-delight
exec-path-from-shell all-the-icons all-the-icons-faces
all-the-icons-data-material-icons
all-the-icons-data-fluentui-system-icons
all-the-icons-data-fontawesome-4 all-the-icons-data-weather-icons
all-the-icons-data-vscode-codicons all-the-icons-data-octicons
all-the-icons-data-mfixx all-the-icons-data-file-icons
all-the-icons-data-devopicons all-the-icons-data-alltheicons svg dom xml
spaceline-config spaceline-segments spaceline powerline
powerline-separators powerline-themes solarized-dark-theme
solarized-theme solarized solarized-faces delight quelpa-use-package
use-package-core quelpa mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr lisp-mnt help-fns
radix-tree tramp-cache time-stamp tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat shell pcomplete parse-time
iso8601 time-date ls-lisp format-spec dap-mouse dap-ui lsp-treemacs
lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib treemacs
treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-interface treemacs-persistence treemacs-filewatch-mode
treemacs-follow-mode treemacs-rendering treemacs-annotations
treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator pulse treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros gdb-mi bindat
gud bui bui-list bui-info bui-entry bui-core bui-history bui-button
bui-utils lsp-lens winner which-key which-func smooth-scrolling
smartparens loadhist server savehist saveplace pcre2el rxt re-builder
recentf mb-depth ido-vertical-mode ido-completing-read+ memoize cus-edit
pp minibuf-eldef help-at-pt whitespace-cleanup-mode whitespace so-long
origami origami-parsers cl move-dup hl-line flycheck find-func
diff-hl-show-hunk diff-hl-inline-popup diff-hl log-view pcvs-util vc-dir
vc vc-dispatcher company autorevert aggressive-indent gcmh flx-ido
advice flx ido icomplete editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch direnv diff-mode
easy-mmode desktop frameset delsel dap-mode dap-tasks dap-launch
lsp-docker yaml posframe dap-overlays lsp-mode lsp-protocol
yasnippet-snippets yasnippet xref project tree-widget wid-edit spinner
network-stream puny nsm markdown-mode color thingatpt noutline outline
lv inline imenu ht f f-shortdoc ewoc epg rfc6068 epg-config dash compile
text-property-search comint ansi-osc ansi-color ring auto-compile amx s
let-alist filenotify cus-load move-dup-autoloads gcmh-autoloads
yarn-mode-autoloads git-timemachine-autoloads web-mode-autoloads
flycheck-golangci-lint-autoloads docker-compose-mode-autoloads
use-package-ensure-system-package-autoloads monky-autoloads
auto-yasnippet-autoloads company-prescient-autoloads
cycle-quotes-autoloads auto-compile-autoloads python-docstring-autoloads
flycheck-plantuml-autoloads direnv-autoloads lsp-pyright-autoloads
graphviz-dot-mode-autoloads prettier-autoloads lsp-sourcekit-autoloads
protobuf-mode-autoloads faceup-autoloads lsp-java-autoloads
org-autoloads highlight-indent-guides-autoloads eglot-autoloads
jsonrpc-autoloads ts-comint-autoloads impostman-autoloads
spaceline-autoloads bug-hunter-autoloads graphql-mode-autoloads
yard-mode-autoloads git-modes-autoloads fontify-face-autoloads
crm-custom-autoloads buffer-move-autoloads pet-autoloads
scroll-on-jump-autoloads flycheck-package-autoloads magit-lfs-autoloads
lsp-origami-autoloads origami-autoloads flymake-autoloads
pdf-tools-autoloads ido-completing-read+-autoloads go-mode-autoloads
package-lint-autoloads verb-autoloads editorconfig-autoloads
memoize-autoloads lsp-ui-autoloads reason-mode-autoloads
company-quickhelp-autoloads sbt-mode-autoloads lsp-jedi-autoloads
lsp-metals-autoloads dap-mode-autoloads page-break-lines-autoloads
smart-semicolon-autoloads ssh-config-mode-autoloads sphinx-doc-autoloads
browse-kill-ring-autoloads dired-hide-dotfiles-autoloads
svg-lib-autoloads jsonian-autoloads amx-autoloads
eterm-256color-autoloads xterm-color-autoloads package-build-autoloads
derived ialign-autoloads dotenv-mode-autoloads shrink-path-autoloads
default-text-scale-autoloads iter2-autoloads enh-ruby-mode-autoloads
swift-mode-autoloads csv-mode-autoloads po-mode-autoloads
dired-single-autoloads verilog-mode-autoloads flycheck-cask-autoloads
tuareg-autoloads caml-autoloads all-the-icons-dired-autoloads
all-the-icons-autoloads jq-mode-autoloads smartparens-autoloads
flx-isearch-autoloads emmet-mode-autoloads cask-mode-autoloads
company-native-complete-autoloads native-complete-autoloads
company-autoloads focus-autoloads flycheck-projectile-autoloads
rainbow-mode-autoloads delight-autoloads flx-ido-autoloads
olivetti-autoloads lorem-ipsum-autoloads wgrep-ag-autoloads
soap-client-autoloads buttercup-autoloads vundo-autoloads
yaml-mode-autoloads python-insert-docstring-autoloads cargo-autoloads
add-node-modules-path-autoloads request-autoloads pos-tip-autoloads
jq-format-autoloads expand-region-autoloads sass-mode-autoloads
haml-mode-autoloads powerline-autoloads nvm-autoloads forge-autoloads
ghub-autoloads nodejs-repl-autoloads prescient-autoloads
string-inflection-autoloads visual-regexp-steroids-autoloads
terraform-mode-autoloads flycheck-inline-autoloads flycheck-autoloads
pkg-info-autoloads epl-autoloads whitespace-cleanup-mode-autoloads
closql-autoloads emacsql-autoloads projectile-rails-autoloads
rake-autoloads inf-ruby-autoloads inflections-autoloads
lsp-docker-autoloads yaml-autoloads macrostep-autoloads
python-pytest-autoloads scala-mode-autoloads quick-peek-autoloads
tablist-autoloads groovy-mode-autoloads imenu-anywhere-autoloads
pager-default-keybindings-autoloads pager-autoloads treepy-autoloads
bui-autoloads system-packages-autoloads repeat-help-autoloads
apib-mode-autoloads quelpa-use-package-autoloads quelpa-autoloads
ido-vertical-mode-autoloads multiple-cursors-autoloads
solarized-theme-autoloads beginend-autoloads smooth-scrolling-autoloads
vterm-autoloads which-key-autoloads aggressive-indent-autoloads
diff-hl-autoloads osx-trash-autoloads use-package-autoloads
bind-key-autoloads ron-mode-autoloads rg-autoloads wgrep-autoloads
hcl-mode-autoloads visual-regexp-autoloads udev-mode-autoloads
dired-collapse-autoloads dired-hacks-utils-autoloads ag-autoloads
arduino-mode-autoloads ede/auto eieio-base crux-autoloads
elisp-def-autoloads coverage-autoloads ov-autoloads
shift-number-autoloads python-isort-autoloads magit-todos-autoloads
pcre2el-autoloads magit-autoloads magit-section-autoloads
git-commit-autoloads with-editor-autoloads transient-autoloads
hl-todo-autoloads compat-autoloads async-autoloads kurecolor-autoloads
ibuffer-projectile-autoloads projectile-autoloads flx-autoloads
lsp-treemacs-autoloads lsp-mode-autoloads eldoc-autoloads
markdown-mode-autoloads spinner-autoloads treemacs-autoloads
cfrs-autoloads posframe-autoloads hydra-autoloads lv-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads
yasnippet-snippets-autoloads yasnippet-autoloads python-black-autoloads
reformatter-autoloads iedit-autoloads window-purpose-autoloads
shut-up-autoloads imenu-list-autoloads exec-path-from-shell-autoloads
plantuml-mode-autoloads helpful-autoloads elisp-refs-autoloads
f-autoloads s-autoloads ht-autoloads info dash-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 eieio eieio-core password-cache json map byte-opt
url-vars comp comp-cstr warnings icons subr-x rx cl-seq cl-macs cl-extra
help-mode bytecomp byte-compile gv pcase bootstrap-theme cl-loaddefs
cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win 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 xwidget-internal kqueue cocoa
ns lcms2 multi-tty make-network-process native-compile emacs)
Memory information:
((conses 16 1320533 446752)
(symbols 48 88012 0)
(strings 32 315789 98278)
(string-bytes 1 10296354)
(vectors 16 173381)
(vector-slots 8 4741055 491691)
(floats 8 864 4094)
(intervals 56 9689 2374)
(buffers 984 29))
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
2023-05-18 2:40 bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code Jimmy Yuen Ho Wong
@ 2023-05-18 6:50 ` Eli Zaretskii
2023-05-18 7:54 ` Andrea Corallo
2023-05-18 7:01 ` Mattias Engdegård
1 sibling, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2023-05-18 6:50 UTC (permalink / raw)
To: Jimmy Yuen Ho Wong, Andrea Corallo; +Cc: 63564
> From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
> Date: Thu, 18 May 2023 03:40:40 +0100
>
>
> Users have discovered there's a markdown-mode function that behaves
> differently depending Emacs is executing byte-compiled code or natively
> compiled code.
>
> The issue is documented
> [here](https://github.com/jrblevin/markdown-mode/issues/578).
>
>
> There are two examples in the issue that will produce an `Wrong type
> argument: consp, nil` error on the natively compiled version of
> `markdown-imenu-create-nested-index`, but not the byte-compiled or
> interpreted version. A user has provided a disassembly of the natively
> compiled code for that function.
>
> The last user has said and I can confirm the offending line seems to be `(setcdr
> sibling-alist alist)` in that function.
>
> Much appreciate it if Andrea could take a look.
Adding Andrea.
While, of course, Andrea's help will be appreciated, there's currently
no reason to believe this is a problem in the Emacs core, and
therefore filing a bug report here could be premature. Ideally, the
markdown-mode's developers should examine the problem first and
present convincing evidence that this is a problem with native
compilation and not with the code in markdown-mode itself.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
2023-05-18 2:40 bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code Jimmy Yuen Ho Wong
2023-05-18 6:50 ` Eli Zaretskii
@ 2023-05-18 7:01 ` Mattias Engdegård
1 sibling, 0 replies; 8+ messages in thread
From: Mattias Engdegård @ 2023-05-18 7:01 UTC (permalink / raw)
To: 63564; +Cc: Jimmy Yuen Ho Wong, Stefan Monnier, Andrea Corallo
> Users have discovered there's a markdown-mode function that behaves
> differently depending Emacs is executing byte-compiled code or natively
> compiled code.
>
> The issue is documented
> [here](https://github.com/jrblevin/markdown-mode/issues/578).
>
> There are two examples in the issue that will produce an `Wrong type
> argument: consp, nil` error on the natively compiled version of
> `markdown-imenu-create-nested-index`, but not the byte-compiled or
> interpreted version. A user has provided a disassembly of the natively
> compiled code for that function.
>
> The last user has said and I can confirm the offending line seems to be `(setcdr
> sibling-alist alist)` in that function.
>
> Much appreciate it if Andrea could take a look.
I'm not Andrea, but it appears that a related coding error was fixed in a recent commit to markdown-mode, 44f0e89534. Did that help?
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
2023-05-18 6:50 ` Eli Zaretskii
@ 2023-05-18 7:54 ` Andrea Corallo
2023-05-18 17:45 ` Jimmy Wong
0 siblings, 1 reply; 8+ messages in thread
From: Andrea Corallo @ 2023-05-18 7:54 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Jimmy Yuen Ho Wong, 63564
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
>> Date: Thu, 18 May 2023 03:40:40 +0100
>>
>>
>> Users have discovered there's a markdown-mode function that behaves
>> differently depending Emacs is executing byte-compiled code or natively
>> compiled code.
>>
>> The issue is documented
>> [here](https://github.com/jrblevin/markdown-mode/issues/578).
>>
>>
>> There are two examples in the issue that will produce an `Wrong type
>> argument: consp, nil` error on the natively compiled version of
>> `markdown-imenu-create-nested-index`, but not the byte-compiled or
>> interpreted version. A user has provided a disassembly of the natively
>> compiled code for that function.
>>
>> The last user has said and I can confirm the offending line seems to be `(setcdr
>> sibling-alist alist)` in that function.
>>
>> Much appreciate it if Andrea could take a look.
>
> Adding Andrea.
>
> While, of course, Andrea's help will be appreciated, there's currently
> no reason to believe this is a problem in the Emacs core, and
> therefore filing a bug report here could be premature. Ideally, the
> markdown-mode's developers should examine the problem first and
> present convincing evidence that this is a problem with native
> compilation and not with the code in markdown-mode itself.
Yep, if markdown-mode's developers could present a reproducer showing
how exactly the function miss-behaves and where that would help.
Andrea
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
2023-05-18 7:54 ` Andrea Corallo
@ 2023-05-18 17:45 ` Jimmy Wong
2023-05-18 18:01 ` Mattias Engdegård
2023-05-18 18:25 ` Eli Zaretskii
0 siblings, 2 replies; 8+ messages in thread
From: Jimmy Wong @ 2023-05-18 17:45 UTC (permalink / raw)
To: Eli Zaretskii, Andrea Corallo, Mattias Engdegård; +Cc: 63564
[-- Attachment #1: Type: text/plain, Size: 2014 bytes --]
As Mattias has noted, this commit on markdown-mode did fix the issues, it would still be nice to know why the natively compiled version behaves differently from the byte compiled version tho. This could be good learning for occasional elisp devs such as myself to know what to watch out for.
https://github.com/jrblevin/markdown-mode/commit/44f0e89534e6e5b3e752759d513f4a6f9757b9ee
On 18 May 2023 at 8:54 AM +0100, Andrea Corallo <akrl@sdf.org>, wrote:
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > > From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
> > > Date: Thu, 18 May 2023 03:40:40 +0100
> > >
> > >
> > > Users have discovered there's a markdown-mode function that behaves
> > > differently depending Emacs is executing byte-compiled code or natively
> > > compiled code.
> > >
> > > The issue is documented
> > > [here](https://github.com/jrblevin/markdown-mode/issues/578).
> > >
> > >
> > > There are two examples in the issue that will produce an `Wrong type
> > > argument: consp, nil` error on the natively compiled version of
> > > `markdown-imenu-create-nested-index`, but not the byte-compiled or
> > > interpreted version. A user has provided a disassembly of the natively
> > > compiled code for that function.
> > >
> > > The last user has said and I can confirm the offending line seems to be `(setcdr
> > > sibling-alist alist)` in that function.
> > >
> > > Much appreciate it if Andrea could take a look.
> >
> > Adding Andrea.
> >
> > While, of course, Andrea's help will be appreciated, there's currently
> > no reason to believe this is a problem in the Emacs core, and
> > therefore filing a bug report here could be premature. Ideally, the
> > markdown-mode's developers should examine the problem first and
> > present convincing evidence that this is a problem with native
> > compilation and not with the code in markdown-mode itself.
>
> Yep, if markdown-mode's developers could present a reproducer showing
> how exactly the function miss-behaves and where that would help.
>
> Andrea
[-- Attachment #2: Type: text/html, Size: 2591 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
2023-05-18 17:45 ` Jimmy Wong
@ 2023-05-18 18:01 ` Mattias Engdegård
2023-05-18 18:58 ` Jimmy Wong
2023-05-18 18:25 ` Eli Zaretskii
1 sibling, 1 reply; 8+ messages in thread
From: Mattias Engdegård @ 2023-05-18 18:01 UTC (permalink / raw)
To: Jimmy Wong; +Cc: Eli Zaretskii, 63564, Andrea Corallo
18 maj 2023 kl. 19.45 skrev Jimmy Wong <wyuenho@gmail.com>:
> As Mattias has noted, this commit on markdown-mode did fix the issues, it would still be nice to know why the natively compiled version behaves differently from the byte compiled version tho. This could be good learning for occasional elisp devs such as myself to know what to watch out for.
The code was mutating a program constant (quoted list) which is a no-no in Elisp. As luck has it, a new warning in Emacs 30 discovered it and a markdown-mode maintainer changed the code accordingly (the commit message says that he 'fixed a warning' but he really fixed broken code; the warning is fine).
Technically, the error likely occurred because the native compiler propagated that constant to its points of use where it underwent some compile-time evaluation. Essentially:
(let ((root '(nil)))
...
(let ((sibling-alist (last (cdr root)))) ; sibling-alist = nil
(dotimes (_ (1- level))
(setq sibling-alist (last (cdar sibling-alist)))) ; still nil
(setcdr sibling-alist alist) ; boom
In Emacs 30 the byte-compiler is able to do some of that propagation as well, and rightly so.
Don't mutate program constants. It's not safe, and it has never been safe.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
2023-05-18 17:45 ` Jimmy Wong
2023-05-18 18:01 ` Mattias Engdegård
@ 2023-05-18 18:25 ` Eli Zaretskii
1 sibling, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2023-05-18 18:25 UTC (permalink / raw)
To: Jimmy Wong; +Cc: 63564-done, mattias.engdegard, akrl
> Date: Thu, 18 May 2023 18:45:01 +0100
> From: Jimmy Wong <wyuenho@gmail.com>
> Cc: 63564@debbugs.gnu.org
>
> As Mattias has noted, this commit on markdown-mode did fix the issues, it would still be nice to know
> why the natively compiled version behaves differently from the byte compiled version tho. This could be
> good learning for occasional elisp devs such as myself to know what to watch out for.
Andrea told what he'd need to investigate, so if you or someone else
is interested, please present the data he requested.
For now, I'm closing this bug.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code
2023-05-18 18:01 ` Mattias Engdegård
@ 2023-05-18 18:58 ` Jimmy Wong
0 siblings, 0 replies; 8+ messages in thread
From: Jimmy Wong @ 2023-05-18 18:58 UTC (permalink / raw)
To: Mattias Engdegård; +Cc: Eli Zaretskii, 63564, Andrea Corallo
[-- Attachment #1: Type: text/plain, Size: 1377 bytes --]
Thank you so much!
On 18 May 2023 at 7:01 PM +0100, Mattias Engdegård <mattias.engdegard@gmail.com>, wrote:
> 18 maj 2023 kl. 19.45 skrev Jimmy Wong <wyuenho@gmail.com>:
>
> > As Mattias has noted, this commit on markdown-mode did fix the issues, it would still be nice to know why the natively compiled version behaves differently from the byte compiled version tho. This could be good learning for occasional elisp devs such as myself to know what to watch out for.
>
> The code was mutating a program constant (quoted list) which is a no-no in Elisp. As luck has it, a new warning in Emacs 30 discovered it and a markdown-mode maintainer changed the code accordingly (the commit message says that he 'fixed a warning' but he really fixed broken code; the warning is fine).
>
> Technically, the error likely occurred because the native compiler propagated that constant to its points of use where it underwent some compile-time evaluation. Essentially:
>
> (let ((root '(nil)))
> ...
> (let ((sibling-alist (last (cdr root)))) ; sibling-alist = nil
> (dotimes (_ (1- level))
> (setq sibling-alist (last (cdar sibling-alist)))) ; still nil
> (setcdr sibling-alist alist) ; boom
>
> In Emacs 30 the byte-compiler is able to do some of that propagation as well, and rightly so.
> Don't mutate program constants. It's not safe, and it has never been safe.
>
[-- Attachment #2: Type: text/html, Size: 1873 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-05-18 18:58 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-18 2:40 bug#63564: 29.0.91; (setcdr) behaves differently between natively and byte compiled code Jimmy Yuen Ho Wong
2023-05-18 6:50 ` Eli Zaretskii
2023-05-18 7:54 ` Andrea Corallo
2023-05-18 17:45 ` Jimmy Wong
2023-05-18 18:01 ` Mattias Engdegård
2023-05-18 18:58 ` Jimmy Wong
2023-05-18 18:25 ` Eli Zaretskii
2023-05-18 7:01 ` Mattias Engdegård
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.