* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
@ 2023-06-03 13:22 Jimmy Yuen Ho Wong
2023-06-03 13:51 ` Eli Zaretskii
0 siblings, 1 reply; 17+ messages in thread
From: Jimmy Yuen Ho Wong @ 2023-06-03 13:22 UTC (permalink / raw)
To: 63871
Reproduction:
1. emacs -q -nsl --eval="(require 'cl-lib)"
2. C-x b TAB
3. Select *Async-native-compile-log*
4. The following is printed
```emacs-lisp
Compiling /opt/local/share/emacs/29.0.91/lisp/emacs-lisp/cl-loaddefs.el.gz...
uncompressing cl-loaddefs.el.gz...
uncompressing cl-loaddefs.el.gz...done
Compilation finished.
```
Expectation:
This behavior is observed when any packages in ~/.emacs.d/elpa/
autoloads and require cl-lib, org or tramp as well.
The simple act of requiring a built-in Emacs package should not trigger
a JIT native compilation on an Emacs installation built with
`--with-native-compilation=aot`.
In GNU Emacs 29.0.91 (build 1, aarch64-apple-darwin22.5.0, NS
appkit-2299.60 Version 13.4 (Build 22F66)) of 2023-06-01 built on
MobileCat.localdomain
Windowing system distributor 'Apple', version 10.3.2299
System Description: macOS 13.4
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-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 ZLIB
Important settings:
value of $LANG: en_GB.UTF-8
locale-coding-system: utf-8-unix
Major mode: Fundamental
Minor modes in effect:
company-quickhelp-mode: t
company-prescient-mode: t
prescient-persist-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
shell-dirtrack-mode: t
pdf-occur-global-minor-mode: t
crm-custom-mode: t
override-global-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
smartparens-global-mode: t
server-mode: t
savehist-mode: t
save-place-mode: t
rxt-global-mode: t
recentf-mode: t
minibuffer-depth-indicate-mode: t
ido-vertical-mode: t
ido-ubiquitous-mode: t
global-whitespace-cleanup-mode: t
global-so-long-mode: t
global-origami-mode: t
global-move-dup-mode: t
global-hl-line-mode: t
global-flycheck-mode: t
global-diff-hl-show-hunk-mouse-mode: t
global-diff-hl-mode: t
global-company-mode: t
global-auto-revert-mode: t
global-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
auto-compile-on-save-mode: t
amx-mode: t
tooltip-mode: t
global-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
blink-cursor-mode: t
window-divider-mode: t
buffer-read-only: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
temp-buffer-resize-mode: t
Load-path shadows:
/opt/local/share/emacs/site-lisp/site-start hides /Applications/MacPorts/Emacs.app/Contents/Resources/site-lisp/site-start
/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-20230602.2121/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/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 cl-print helpful cc-langs trace edebug
info-look elisp-refs misearch multi-isearch visual-regexp-steroids
visual-regexp 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 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
prettier tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat ls-lisp 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 native-complete shell ehelp
xterm-color 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 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 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 format-spec 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
parse-time iso8601 time-date 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 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
cape-autoloads docker-compose-mode-autoloads
use-package-ensure-system-package-autoloads monky-autoloads
auto-yasnippet-autoloads company-prescient-autoloads
cycle-quotes-autoloads forge-autoloads auto-compile-autoloads
python-docstring-autoloads flycheck-plantuml-autoloads direnv-autoloads
lsp-pyright-autoloads graphviz-dot-mode-autoloads prettier-autoloads
editorconfig-autoloads lsp-sourcekit-autoloads protobuf-mode-autoloads
faceup-autoloads lsp-java-autoloads highlight-indent-guides-autoloads
eglot-autoloads jsonrpc-autoloads ts-comint-autoloads
impostman-autoloads macrostep-autoloads spaceline-autoloads
bug-hunter-autoloads graphql-mode-autoloads yard-mode-autoloads
git-modes-autoloads fontify-face-autoloads crm-custom-autoloads
buffer-move-autoloads window-purpose-autoloads shut-up-autoloads
pet-autoloads scroll-on-jump-autoloads swift-mode-autoloads
flycheck-package-autoloads magit-lfs-autoloads lsp-origami-autoloads
origami-autoloads flymake-autoloads marginalia-autoloads
pdf-tools-autoloads ido-completing-read+-autoloads go-mode-autoloads
verb-autoloads memoize-autoloads orderless-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 ialign-autoloads
dotenv-mode-autoloads shrink-path-autoloads default-text-scale-autoloads
iter2-autoloads enh-ruby-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
flx-isearch-autoloads package-build-autoloads derived
emmet-mode-autoloads imenu-list-autoloads closql-autoloads
emacsql-autoloads cask-mode-autoloads ghub-autoloads treepy-autoloads
company-native-complete-autoloads native-complete-autoloads
company-autoloads focus-autoloads flycheck-projectile-autoloads
rainbow-mode-autoloads delight-autoloads flx-ido-autoloads
corfu-prescient-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 expand-region-autoloads sass-mode-autoloads
haml-mode-autoloads powerline-autoloads smartparens-autoloads
nvm-autoloads nodejs-repl-autoloads prescient-autoloads
string-inflection-autoloads visual-regexp-steroids-autoloads
terraform-mode-autoloads flycheck-inline-autoloads
whitespace-cleanup-mode-autoloads projectile-rails-autoloads
rake-autoloads inf-ruby-autoloads inflections-autoloads
lsp-docker-autoloads yaml-autoloads python-pytest-autoloads
flycheck-golangci-lint-autoloads flycheck-autoloads pkg-info-autoloads
epl-autoloads scala-mode-autoloads quick-peek-autoloads
tablist-autoloads groovy-mode-autoloads imenu-anywhere-autoloads
pager-default-keybindings-autoloads pager-autoloads bui-autoloads
system-packages-autoloads repeat-help-autoloads apib-mode-autoloads
quelpa-use-package-autoloads quelpa-autoloads package-lint-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 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 corfu-terminal-autoloads popon-autoloads corfu-autoloads
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 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 async-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 kqueue cocoa ns lcms2 multi-tty make-network-process
native-compile emacs)
Memory information:
((conses 16 1412252 300730)
(symbols 48 87355 0)
(strings 32 310425 62908)
(string-bytes 1 9819007)
(vectors 16 171415)
(vector-slots 8 4797552 315357)
(floats 8 836 2039)
(intervals 56 2789 741)
(buffers 984 29))
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 13:22 bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require Jimmy Yuen Ho Wong
@ 2023-06-03 13:51 ` Eli Zaretskii
2023-06-03 13:54 ` Jimmy Wong
` (2 more replies)
0 siblings, 3 replies; 17+ messages in thread
From: Eli Zaretskii @ 2023-06-03 13:51 UTC (permalink / raw)
To: Jimmy Yuen Ho Wong; +Cc: 63871-done
> From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
> Date: Sat, 03 Jun 2023 14:22:41 +0100
>
>
> Reproduction:
>
> 1. emacs -q -nsl --eval="(require 'cl-lib)"
> 2. C-x b TAB
> 3. Select *Async-native-compile-log*
> 4. The following is printed
>
> ```emacs-lisp
> Compiling /opt/local/share/emacs/29.0.91/lisp/emacs-lisp/cl-loaddefs.el.gz...
> uncompressing cl-loaddefs.el.gz...
> uncompressing cl-loaddefs.el.gz...done
> Compilation finished.
> ```
>
> Expectation:
>
> This behavior is observed when any packages in ~/.emacs.d/elpa/
> autoloads and require cl-lib, org or tramp as well.
>
> The simple act of requiring a built-in Emacs package should not trigger
> a JIT native compilation on an Emacs installation built with
> `--with-native-compilation=aot`.
And it doesn't. cl-loaddefs has the "no-native-compile: t" thingy in
the file-local variables, so the native-compilation does nothing.
So I don't see any bug here, and I'm closing this bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 13:51 ` Eli Zaretskii
@ 2023-06-03 13:54 ` Jimmy Wong
2023-06-03 14:09 ` Eli Zaretskii
2023-06-03 14:02 ` Jimmy Wong
2023-06-03 14:05 ` Jimmy Wong
2 siblings, 1 reply; 17+ messages in thread
From: Jimmy Wong @ 2023-06-03 13:54 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 63871-done
[-- Attachment #1: Type: text/plain, Size: 1313 bytes --]
The problem is not that it does something when it compiles, the problem is it should not have triggered a compilation at all and pops up a buffer. This messes up the buffer order when restoring a session with desktop mode on restart.
On 3 Jun 2023 at 2:50 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
> > From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
> > Date: Sat, 03 Jun 2023 14:22:41 +0100
> >
> >
> > Reproduction:
> >
> > 1. emacs -q -nsl --eval="(require 'cl-lib)"
> > 2. C-x b TAB
> > 3. Select *Async-native-compile-log*
> > 4. The following is printed
> >
> > ```emacs-lisp
> > Compiling /opt/local/share/emacs/29.0.91/lisp/emacs-lisp/cl-loaddefs.el.gz...
> > uncompressing cl-loaddefs.el.gz...
> > uncompressing cl-loaddefs.el.gz...done
> > Compilation finished.
> > ```
> >
> > Expectation:
> >
> > This behavior is observed when any packages in ~/.emacs.d/elpa/
> > autoloads and require cl-lib, org or tramp as well.
> >
> > The simple act of requiring a built-in Emacs package should not trigger
> > a JIT native compilation on an Emacs installation built with
> > `--with-native-compilation=aot`.
>
> And it doesn't. cl-loaddefs has the "no-native-compile: t" thingy in
> the file-local variables, so the native-compilation does nothing.
>
> So I don't see any bug here, and I'm closing this bug.
[-- Attachment #2: Type: text/html, Size: 1849 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 13:54 ` Jimmy Wong
@ 2023-06-03 14:09 ` Eli Zaretskii
2023-06-03 14:11 ` Jimmy Wong
0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2023-06-03 14:09 UTC (permalink / raw)
To: Jimmy Wong; +Cc: 63871
> Date: Sat, 3 Jun 2023 14:54:22 +0100
> From: Jimmy Wong <wyuenho@gmail.com>
> Cc: 63871-done@debbugs.gnu.org
>
> The problem is not that it does something when it compiles, the problem is it should not have triggered
> a compilation at all and pops up a buffer.
??? Why? Loading a package could legitimately load other packages.
Emacs worked like that since about forever. What is special in this
particular case?
And what do you mean by "pops up a buffer"? When I reproduce your
recipe, no buffer is popped on display.
> This messes up the buffer order when restoring a session
> with desktop mode on restart.
Messes up how?
And what do you expect from the buffer order when you restart a
session using desktop.el?
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:09 ` Eli Zaretskii
@ 2023-06-03 14:11 ` Jimmy Wong
2023-06-03 14:17 ` Eli Zaretskii
0 siblings, 1 reply; 17+ messages in thread
From: Jimmy Wong @ 2023-06-03 14:11 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 63871
[-- Attachment #1: Type: text/plain, Size: 1082 bytes --]
I expect the buffer orders in the buffer list to be restored when desktop mode restores a session, not have an async native compile log buffer inserted at the top so I can quickly switch to the second to last buffer I was working on before the restart.
On 3 Jun 2023 at 3:08 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
> > Date: Sat, 3 Jun 2023 14:54:22 +0100
> > From: Jimmy Wong <wyuenho@gmail.com>
> > Cc: 63871-done@debbugs.gnu.org
> >
> > The problem is not that it does something when it compiles, the problem is it should not have triggered
> > a compilation at all and pops up a buffer.
>
> ??? Why? Loading a package could legitimately load other packages.
> Emacs worked like that since about forever. What is special in this
> particular case?
>
> And what do you mean by "pops up a buffer"? When I reproduce your
> recipe, no buffer is popped on display.
>
> > This messes up the buffer order when restoring a session
> > with desktop mode on restart.
>
> Messes up how?
>
> And what do you expect from the buffer order when you restart a
> session using desktop.el?
[-- Attachment #2: Type: text/html, Size: 1638 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:11 ` Jimmy Wong
@ 2023-06-03 14:17 ` Eli Zaretskii
0 siblings, 0 replies; 17+ messages in thread
From: Eli Zaretskii @ 2023-06-03 14:17 UTC (permalink / raw)
To: Jimmy Wong; +Cc: 63871
> Date: Sat, 3 Jun 2023 15:11:05 +0100
> From: Jimmy Wong <wyuenho@gmail.com>
> Cc: 63871@debbugs.gnu.org
>
> I expect the buffer orders in the buffer list to be restored when desktop mode restores a session, not
> have an async native compile log buffer inserted at the top so I can quickly switch to the second to last
> buffer I was working on before the restart.
This expectation is incorrect. desktop.el doesn't (and cannot)
promise that no new buffers will be created as part of restoring the
session.
If this gets in the way of some of your workflows, you can easily
write some Lisp for your init file, which will bury this buffer.
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 13:51 ` Eli Zaretskii
2023-06-03 13:54 ` Jimmy Wong
@ 2023-06-03 14:02 ` Jimmy Wong
2023-06-03 14:11 ` Eli Zaretskii
2023-06-03 14:05 ` Jimmy Wong
2 siblings, 1 reply; 17+ messages in thread
From: Jimmy Wong @ 2023-06-03 14:02 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 63871-done
[-- Attachment #1: Type: text/plain, Size: 1707 bytes --]
The problem is this:
1. There’s no-native-compile:r set in the file, so a eln file was never produced.
2. nativecomp does not know which file should not be compiled until it opens the file
3. Whenever a require is encountered, nativecomp can’t find its eln, doesn’t know it can’t be compiled until it reads the file, and it can’t read the file until it unzips the file.
4. This unnecessary work is done every time any package requires one of these packages that cannot be compiled, again and again, generating an extra buffer that mess up the buffer orders in the buffer list.
On 3 Jun 2023 at 2:50 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
> > From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
> > Date: Sat, 03 Jun 2023 14:22:41 +0100
> >
> >
> > Reproduction:
> >
> > 1. emacs -q -nsl --eval="(require 'cl-lib)"
> > 2. C-x b TAB
> > 3. Select *Async-native-compile-log*
> > 4. The following is printed
> >
> > ```emacs-lisp
> > Compiling /opt/local/share/emacs/29.0.91/lisp/emacs-lisp/cl-loaddefs.el.gz...
> > uncompressing cl-loaddefs.el.gz...
> > uncompressing cl-loaddefs.el.gz...done
> > Compilation finished.
> > ```
> >
> > Expectation:
> >
> > This behavior is observed when any packages in ~/.emacs.d/elpa/
> > autoloads and require cl-lib, org or tramp as well.
> >
> > The simple act of requiring a built-in Emacs package should not trigger
> > a JIT native compilation on an Emacs installation built with
> > `--with-native-compilation=aot`.
>
> And it doesn't. cl-loaddefs has the "no-native-compile: t" thingy in
> the file-local variables, so the native-compilation does nothing.
>
> So I don't see any bug here, and I'm closing this bug.
[-- Attachment #2: Type: text/html, Size: 2258 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:02 ` Jimmy Wong
@ 2023-06-03 14:11 ` Eli Zaretskii
2023-06-03 14:15 ` Jimmy Wong
0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2023-06-03 14:11 UTC (permalink / raw)
To: Jimmy Wong; +Cc: 63871
> Date: Sat, 3 Jun 2023 15:02:18 +0100
> From: Jimmy Wong <wyuenho@gmail.com>
> Cc: 63871-done@debbugs.gnu.org
>
> The problem is this:
>
> 1 There’s no-native-compile:r set in the file, so a eln file was never produced.
> 2 nativecomp does not know which file should not be compiled until it opens the file
> 3 Whenever a require is encountered, nativecomp can’t find its eln, doesn’t know it can’t be compiled
> until it reads the file, and it can’t read the file until it unzips the file.
> 4 This unnecessary work is done every time any package requires one of these packages that
> cannot be compiled, again and again, generating an extra buffer that mess up the buffer orders in
> the buffer list.
Sorry, I don't see any problem. This is normal and expected behavior,
and one more buffer cannot possibly be a problem. Especially since
that buffer will be created soon enough anyway, once you load some
previously-uncompiled package.
I fail to understand why another buffer could be a problem.
I don't see any bug here.
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:11 ` Eli Zaretskii
@ 2023-06-03 14:15 ` Jimmy Wong
2023-06-03 14:25 ` Eli Zaretskii
0 siblings, 1 reply; 17+ messages in thread
From: Jimmy Wong @ 2023-06-03 14:15 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 63871
[-- Attachment #1: Type: text/plain, Size: 1475 bytes --]
Unless you’ve set package-native-compile to t so you’ll rarely see this buffer. Installing new packages is not a frequent operation in normal Emacs usage, and when a user installs a new package and loads it, he’ll expect that buffer, not when simply having a package that requires that a package.
On 3 Jun 2023 at 3:10 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
> > Date: Sat, 3 Jun 2023 15:02:18 +0100
> > From: Jimmy Wong <wyuenho@gmail.com>
> > Cc: 63871-done@debbugs.gnu.org
> >
> > The problem is this:
> >
> > 1 There’s no-native-compile:r set in the file, so a eln file was never produced.
> > 2 nativecomp does not know which file should not be compiled until it opens the file
> > 3 Whenever a require is encountered, nativecomp can’t find its eln, doesn’t know it can’t be compiled
> > until it reads the file, and it can’t read the file until it unzips the file.
> > 4 This unnecessary work is done every time any package requires one of these packages that
> > cannot be compiled, again and again, generating an extra buffer that mess up the buffer orders in
> > the buffer list.
>
> Sorry, I don't see any problem. This is normal and expected behavior,
> and one more buffer cannot possibly be a problem. Especially since
> that buffer will be created soon enough anyway, once you load some
> previously-uncompiled package.
>
> I fail to understand why another buffer could be a problem.
>
> I don't see any bug here.
[-- Attachment #2: Type: text/html, Size: 1964 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:15 ` Jimmy Wong
@ 2023-06-03 14:25 ` Eli Zaretskii
0 siblings, 0 replies; 17+ messages in thread
From: Eli Zaretskii @ 2023-06-03 14:25 UTC (permalink / raw)
To: Jimmy Wong; +Cc: 63871
> Date: Sat, 3 Jun 2023 15:15:05 +0100
> From: Jimmy Wong <wyuenho@gmail.com>
> Cc: 63871@debbugs.gnu.org
>
> Unless you’ve set package-native-compile to t so you’ll rarely see this buffer. Installing new packages
> is not a frequent operation in normal Emacs usage, and when a user installs a new package and loads
> it, he’ll expect that buffer, not when simply having a package that requires that a package.
I still don't see how it matters. Emacs generates such buffers in
many places, and it never is a or should be a problem.
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 13:51 ` Eli Zaretskii
2023-06-03 13:54 ` Jimmy Wong
2023-06-03 14:02 ` Jimmy Wong
@ 2023-06-03 14:05 ` Jimmy Wong
2023-06-03 14:14 ` Eli Zaretskii
2 siblings, 1 reply; 17+ messages in thread
From: Jimmy Wong @ 2023-06-03 14:05 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 63871-done
[-- Attachment #1: Type: text/plain, Size: 1333 bytes --]
When there’s a package or a file that should not be natively compiled, there should be a global blacklist variable that controls that instead of relying on a file local variable in order to short circuit this behavior.
On 3 Jun 2023 at 2:50 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
> > From: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
> > Date: Sat, 03 Jun 2023 14:22:41 +0100
> >
> >
> > Reproduction:
> >
> > 1. emacs -q -nsl --eval="(require 'cl-lib)"
> > 2. C-x b TAB
> > 3. Select *Async-native-compile-log*
> > 4. The following is printed
> >
> > ```emacs-lisp
> > Compiling /opt/local/share/emacs/29.0.91/lisp/emacs-lisp/cl-loaddefs.el.gz...
> > uncompressing cl-loaddefs.el.gz...
> > uncompressing cl-loaddefs.el.gz...done
> > Compilation finished.
> > ```
> >
> > Expectation:
> >
> > This behavior is observed when any packages in ~/.emacs.d/elpa/
> > autoloads and require cl-lib, org or tramp as well.
> >
> > The simple act of requiring a built-in Emacs package should not trigger
> > a JIT native compilation on an Emacs installation built with
> > `--with-native-compilation=aot`.
>
> And it doesn't. cl-loaddefs has the "no-native-compile: t" thingy in
> the file-local variables, so the native-compilation does nothing.
>
> So I don't see any bug here, and I'm closing this bug.
[-- Attachment #2: Type: text/html, Size: 1836 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:05 ` Jimmy Wong
@ 2023-06-03 14:14 ` Eli Zaretskii
2023-06-03 14:17 ` Jimmy Wong
0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2023-06-03 14:14 UTC (permalink / raw)
To: Jimmy Wong; +Cc: 63871
> Date: Sat, 3 Jun 2023 15:05:06 +0100
> From: Jimmy Wong <wyuenho@gmail.com>
> Cc: 63871-done@debbugs.gnu.org
>
> When there’s a package or a file that should not be natively compiled, there should be a global
> blacklist variable that controls that instead of relying on a file local variable in order to short circuit this
> behavior.
We decided against that. (A blacklist would unnecessarily complicate
any changes in our decisions which file to compile and which not to
compile.) We think what we have now is perfectly fine. I still don't
understand why you see a problem there. It's perhaps unexpected, but
that's all. It's a buffer users normally don't need to look into.
The alternatives are worse, sometimes much worse.
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:14 ` Eli Zaretskii
@ 2023-06-03 14:17 ` Jimmy Wong
2023-06-03 14:26 ` Eli Zaretskii
0 siblings, 1 reply; 17+ messages in thread
From: Jimmy Wong @ 2023-06-03 14:17 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 63871
[-- Attachment #1: Type: text/plain, Size: 973 bytes --]
I’m not entirely sure why but fine. How do I configure Emacs in such a way that whenever this buffer is created, it is buried?
On 3 Jun 2023 at 3:13 PM +0100, Eli Zaretskii <eliz@gnu.org>, wrote:
> > Date: Sat, 3 Jun 2023 15:05:06 +0100
> > From: Jimmy Wong <wyuenho@gmail.com>
> > Cc: 63871-done@debbugs.gnu.org
> >
> > When there’s a package or a file that should not be natively compiled, there should be a global
> > blacklist variable that controls that instead of relying on a file local variable in order to short circuit this
> > behavior.
>
> We decided against that. (A blacklist would unnecessarily complicate
> any changes in our decisions which file to compile and which not to
> compile.) We think what we have now is perfectly fine. I still don't
> understand why you see a problem there. It's perhaps unexpected, but
> that's all. It's a buffer users normally don't need to look into.
> The alternatives are worse, sometimes much worse.
[-- Attachment #2: Type: text/html, Size: 1439 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require
2023-06-03 14:17 ` Jimmy Wong
@ 2023-06-03 14:26 ` Eli Zaretskii
2023-06-03 14:50 ` Jimmy Wong
0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2023-06-03 14:26 UTC (permalink / raw)
To: Jimmy Wong; +Cc: 63871
> Date: Sat, 3 Jun 2023 15:17:22 +0100
> From: Jimmy Wong <wyuenho@gmail.com>
> Cc: 63871@debbugs.gnu.org
>
> I’m not entirely sure why but fine. How do I configure Emacs in such a way that whenever this buffer is
> created, it is buried?
Add a call to bury-buffer to the end of your init file.
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2023-06-03 15:11 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-03 13:22 bug#63871: 29.0.91; JIT native comp triggered to compile loaddefs repeatedly on require Jimmy Yuen Ho Wong
2023-06-03 13:51 ` Eli Zaretskii
2023-06-03 13:54 ` Jimmy Wong
2023-06-03 14:09 ` Eli Zaretskii
2023-06-03 14:11 ` Jimmy Wong
2023-06-03 14:17 ` Eli Zaretskii
2023-06-03 14:02 ` Jimmy Wong
2023-06-03 14:11 ` Eli Zaretskii
2023-06-03 14:15 ` Jimmy Wong
2023-06-03 14:25 ` Eli Zaretskii
2023-06-03 14:05 ` Jimmy Wong
2023-06-03 14:14 ` Eli Zaretskii
2023-06-03 14:17 ` Jimmy Wong
2023-06-03 14:26 ` Eli Zaretskii
2023-06-03 14:50 ` Jimmy Wong
2023-06-03 15:05 ` Eli Zaretskii
2023-06-03 15:11 ` Jimmy Wong
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.