* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup @ 2023-07-18 14:47 Stephen Molitor via Bug reports for GNU Emacs, the Swiss army knife of text editors 2023-07-18 16:34 ` Eli Zaretskii 0 siblings, 1 reply; 18+ messages in thread From: Stephen Molitor via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-07-18 14:47 UTC (permalink / raw) To: 64712 Y I see this message in the *Messages* buffer every time I start Emacs: Compiling /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/emacs-lisp/cl-loaddefs.el.gz... uncompressing cl-loaddefs.el.gz... uncompressing cl-loaddefs.el.gz...done Compilation finished. I'm using 29.0.2 on MacOS but I've seen the same behavior with prior releases. I'm using native compilation. In GNU Emacs 29.0.92 (build 1, aarch64-apple-darwin21.6.0, NS appkit-2113.60 Version 12.6 (Build 21G115)) of 2023-07-17 built on Stephens-MacBook-Pro.local Repository revision: d2548191f116e3ebdf644c3dd281d6e925f51bcf Repository branch: master Windowing system distributor 'Apple', version 10.3.2113 System Description: macOS 12.6 Configured using: 'configure --with-ns --with-modules '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp:/usr/local/share/emacs/site-lisp' --with-xwidgets --with-tree-sitter --with-native-compilation=aot 'CFLAGS=-I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include -O2' 'LDFLAGS=-L/opt/homebrew/opt/gcc/lib/gcc/13 -L/opt/homebrew/opt/gcc/lib/gcc/13/gcc/aarch64-apple-darwin21/13 -L/opt/homebrew/opt/libgccjit/lib/gcc/13 -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include -Wl,-headerpad_max_install_names'' Configured features: ACL DBUS 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 XIM XWIDGETS ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/d Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t auto-revert-mode: t smartparens-global-mode: t smartparens-mode: t robby-spinner-mode: t lispy-mode: t shell-dirtrack-mode: t outline-minor-mode: t display-line-numbers-mode: t yas-global-mode: t yas-minor-mode: t rainbow-delimiters-mode: t corfu-popupinfo-mode: t all-the-icons-completion-mode: t marginalia-mode: t global-corfu-mode: t corfu-mode: t vertico-mode: t global-ligature-mode: t ligature-mode: t which-key-mode: t git-gutter-mode: t delete-selection-mode: t repeat-mode: t pixel-scroll-precision-mode: t recentf-mode: t server-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t straight-live-modifications-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t prettify-symbols-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t line-number-mode: t global-visual-line-mode: t visual-line-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: ~/.emacs.d/straight/repos/combobulate/combobulate-html hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-html ~/.emacs.d/straight/repos/combobulate/combobulate-rules hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-rules ~/.emacs.d/straight/repos/combobulate/combobulate-yaml hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-yaml ~/.emacs.d/straight/repos/combobulate/combobulate-css hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-css ~/.emacs.d/straight/repos/combobulate/combobulate-python hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-python ~/.emacs.d/straight/repos/combobulate/combobulate-display hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-display ~/.emacs.d/straight/repos/combobulate/combobulate-manipulation hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-manipulation ~/.emacs.d/straight/repos/combobulate/combobulate-ui hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-ui ~/.emacs.d/straight/repos/combobulate/combobulate-debug-query hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-debug-query ~/.emacs.d/straight/repos/combobulate/combobulate-debug hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-debug ~/.emacs.d/straight/repos/combobulate/combobulate-misc hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-misc ~/.emacs.d/straight/repos/combobulate/combobulate-contrib hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-contrib ~/.emacs.d/straight/repos/combobulate/combobulate-js-ts hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-js-ts ~/.emacs.d/straight/repos/combobulate/combobulate-navigation hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-navigation ~/.emacs.d/straight/repos/combobulate/combobulate-ztree hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-ztree ~/.emacs.d/straight/repos/combobulate/combobulate-envelope hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-envelope ~/.emacs.d/straight/repos/combobulate/combobulate-interface hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-interface ~/.emacs.d/straight/repos/combobulate/combobulate hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate ~/.emacs.d/straight/repos/combobulate/combobulate-settings hides /Users/stephenmolitor/.emacs.d/straight/build/combobulate/combobulate-settings /Users/stephenmolitor/.emacs.d/straight/build/ivy/elpa hides /Users/stephenmolitor/.emacs.d/straight/build/lispy/elpa /Users/stephenmolitor/.emacs.d/straight/build/org-yt/org-yt hides ~/.emacs.d/elisp/org-yt /Users/stephenmolitor/.emacs.d/straight/build/ox-slack/ox-slack hides ~/.emacs.d/elisp/ox-slack /Users/stephenmolitor/.emacs.d/straight/build/transient/transient hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/transient /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package-jump hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package-jump /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package-ensure hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package-ensure /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package-core hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package-core /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package-delight hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package-delight /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package-diminish hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package-diminish /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package-bind-key hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package-bind-key /Users/stephenmolitor/.emacs.d/straight/build/bind-key/bind-key hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/bind-key /Users/stephenmolitor/.emacs.d/straight/build/use-package/use-package-lint hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/use-package/use-package-lint /Users/stephenmolitor/.emacs.d/straight/build/let-alist/let-alist hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/emacs-lisp/let-alist /Users/stephenmolitor/.emacs.d/straight/build/map/map hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/emacs-lisp/map /Users/stephenmolitor/.emacs.d/straight/build/eldoc/eldoc hides /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/emacs-lisp/eldoc Features: (shadow sort mail-extr emacsbug loaddefs-gen cl-print dabbrev olivetti org-appear org-bullets org-indent oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader range ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi goto-addr tabify vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view bug-reference flyspell ispell magit-extras face-remap 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 which-func magit-diff smerge-mode git-commit log-edit message sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process with-editor magit-mode magit-git magit-base magit-section cursor-sensor crm tog smartparens-config smartparens-javascript smartparens-org smartparens-markdown smartparens-text smartparens-clojure smartparens-c smartparens loadhist epa-file epa epg rfc6068 epg-config custom-robby-commands robby robby-spinner-mode robby-keymap robby-commands robby-define-command robby-transients robby-view markdown-mode robby-run-command robby-spinner robby-save-commands robby-options robby-curl robby-logging robby-api-key robby-apis robby-history robby-prompts robby-customization robby-actions robby-utils diff cus-edit cus-start cus-load shortdoc transient consult-xref org-yt ox-gfm consult-imenu lispy le-clojure lispy-inline etags fileloop edebug debug backtrace help-fns radix-tree lispy-tags mode-local zoutline org-bullets-autoloads ob-shell ob-C ob-go ob-typescript typescript-ts-mode js c-ts-common cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs treesit ob-js cider tramp-sh cider-debug cider-browse-ns cider-mode cider-find cider-inspector cider-completion cider-profile cider-eval cider-jar arc-mode archive-mode cider-repl-history pulse cider-repl cider-resolve cider-test cider-overlays cider-stacktrace cider-doc cider-browse-spec cider-clojuredocs cider-eldoc cider-client cider-common xref cider-connection cider-util color cider-popup sesman-browser nrepl-client tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell parse-time iso8601 queue nrepl-dict spinner sesman vc clojure-mode lisp-mnt align thingatpt imenu parseedn parseclj-parser parseclj-lex parseclj-alist ob-clojure ox-md ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist xdg org-id org-refile avl-tree generator sm-org-fast-tag-selection ob-dot 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 format-spec noutline outline display-line-numbers yasnippet-snippets yasnippet rainbow-delimiters vertico-directory time-date cap-words superword subword slack-handle-completion parse-csv parse-csv-autoloads cl project vc-git diff-mode vc-dispatcher consult-flycheck flycheck advice find-func dash consult bookmark pp ace-window corfu-popupinfo sm-combobulate combobulate-autoloads sm-expand-region expand-region-autoloads sm-ai robby-autoloads gptel gptel-autoloads request-autoloads ert-async-autoloads chatgpt-shell-autoloads shell-maker-autoloads sm-mermaid mermaid-mode-autoloads sm-spell flyspell-correct-autoloads sm-vertico all-the-icons-completion all-the-icons-completion-autoloads kind-icon-autoloads svg-lib-autoloads wgrep-autoloads embark-consult-autoloads embark-autoloads marginalia marginalia-autoloads corfu corfu-autoloads consult-lsp-autoloads consult-flyspell-autoloads consult-ls-git-autoloads consult-autoloads orderless orderless-autoloads vertico compat vertico-autoloads structurizr-mode derived sm-simple-modeline sm-lorem lorem-ipsum-autoloads sm-ligature ligature ligature-autoloads sm-dap dap-mode-autoloads lsp-docker-autoloads bui-autoloads sm-sql sm-python lsp-pyright-autoloads sm-css sm-tree-sitter sm-imenu imenu-list-autoloads sm-org org-appear-autoloads org-pomodoro-autoloads alert-autoloads log4e-autoloads gntp-autoloads ox-slack-autoloads ox-gfm-autoloads ob-go-autoloads org-yt-autoloads olivetti-autoloads sm-clojure cider-autoloads sesman-autoloads queue-autoloads parseedn-autoloads map-autoloads parseclj-autoloads clojure-mode-autoloads sm-rainbow-delimiters rainbow-delimiters-autoloads sm-lispy lispy-autoloads zoutline-autoloads swiper-autoloads ivy-autoloads iedit-autoloads sm-cursors multiple-cursors-autoloads sm-terminal vterm-autoloads sm-go go-mode-autoloads sm-lsp lsp-ui-autoloads lsp-treemacs-autoloads lsp-mode-autoloads eldoc-autoloads spinner-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads pfuture-autoloads f-autoloads sm-scss scss-mode-autoloads sm-ts add-node-modules-path-autoloads s-autoloads sm-runners sm-smartparens smartparens-autoloads sm-little-modes titlecase-autoloads yaml-mode-autoloads graphviz-dot-mode-autoloads sm-keybindings which-key which-key-autoloads sm-files sm-functions pcase sm-compilation compile text-property-search comint ansi-osc ansi-color sm-vc code-review-autoloads emojify-autoloads ht-autoloads forge-autoloads yaml-autoloads markdown-mode-autoloads deferred-autoloads uuidgen-autoloads ghub-autoloads treepy-autoloads a-autoloads closql-autoloads emacsql-autoloads git-gutter-fringe fringe-helper git-gutter git-gutter-fringe-autoloads fringe-helper-autoloads git-gutter-autoloads git-link-autoloads hydra-side-window hydra lv magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads compat-autoloads sm-ace ace-link ace-link-autoloads ace-window-autoloads sm-avy avy avy-autoloads sm-flycheck flycheck-autoloads let-alist-autoloads pkg-info-autoloads epl-autoloads sm-buffers sm-all-the-icons all-the-icons-dired-autoloads all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons all-the-icons-autoloads sm-snippets yasnippet-snippets-autoloads yasnippet-autoloads sm-prettier prettier-js-autoloads sm-theme ef-winter-theme ef-tritanopia-dark-theme ef-trio-dark-theme ef-symbiosis-theme ef-night-theme ef-elea-dark-theme ef-duo-dark-theme ef-deuteranopia-dark-theme ef-dark-theme ef-cherie-theme ef-bio-theme ef-autumn-theme ef-tritanopia-light-theme ef-trio-light-theme ef-summer-theme ef-spring-theme ef-light-theme ef-kassio-theme ef-frost-theme ef-elea-light-theme ef-duo-light-theme ef-deuteranopia-light-theme ef-day-theme ef-cyprus-theme ef-themes ef-themes-autoloads sm-dired edmacro kmacro dired-narrow-autoloads dired-hacks-utils-autoloads dash-autoloads sm-hydra hydra-autoloads lv-autoloads finder-inf sm-auth sm-slack-handles sm-settings delsel repeat pixel-scroll cua-base ring recentf tree-widget wid-edit comp comp-cstr warnings icons rx server 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 use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core use-package-autoloads info bind-key-autoloads straight-autoloads cl-seq cl-extra help-mode straight subr-x cl-macs gv cl-loaddefs cl-lib bytecomp byte-compile 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 dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 1197048 800507) (symbols 48 52543 83) (strings 32 218900 108491) (string-bytes 1 9028889) (vectors 16 109172) (vector-slots 8 2725875 1201257) (floats 8 1503 3510) (intervals 56 16779 8476) (buffers 984 36)) ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-18 14:47 bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup Stephen Molitor via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-07-18 16:34 ` Eli Zaretskii 2023-07-27 1:50 ` Dmitry Gutov 0 siblings, 1 reply; 18+ messages in thread From: Eli Zaretskii @ 2023-07-18 16:34 UTC (permalink / raw) To: Stephen Molitor; +Cc: 64712 tags 64712 notabug thanks > Date: Tue, 18 Jul 2023 09:47:15 -0500 > From: Stephen Molitor via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> > > Y > I see this message in the *Messages* buffer every time I start Emacs: > > Compiling /Users/stephenmolitor/repos/build-emacs-for-macos/builds/Emacs.2023-06-18.a24e9e3.master.macOS-12.arm64/Emacs.app/Contents/Resources/lisp/emacs-lisp/cl-loaddefs.el.gz... > uncompressing cl-loaddefs.el.gz... > uncompressing cl-loaddefs.el.gz...done > Compilation finished. This is normal: cl-loaddefs.el has no-byte-compile:t , so the async compilation does nothing. This is harmless, and not a bug. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-18 16:34 ` Eli Zaretskii @ 2023-07-27 1:50 ` Dmitry Gutov 2023-07-27 5:43 ` Eli Zaretskii 0 siblings, 1 reply; 18+ messages in thread From: Dmitry Gutov @ 2023-07-27 1:50 UTC (permalink / raw) To: Eli Zaretskii, Stephen Molitor; +Cc: 64712 On 18/07/2023 19:34, Eli Zaretskii wrote: > This is normal: cl-loaddefs.el has no-byte-compile:t , so the async > compilation does nothing. > > This is harmless, and not a bug. Reading the file, extracting it from an archive, to ultimately do nothing, seems unfortunate. I'm guessing it can add a certain latency to Emacs's startup. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 1:50 ` Dmitry Gutov @ 2023-07-27 5:43 ` Eli Zaretskii 2023-07-27 9:03 ` Andrea Corallo 0 siblings, 1 reply; 18+ messages in thread From: Eli Zaretskii @ 2023-07-27 5:43 UTC (permalink / raw) To: Dmitry Gutov; +Cc: stephen.molitor, 64712 > Date: Thu, 27 Jul 2023 04:50:21 +0300 > Cc: 64712@debbugs.gnu.org > From: Dmitry Gutov <dmitry@gutov.dev> > > On 18/07/2023 19:34, Eli Zaretskii wrote: > > This is normal: cl-loaddefs.el has no-byte-compile:t , so the async > > compilation does nothing. > > > > This is harmless, and not a bug. > > Reading the file, extracting it from an archive, to ultimately do > nothing, seems unfortunate. I'm guessing it can add a certain latency to > Emacs's startup. What do you suggest we do instead? Emacs cannot know a file should not be compiled without reading its contents first. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 5:43 ` Eli Zaretskii @ 2023-07-27 9:03 ` Andrea Corallo 2023-07-27 9:17 ` Eli Zaretskii 2023-07-27 13:36 ` Dmitry Gutov 0 siblings, 2 replies; 18+ messages in thread From: Andrea Corallo @ 2023-07-27 9:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Dmitry Gutov, stephen.molitor, 64712 Eli Zaretskii <eliz@gnu.org> writes: >> Date: Thu, 27 Jul 2023 04:50:21 +0300 >> Cc: 64712@debbugs.gnu.org >> From: Dmitry Gutov <dmitry@gutov.dev> >> >> On 18/07/2023 19:34, Eli Zaretskii wrote: >> > This is normal: cl-loaddefs.el has no-byte-compile:t , so the async >> > compilation does nothing. >> > >> > This is harmless, and not a bug. >> >> Reading the file, extracting it from an archive, to ultimately do >> nothing, seems unfortunate. I'm guessing it can add a certain latency to >> Emacs's startup. > > What do you suggest we do instead? Emacs cannot know a file should > not be compiled without reading its contents first. If we add cl-loaddefs.el to `native-comp-jit-compilation-deny-list' we should just not even attempt compiling it. Dunno if it's considered an acceptable fix, in case I can push it so it can get tested. Best Regards Andrea ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 9:03 ` Andrea Corallo @ 2023-07-27 9:17 ` Eli Zaretskii 2023-07-27 9:56 ` Andrea Corallo 2023-07-27 13:36 ` Dmitry Gutov 1 sibling, 1 reply; 18+ messages in thread From: Eli Zaretskii @ 2023-07-27 9:17 UTC (permalink / raw) To: Andrea Corallo; +Cc: dmitry, stephen.molitor, 64712 > From: Andrea Corallo <acorallo@gnu.org> > Cc: Dmitry Gutov <dmitry@gutov.dev>, stephen.molitor@icloud.com, > 64712@debbugs.gnu.org > Date: Thu, 27 Jul 2023 05:03:32 -0400 > > Eli Zaretskii <eliz@gnu.org> writes: > > > What do you suggest we do instead? Emacs cannot know a file should > > not be compiled without reading its contents first. > > If we add cl-loaddefs.el to `native-comp-jit-compilation-deny-list' we > should just not even attempt compiling it. > > Dunno if it's considered an acceptable fix, in case I can push it so it > can get tested. I'm not sure. This has a maintenance costs, since the specification is separate from the affected file. If we ever decide to compile cl-loaddefs, someone might be in for a ride... ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 9:17 ` Eli Zaretskii @ 2023-07-27 9:56 ` Andrea Corallo 0 siblings, 0 replies; 18+ messages in thread From: Andrea Corallo @ 2023-07-27 9:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: dmitry, stephen.molitor, 64712 Eli Zaretskii <eliz@gnu.org> writes: >> From: Andrea Corallo <acorallo@gnu.org> >> Cc: Dmitry Gutov <dmitry@gutov.dev>, stephen.molitor@icloud.com, >> 64712@debbugs.gnu.org >> Date: Thu, 27 Jul 2023 05:03:32 -0400 >> >> Eli Zaretskii <eliz@gnu.org> writes: >> >> > What do you suggest we do instead? Emacs cannot know a file should >> > not be compiled without reading its contents first. >> >> If we add cl-loaddefs.el to `native-comp-jit-compilation-deny-list' we >> should just not even attempt compiling it. >> >> Dunno if it's considered an acceptable fix, in case I can push it so it >> can get tested. > > I'm not sure. This has a maintenance costs, since the specification > is separate from the affected file. If we ever decide to compile > cl-loaddefs, someone might be in for a ride... Yep totally agree, the only way I can think of in order to mitigate this would be adding a comment in cl-loaddefs.el close to the no-native-compile: t cookie. Andrea ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 9:03 ` Andrea Corallo 2023-07-27 9:17 ` Eli Zaretskii @ 2023-07-27 13:36 ` Dmitry Gutov 2023-07-27 13:52 ` Eli Zaretskii 1 sibling, 1 reply; 18+ messages in thread From: Dmitry Gutov @ 2023-07-27 13:36 UTC (permalink / raw) To: Andrea Corallo, Eli Zaretskii; +Cc: stephen.molitor, 64712 On 27/07/2023 12:03, Andrea Corallo wrote: > If we add cl-loaddefs.el to `native-comp-jit-compilation-deny-list' we > should just not even attempt compiling it. > > Dunno if it's considered an acceptable fix, in case I can push it so it > can get tested. I suppose another approach would be along the lines of creating, for every such file, an artefact in native-compile cache anyway, with contents which would load the original uncompiled file (I'm assuming this step won't require extracting the file?). Not sure if this is worth the hassle, though. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 13:36 ` Dmitry Gutov @ 2023-07-27 13:52 ` Eli Zaretskii 2023-07-27 16:12 ` Andrea Corallo 0 siblings, 1 reply; 18+ messages in thread From: Eli Zaretskii @ 2023-07-27 13:52 UTC (permalink / raw) To: Dmitry Gutov; +Cc: acorallo, stephen.molitor, 64712 > Date: Thu, 27 Jul 2023 16:36:18 +0300 > Cc: stephen.molitor@icloud.com, 64712@debbugs.gnu.org > From: Dmitry Gutov <dmitry@gutov.dev> > > I suppose another approach would be along the lines of creating, for > every such file, an artefact in native-compile cache anyway, with > contents which would load the original uncompiled file (I'm assuming > this step won't require extracting the file?). > > Not sure if this is worth the hassle, though. It definitely isn't. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 13:52 ` Eli Zaretskii @ 2023-07-27 16:12 ` Andrea Corallo 2023-07-27 16:25 ` Eli Zaretskii 2023-09-02 21:50 ` Stefan Kangas 0 siblings, 2 replies; 18+ messages in thread From: Andrea Corallo @ 2023-07-27 16:12 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Dmitry Gutov, stephen.molitor, 64712 Eli Zaretskii <eliz@gnu.org> writes: >> Date: Thu, 27 Jul 2023 16:36:18 +0300 >> Cc: stephen.molitor@icloud.com, 64712@debbugs.gnu.org >> From: Dmitry Gutov <dmitry@gutov.dev> >> >> I suppose another approach would be along the lines of creating, for >> every such file, an artefact in native-compile cache anyway, with >> contents which would load the original uncompiled file (I'm assuming >> this step won't require extracting the file?). >> >> Not sure if this is worth the hassle, though. > > It definitely isn't. The closest solution to what Dmitry suggested is to actually remove the cookie from the file so the eln is produced and we don't try to compile it anymore. It doesn't harm, again not the most elegant exit strategy but at least is for free :) Andrea ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 16:12 ` Andrea Corallo @ 2023-07-27 16:25 ` Eli Zaretskii 2023-09-02 21:50 ` Stefan Kangas 1 sibling, 0 replies; 18+ messages in thread From: Eli Zaretskii @ 2023-07-27 16:25 UTC (permalink / raw) To: Andrea Corallo; +Cc: dmitry, stephen.molitor, 64712 > From: Andrea Corallo <acorallo@gnu.org> > Cc: Dmitry Gutov <dmitry@gutov.dev>, stephen.molitor@icloud.com, > 64712@debbugs.gnu.org > Date: Thu, 27 Jul 2023 12:12:47 -0400 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> Date: Thu, 27 Jul 2023 16:36:18 +0300 > >> Cc: stephen.molitor@icloud.com, 64712@debbugs.gnu.org > >> From: Dmitry Gutov <dmitry@gutov.dev> > >> > >> I suppose another approach would be along the lines of creating, for > >> every such file, an artefact in native-compile cache anyway, with > >> contents which would load the original uncompiled file (I'm assuming > >> this step won't require extracting the file?). > >> > >> Not sure if this is worth the hassle, though. > > > > It definitely isn't. > > The closest solution to what Dmitry suggested is to actually remove the > cookie from the file so the eln is produced and we don't try to compile > it anymore. It doesn't harm, again not the most elegant exit strategy > but at least is for free :) If we ever do consider this worth "fixing", yes. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-07-27 16:12 ` Andrea Corallo 2023-07-27 16:25 ` Eli Zaretskii @ 2023-09-02 21:50 ` Stefan Kangas 2023-09-03 5:15 ` Eli Zaretskii 1 sibling, 1 reply; 18+ messages in thread From: Stefan Kangas @ 2023-09-02 21:50 UTC (permalink / raw) To: Andrea Corallo, Eli Zaretskii; +Cc: Dmitry Gutov, stephen.molitor, 64712 Andrea Corallo <acorallo@gnu.org> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >>> Date: Thu, 27 Jul 2023 16:36:18 +0300 >>> Cc: stephen.molitor@icloud.com, 64712@debbugs.gnu.org >>> From: Dmitry Gutov <dmitry@gutov.dev> >>> >>> I suppose another approach would be along the lines of creating, for >>> every such file, an artefact in native-compile cache anyway, with >>> contents which would load the original uncompiled file (I'm assuming >>> this step won't require extracting the file?). >>> >>> Not sure if this is worth the hassle, though. >> >> It definitely isn't. > > The closest solution to what Dmitry suggested is to actually remove the > cookie from the file so the eln is produced and we don't try to compile > it anymore. It doesn't harm, again not the most elegant exit strategy > but at least is for free :) What was the reason that those cookies were added in the first place? I see that they were added in commit 6c11214dc112, but it doesn't explain why. I personally can't see that it would make much of a difference if we have them or not, but maybe I'm missing something. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-09-02 21:50 ` Stefan Kangas @ 2023-09-03 5:15 ` Eli Zaretskii 2023-09-05 23:11 ` Stefan Kangas 2023-09-06 12:26 ` Dmitry Gutov 0 siblings, 2 replies; 18+ messages in thread From: Eli Zaretskii @ 2023-09-03 5:15 UTC (permalink / raw) To: Stefan Kangas; +Cc: dmitry, acorallo, stephen.molitor, 64712 > From: Stefan Kangas <stefankangas@gmail.com> > Date: Sat, 2 Sep 2023 14:50:08 -0700 > Cc: Dmitry Gutov <dmitry@gutov.dev>, stephen.molitor@icloud.com, 64712@debbugs.gnu.org > > Andrea Corallo <acorallo@gnu.org> writes: > > > Eli Zaretskii <eliz@gnu.org> writes: > > > >>> Date: Thu, 27 Jul 2023 16:36:18 +0300 > >>> Cc: stephen.molitor@icloud.com, 64712@debbugs.gnu.org > >>> From: Dmitry Gutov <dmitry@gutov.dev> > >>> > >>> I suppose another approach would be along the lines of creating, for > >>> every such file, an artefact in native-compile cache anyway, with > >>> contents which would load the original uncompiled file (I'm assuming > >>> this step won't require extracting the file?). > >>> > >>> Not sure if this is worth the hassle, though. > >> > >> It definitely isn't. > > > > The closest solution to what Dmitry suggested is to actually remove the > > cookie from the file so the eln is produced and we don't try to compile > > it anymore. It doesn't harm, again not the most elegant exit strategy > > but at least is for free :) > > What was the reason that those cookies were added in the first place? Not to slow down the build unnecessarily, I think. Basically, the same reason why we have "no-byte-compile: t" in some files: you get no gains from doing that, you just waste CPU time. And the waste is much more significant with native compilation. > I see that they were added in commit 6c11214dc112, but it doesn't > explain why. When that happens, I always search the mailing lists around the date of the commit. In this case, I found https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00168.html > I personally can't see that it would make much of a difference if we > have them or not, but maybe I'm missing something. If nothing else, it will slow down startup (because each .eln files needs to be loaded via dlopen, as opposed to .elc that is dumped into the pdumper file), albeit insignificantly. But if we do this with all the autoload files we have, that could slow down in a more tangible ways. So basically we have here two minor annoyances: you can solve one, but then you "gain" the other one. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-09-03 5:15 ` Eli Zaretskii @ 2023-09-05 23:11 ` Stefan Kangas 2023-09-06 11:29 ` Eli Zaretskii 2023-09-06 12:26 ` Dmitry Gutov 1 sibling, 1 reply; 18+ messages in thread From: Stefan Kangas @ 2023-09-05 23:11 UTC (permalink / raw) To: Eli Zaretskii; +Cc: dmitry, acorallo, stephen.molitor, 64712 Eli Zaretskii <eliz@gnu.org> writes: > Not to slow down the build unnecessarily, I think. Basically, the > same reason why we have "no-byte-compile: t" in some files: you get no > gains from doing that, you just waste CPU time. And the waste is much > more significant with native compilation. > >> I see that they were added in commit 6c11214dc112, but it doesn't >> explain why. > > When that happens, I always search the mailing lists around the date > of the commit. In this case, I found > > https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00168.html > >> I personally can't see that it would make much of a difference if we >> have them or not, but maybe I'm missing something. > > If nothing else, it will slow down startup (because each .eln files > needs to be loaded via dlopen, as opposed to .elc that is dumped into > the pdumper file), albeit insignificantly. But if we do this with all > the autoload files we have, that could slow down in a more tangible > ways. So basically we have here two minor annoyances: you can solve > one, but then you "gain" the other one. Right. So perhaps we should just live with it, and close this as wontfix. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-09-05 23:11 ` Stefan Kangas @ 2023-09-06 11:29 ` Eli Zaretskii 2023-09-06 12:09 ` Stefan Kangas 0 siblings, 1 reply; 18+ messages in thread From: Eli Zaretskii @ 2023-09-06 11:29 UTC (permalink / raw) To: Stefan Kangas; +Cc: dmitry, acorallo, stephen.molitor, 64712 > From: Stefan Kangas <stefankangas@gmail.com> > Date: Tue, 5 Sep 2023 16:11:16 -0700 > Cc: acorallo@gnu.org, dmitry@gutov.dev, stephen.molitor@icloud.com, > 64712@debbugs.gnu.org > > Eli Zaretskii <eliz@gnu.org> writes: > > > Not to slow down the build unnecessarily, I think. Basically, the > > same reason why we have "no-byte-compile: t" in some files: you get no > > gains from doing that, you just waste CPU time. And the waste is much > > more significant with native compilation. > > > >> I see that they were added in commit 6c11214dc112, but it doesn't > >> explain why. > > > > When that happens, I always search the mailing lists around the date > > of the commit. In this case, I found > > > > https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00168.html > > > >> I personally can't see that it would make much of a difference if we > >> have them or not, but maybe I'm missing something. > > > > If nothing else, it will slow down startup (because each .eln files > > needs to be loaded via dlopen, as opposed to .elc that is dumped into > > the pdumper file), albeit insignificantly. But if we do this with all > > the autoload files we have, that could slow down in a more tangible > > ways. So basically we have here two minor annoyances: you can solve > > one, but then you "gain" the other one. > > Right. So perhaps we should just live with it, and close this as > wontfix. That would be my preference, given that we don't see any significantly better alternative. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-09-06 11:29 ` Eli Zaretskii @ 2023-09-06 12:09 ` Stefan Kangas 0 siblings, 0 replies; 18+ messages in thread From: Stefan Kangas @ 2023-09-06 12:09 UTC (permalink / raw) To: Eli Zaretskii; +Cc: dmitry, acorallo, stephen.molitor, 64712 tags 64712 + wontfix close 64712 thanks Eli Zaretskii <eliz@gnu.org> writes: >> Right. So perhaps we should just live with it, and close this as >> wontfix. > > That would be my preference, given that we don't see any significantly > better alternative. Done. ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-09-03 5:15 ` Eli Zaretskii 2023-09-05 23:11 ` Stefan Kangas @ 2023-09-06 12:26 ` Dmitry Gutov 2023-09-06 13:03 ` Eli Zaretskii 1 sibling, 1 reply; 18+ messages in thread From: Dmitry Gutov @ 2023-09-06 12:26 UTC (permalink / raw) To: Eli Zaretskii, Stefan Kangas; +Cc: acorallo, stephen.molitor, 64712 On 03/09/2023 08:15, Eli Zaretskii wrote: >> I personally can't see that it would make much of a difference if we >> have them or not, but maybe I'm missing something. > If nothing else, it will slow down startup (because each .eln files > needs to be loaded via dlopen, as opposed to .elc that is dumped into > the pdumper file), albeit insignificantly. But if we do this with all > the autoload files we have, that could slow down in a more tangible > ways. So basically we have here two minor annoyances: you can solve > one, but then you "gain" the other one. So you suppose - Findinb .eln in its load path - dlopen-ing it can be slower than - Looking for .eln in its load path, not finding it - Extracting cl-loaddefs.el from cl-loaddefs.el.gz - Loading it ? ^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup 2023-09-06 12:26 ` Dmitry Gutov @ 2023-09-06 13:03 ` Eli Zaretskii 0 siblings, 0 replies; 18+ messages in thread From: Eli Zaretskii @ 2023-09-06 13:03 UTC (permalink / raw) To: Dmitry Gutov; +Cc: acorallo, stephen.molitor, stefankangas, 64712 > Date: Wed, 6 Sep 2023 15:26:20 +0300 > Cc: acorallo@gnu.org, stephen.molitor@icloud.com, 64712@debbugs.gnu.org > From: Dmitry Gutov <dmitry@gutov.dev> > > On 03/09/2023 08:15, Eli Zaretskii wrote: > >> I personally can't see that it would make much of a difference if we > >> have them or not, but maybe I'm missing something. > > If nothing else, it will slow down startup (because each .eln files > > needs to be loaded via dlopen, as opposed to .elc that is dumped into > > the pdumper file), albeit insignificantly. But if we do this with all > > the autoload files we have, that could slow down in a more tangible > > ways. So basically we have here two minor annoyances: you can solve > > one, but then you "gain" the other one. > > So you suppose > > - Findinb .eln in its load path > - dlopen-ing it > > can be slower than > > - Looking for .eln in its load path, not finding it > - Extracting cl-loaddefs.el from cl-loaddefs.el.gz > - Loading it > > ? No. But that's not what happens. What does happen in the second case is that we load the .elc file, and then, asynchronously and in a separate Emacs session, try to native-compile the .el file. So this: > - Looking for .eln in its load path, not finding it > - Extracting cl-loaddefs.el from cl-loaddefs.el.gz > - Loading it happens in parallel with the Emacs session running, not sequentially. And if the .elc file is in the pdumper file, we don't even load it, it's already loaded. ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2023-09-06 13:03 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-07-18 14:47 bug#64712: 29.0.92; Emacs 29 with native compilation compiles cl-loaddefs.el on every startup Stephen Molitor via Bug reports for GNU Emacs, the Swiss army knife of text editors 2023-07-18 16:34 ` Eli Zaretskii 2023-07-27 1:50 ` Dmitry Gutov 2023-07-27 5:43 ` Eli Zaretskii 2023-07-27 9:03 ` Andrea Corallo 2023-07-27 9:17 ` Eli Zaretskii 2023-07-27 9:56 ` Andrea Corallo 2023-07-27 13:36 ` Dmitry Gutov 2023-07-27 13:52 ` Eli Zaretskii 2023-07-27 16:12 ` Andrea Corallo 2023-07-27 16:25 ` Eli Zaretskii 2023-09-02 21:50 ` Stefan Kangas 2023-09-03 5:15 ` Eli Zaretskii 2023-09-05 23:11 ` Stefan Kangas 2023-09-06 11:29 ` Eli Zaretskii 2023-09-06 12:09 ` Stefan Kangas 2023-09-06 12:26 ` Dmitry Gutov 2023-09-06 13:03 ` Eli Zaretskii
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.