GNU bug report logs - #76586
30.1; Question regarding eln-cache

Previous Next

Package: emacs;

Reported by: Rahul Martim Juliato <rahuljuliato <at> gmail.com>

Date: Wed, 26 Feb 2025 13:57:02 UTC

Severity: normal

Found in version 30.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 76586 in the body.
You can then email your comments to 76586 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 13:57:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rahul Martim Juliato <rahuljuliato <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 26 Feb 2025 13:57:02 GMT) Full text and rfc822 format available.

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

From: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 10:55:36 -0300
This is not a bug, more of a question.

I noticed the addition of `comp-native-version-dir' and found it nice
to be there.

I currently have a workflow where I use the same (but not at the same
time) emacs config from a network folder for both macos (arm
architecture) and debian (x64).

In my config I manually set the name of the folders `eln-cache` to be
something like `eln-cache-machine1` and `eln-cache-machine2`.

Since 30.1 became released, the `comp-native-version-dir' is added to
organize the subfolder.

Does it create this magic number taking in consideration also the
machine architecture? If not, could we make
distinctions between architectures when creating the sub-folders?

If I use the same pre-compiled binaries, will this number be the same on
both machines?

I tried to collect some of this info on #emacs <at> Libera.Chat, confusion
was everywhere, we couldn't conclude anything. Could Emacs maintainers
provide us with a little bit more info or where to find it?

Thanks!




In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
 cairo version 1.16.0) of 2025-02-24 built on debian
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure --with-native-compilation=aot --with-tree-sitter --with-gif
 --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick
 --with-pgtk --with-mailutils'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB

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

Major mode: Dashboard

Minor modes in effect:
  emms-mode-line-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  diff-hl-margin-mode: t
  diff-hl-flydiff-mode: t
  global-diff-hl-mode: t
  treemacs-project-follow-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  recentf-mode: t
  which-key-mode: t
  global-treesit-auto-mode: t
  vertico-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  global-evil-matchit-mode: t
  evil-matchit-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  evil-mode: t
  evil-local-mode: t
  pulsar-global-mode: t
  pulsar-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  async-bytecomp-package-mode: t
  persp-mode-project-bridge-mode: t
  persp-mode: t
  global-ligature-mode: t
  ligature-mode: t
  nerd-icons-completion-mode: t
  marginalia-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  override-global-mode: t
  xterm-mouse-mode: t
  winner-mode: t
  savehist-mode: t
  save-place-mode: t
  pixel-scroll-precision-mode: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/rmj/.emacs.d/elpa/transient-20250222.1912/transient hides /usr/local/share/emacs/30.1/lisp/transient
/home/rmj/.emacs.d/elpa/modus-themes-20250220.647/theme-loaddefs hides /usr/local/share/emacs/30.1/lisp/theme-loaddefs

Features:
(shadow mail-extr emacsbug help-fns radix-tree evil-collection-emms
emms-idapi-browser emms-idapi emms-idapi-musicbrainz emms-mpris dbus
emms-librefm-stream xml emms-librefm-scrobbler emms-playlist-limit
emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams
emms-show-all emms-tag-editor format-spec emms-tag-tracktag emms-mark
emms-mode-line emms-cache emms-info-native emms-info-native-spc
emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus
emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool
emms-info-tinytag emms-info-metaflac emms-info-opusinfo
emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
emms-player-mpv emms-playing-time emms-info emms-later-do
emms-player-mplayer emms-player-simple emms-source-playlist
emms-source-file locate emms-setup emms emms-compat
evil-collection-wgrep wgrep evil-collection-diff-hl diff-hl-margin
diff-hl-dired diff-hl-flydiff diff-hl evil-collection-log-view log-view
evil-collection-vc-dir vc-dir ewoc evil-collection-log-edit log-edit
message sendmail yank-media puny evil-collection-dired nerd-icons-dired
dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived
epg rfc6068 epg-config gnus-util time-date 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 vc
vc-dispatcher evil-collection-diff-mode diff-mode track-changes
orderless cursor-sensor treemacs-nerd-icons treemacs-evil
treemacs-project-follow-mode 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 treemacs-faces treemacs-icons treemacs-scope
treemacs-themes treemacs-core-utils pfuture inline hl-line ht
treemacs-logging treemacs-customization treemacs-macros s dash
evil-collection-dashboard dashboard dashboard-widgets mule-util ffap
private recentf tree-widget evil-collection-which-key which-key
treesit-auto treesit evil-collection-vertico vertico
evil-collection-unimpaired evil-collection-tabulated-list
evil-collection-tab-bar evil-collection-so-long evil-collection-simple
evil-collection-replace evil-collection-process-menu
evil-collection-package-menu evil-collection-minibuffer
evil-collection-kmacro evil-collection-info evil-collection-indent
evil-collection-ibuffer evil-collection-help evil-collection-grep
evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom
evil-collection-corfu evil-collection-compile evil-collection-comint
evil-collection-buff-menu evil-matchit evil-matchit-evil-setup
evil-matchit-sdk semantic/lex semantic/fw mode-local find-func
evil-surround evil-collection annalist evil evil-integration evil-maps
evil-commands reveal evil-jumps evil-command-window evil-types
evil-search evil-ex evil-macros evil-repeat evil-states evil-core
evil-common thingatpt rect evil-vars edmacro kmacro pulsar pulse color
undo-tree diff queue async-bytecomp async persp-mode-project-bridge
persp-mode ligature lemacs-init nerd-icons-ibuffer nerd-icons-completion
nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon ibuffer-project project
ibuf-ext ibuffer ibuffer-loaddefs comp comp-cstr cl-extra help-mode
warnings comp-run comp-common rx flymake-eslint marginalia
corfu-popupinfo corfu cape compat server pinentry
modus-vivendi-tinted-theme modus-themes cus-edit pp wid-edit time
auth-source-pass bind-key xt-mouse winner savehist saveplace
pixel-scroll cua-base autorevert filenotify desktop frameset so-long
delsel grep compile text-property-search comint ansi-osc ansi-color ring
cus-load 0x0-autoloads add-node-modules-path-autoloads
apheleia-autoloads easy-mmode breadcrumb-autoloads cape-autoloads
catppuccin-theme-autoloads colorful-mode-autoloads corfu-autoloads
dashboard-autoloads diff-hl-autoloads dired-subtree-autoloads
dired-hacks-utils-autoloads diredfl-autoloads docker-autoloads
dockerfile-mode-autoloads doom-modeline-autoloads dotenv-mode-autoloads
eat-autoloads eldoc-box-autoloads elfeed-tube-mpv-autoloads
elfeed-tube-autoloads aio-autoloads elfeed-autoloads ellama-autoloads
embark-consult-autoloads consult-autoloads embark-autoloads
emms-autoloads erc-hl-nicks-autoloads
eshell-syntax-highlighting-autoloads eshell-z-autoloads
evil-collection-autoloads annalist-autoloads evil-matchit-autoloads
evil-surround-autoloads exec-path-from-shell-autoloads
expand-region-autoloads flymake-eslint-autoloads forge-autoloads
closql-autoloads emacsql-autoloads geiser-guile-autoloads
geiser-autoloads gh-md-autoloads ghub-autoloads
git-timemachine-autoloads handlebars-mode-autoloads hl-todo-autoloads
ibuffer-project-autoloads indent-guide-autoloads js-pkg-mode-autoloads
khalel-autoloads kkp-autoloads ligature-autoloads llm-autoloads
lsp-tailwindcss-autoloads lsp-mode-autoloads magit-stats-autoloads
marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads
mpv-autoloads nerd-icons-completion-autoloads nerd-icons-corfu-autoloads
nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads
olivetti-autoloads orderless-autoloads org-modern-autoloads
org-ros-autoloads package-lint-autoloads
persp-mode-project-bridge-autoloads persp-mode-autoloads
pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads
plz-autoloads polymode-autoloads proced-narrow-autoloads
pulsar-autoloads pyvenv-autoloads rainbow-delimiters-autoloads
ready-player-autoloads sass-mode-autoloads haml-mode-autoloads
scss-mode-autoloads shrink-path-autoloads f-autoloads sly-autoloads
smartparens-autoloads spinner-autoloads sudo-edit-autoloads
tablist-autoloads tempel-collection-autoloads tempel-autoloads
transmission-autoloads transpose-frame-autoloads treemacs-evil-autoloads
evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads
treemacs-magit-autoloads magit-autoloads pcase transient-autoloads
magit-section-autoloads llama-autoloads treemacs-nerd-icons-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
avy-autoloads s-autoloads dash-autoloads nerd-icons-autoloads
treepy-autoloads treesit-auto-autoloads typescript-mode-autoloads
undo-tree-autoloads queue-autoloads vc-msg-autoloads popup-autoloads
vdirel-autoloads helm-autoloads helm-core-autoloads async-autoloads
org-vcard-autoloads verb-autoloads vertico-autoloads web-mode-autoloads
wfnames-autoloads wgrep-autoloads info with-editor-autoloads
xclip-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads
yeetube-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
lcms2 multi-tty move-toolbar make-network-process native-compile emacs)

Memory information:
((conses 16 748467 190575) (symbols 48 29921 19)
 (strings 32 214960 6008) (string-bytes 1 8549689) (vectors 16 52457)
 (vector-slots 8 1316547 238197) (floats 8 1275 55)
 (intervals 56 4166 738) (buffers 992 14))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 14:10:02 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
Cc: 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 09:08:40 -0500
[Message part 1 (text/plain, inline)]
It should be sufficient to differentiate by architecture, not by host.
'comp-native-version-dir' is used internally by Emacs and I don't think you
need to reference it.

I think you asked this on reddit and seemed satisfied with this response
https://www.reddit.com/r/emacs/comments/1hgjra6/comment/m3i486t/ which
seems to suffice for your use case.

-Stephane

On Wed, Feb 26, 2025 at 8:57 AM Rahul Martim Juliato <rahuljuliato <at> gmail.com>
wrote:

>
> This is not a bug, more of a question.
>
> I noticed the addition of `comp-native-version-dir' and found it nice
> to be there.
>
> I currently have a workflow where I use the same (but not at the same
> time) emacs config from a network folder for both macos (arm
> architecture) and debian (x64).
>
> In my config I manually set the name of the folders `eln-cache` to be
> something like `eln-cache-machine1` and `eln-cache-machine2`.
>
> Since 30.1 became released, the `comp-native-version-dir' is added to
> organize the subfolder.
>
> Does it create this magic number taking in consideration also the
> machine architecture? If not, could we make
> distinctions between architectures when creating the sub-folders?
>
> If I use the same pre-compiled binaries, will this number be the same on
> both machines?
>
> I tried to collect some of this info on #emacs <at> Libera.Chat, confusion
> was everywhere, we couldn't conclude anything. Could Emacs maintainers
> provide us with a little bit more info or where to find it?
>
> Thanks!
>
>
>
>
> In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
>  cairo version 1.16.0) of 2025-02-24 built on debian
> System Description: Debian GNU/Linux 12 (bookworm)
>
> Configured using:
>  'configure --with-native-compilation=aot --with-tree-sitter --with-gif
>  --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick
>  --with-pgtk --with-mailutils'
>
> Configured features:
> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
> IMAGEMAGICK JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
> NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
> THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB
>
> Important settings:
>   value of $LANG: en_US.UTF-8
>   locale-coding-system: utf-8-unix
>
> Major mode: Dashboard
>
> Minor modes in effect:
>   emms-mode-line-mode: t
>   emms-playing-time-display-mode: t
>   emms-playing-time-mode: t
>   diff-hl-margin-mode: t
>   diff-hl-flydiff-mode: t
>   global-diff-hl-mode: t
>   treemacs-project-follow-mode: t
>   treemacs-filewatch-mode: t
>   treemacs-follow-mode: t
>   treemacs-git-mode: t
>   treemacs-fringe-indicator-mode: t
>   recentf-mode: t
>   which-key-mode: t
>   global-treesit-auto-mode: t
>   vertico-mode: t
>   global-evil-collection-unimpaired-mode: t
>   evil-collection-unimpaired-mode: t
>   global-evil-matchit-mode: t
>   evil-matchit-mode: t
>   global-evil-surround-mode: t
>   evil-surround-mode: t
>   evil-mode: t
>   evil-local-mode: t
>   pulsar-global-mode: t
>   pulsar-mode: t
>   global-undo-tree-mode: t
>   undo-tree-mode: t
>   async-bytecomp-package-mode: t
>   persp-mode-project-bridge-mode: t
>   persp-mode: t
>   global-ligature-mode: t
>   ligature-mode: t
>   nerd-icons-completion-mode: t
>   marginalia-mode: t
>   corfu-popupinfo-mode: t
>   global-corfu-mode: t
>   corfu-mode: t
>   override-global-mode: t
>   xterm-mouse-mode: t
>   winner-mode: t
>   savehist-mode: t
>   save-place-mode: t
>   pixel-scroll-precision-mode: t
>   global-auto-revert-mode: t
>   delete-selection-mode: t
>   global-eldoc-mode: t
>   show-paren-mode: t
>   electric-indent-mode: t
>   mouse-wheel-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   minibuffer-regexp-mode: t
>   buffer-read-only: t
>   column-number-mode: t
>   line-number-mode: t
>   transient-mark-mode: t
>   auto-composition-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>
> Load-path shadows:
> /home/rmj/.emacs.d/elpa/transient-20250222.1912/transient hides
> /usr/local/share/emacs/30.1/lisp/transient
> /home/rmj/.emacs.d/elpa/modus-themes-20250220.647/theme-loaddefs hides
> /usr/local/share/emacs/30.1/lisp/theme-loaddefs
>
> Features:
> (shadow mail-extr emacsbug help-fns radix-tree evil-collection-emms
> emms-idapi-browser emms-idapi emms-idapi-musicbrainz emms-mpris dbus
> emms-librefm-stream xml emms-librefm-scrobbler emms-playlist-limit
> emms-i18n emms-history emms-score emms-stream-info
> emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
> emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
> emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
> emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams
> emms-show-all emms-tag-editor format-spec emms-tag-tracktag emms-mark
> emms-mode-line emms-cache emms-info-native emms-info-native-spc
> emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus
> emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool
> emms-info-tinytag emms-info-metaflac emms-info-opusinfo
> emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
> emms-player-mpv emms-playing-time emms-info emms-later-do
> emms-player-mplayer emms-player-simple emms-source-playlist
> emms-source-file locate emms-setup emms emms-compat
> evil-collection-wgrep wgrep evil-collection-diff-hl diff-hl-margin
> diff-hl-dired diff-hl-flydiff diff-hl evil-collection-log-view log-view
> evil-collection-vc-dir vc-dir ewoc evil-collection-log-edit log-edit
> message sendmail yank-media puny evil-collection-dired nerd-icons-dired
> dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived
> epg rfc6068 epg-config gnus-util time-date 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 vc
> vc-dispatcher evil-collection-diff-mode diff-mode track-changes
> orderless cursor-sensor treemacs-nerd-icons treemacs-evil
> treemacs-project-follow-mode 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 treemacs-faces treemacs-icons treemacs-scope
> treemacs-themes treemacs-core-utils pfuture inline hl-line ht
> treemacs-logging treemacs-customization treemacs-macros s dash
> evil-collection-dashboard dashboard dashboard-widgets mule-util ffap
> private recentf tree-widget evil-collection-which-key which-key
> treesit-auto treesit evil-collection-vertico vertico
> evil-collection-unimpaired evil-collection-tabulated-list
> evil-collection-tab-bar evil-collection-so-long evil-collection-simple
> evil-collection-replace evil-collection-process-menu
> evil-collection-package-menu evil-collection-minibuffer
> evil-collection-kmacro evil-collection-info evil-collection-indent
> evil-collection-ibuffer evil-collection-help evil-collection-grep
> evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom
> evil-collection-corfu evil-collection-compile evil-collection-comint
> evil-collection-buff-menu evil-matchit evil-matchit-evil-setup
> evil-matchit-sdk semantic/lex semantic/fw mode-local find-func
> evil-surround evil-collection annalist evil evil-integration evil-maps
> evil-commands reveal evil-jumps evil-command-window evil-types
> evil-search evil-ex evil-macros evil-repeat evil-states evil-core
> evil-common thingatpt rect evil-vars edmacro kmacro pulsar pulse color
> undo-tree diff queue async-bytecomp async persp-mode-project-bridge
> persp-mode ligature lemacs-init nerd-icons-ibuffer nerd-icons-completion
> nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
> nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
> nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
> nerd-icons-data-powerline nerd-icons-data-octicon
> nerd-icons-data-pomicon nerd-icons-data-ipsicon ibuffer-project project
> ibuf-ext ibuffer ibuffer-loaddefs comp comp-cstr cl-extra help-mode
> warnings comp-run comp-common rx flymake-eslint marginalia
> corfu-popupinfo corfu cape compat server pinentry
> modus-vivendi-tinted-theme modus-themes cus-edit pp wid-edit time
> auth-source-pass bind-key xt-mouse winner savehist saveplace
> pixel-scroll cua-base autorevert filenotify desktop frameset so-long
> delsel grep compile text-property-search comint ansi-osc ansi-color ring
> cus-load 0x0-autoloads add-node-modules-path-autoloads
> apheleia-autoloads easy-mmode breadcrumb-autoloads cape-autoloads
> catppuccin-theme-autoloads colorful-mode-autoloads corfu-autoloads
> dashboard-autoloads diff-hl-autoloads dired-subtree-autoloads
> dired-hacks-utils-autoloads diredfl-autoloads docker-autoloads
> dockerfile-mode-autoloads doom-modeline-autoloads dotenv-mode-autoloads
> eat-autoloads eldoc-box-autoloads elfeed-tube-mpv-autoloads
> elfeed-tube-autoloads aio-autoloads elfeed-autoloads ellama-autoloads
> embark-consult-autoloads consult-autoloads embark-autoloads
> emms-autoloads erc-hl-nicks-autoloads
> eshell-syntax-highlighting-autoloads eshell-z-autoloads
> evil-collection-autoloads annalist-autoloads evil-matchit-autoloads
> evil-surround-autoloads exec-path-from-shell-autoloads
> expand-region-autoloads flymake-eslint-autoloads forge-autoloads
> closql-autoloads emacsql-autoloads geiser-guile-autoloads
> geiser-autoloads gh-md-autoloads ghub-autoloads
> git-timemachine-autoloads handlebars-mode-autoloads hl-todo-autoloads
> ibuffer-project-autoloads indent-guide-autoloads js-pkg-mode-autoloads
> khalel-autoloads kkp-autoloads ligature-autoloads llm-autoloads
> lsp-tailwindcss-autoloads lsp-mode-autoloads magit-stats-autoloads
> marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads
> mpv-autoloads nerd-icons-completion-autoloads nerd-icons-corfu-autoloads
> nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads
> olivetti-autoloads orderless-autoloads org-modern-autoloads
> org-ros-autoloads package-lint-autoloads
> persp-mode-project-bridge-autoloads persp-mode-autoloads
> pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads
> plz-autoloads polymode-autoloads proced-narrow-autoloads
> pulsar-autoloads pyvenv-autoloads rainbow-delimiters-autoloads
> ready-player-autoloads sass-mode-autoloads haml-mode-autoloads
> scss-mode-autoloads shrink-path-autoloads f-autoloads sly-autoloads
> smartparens-autoloads spinner-autoloads sudo-edit-autoloads
> tablist-autoloads tempel-collection-autoloads tempel-autoloads
> transmission-autoloads transpose-frame-autoloads treemacs-evil-autoloads
> evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads
> treemacs-magit-autoloads magit-autoloads pcase transient-autoloads
> magit-section-autoloads llama-autoloads treemacs-nerd-icons-autoloads
> treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
> hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
> avy-autoloads s-autoloads dash-autoloads nerd-icons-autoloads
> treepy-autoloads treesit-auto-autoloads typescript-mode-autoloads
> undo-tree-autoloads queue-autoloads vc-msg-autoloads popup-autoloads
> vdirel-autoloads helm-autoloads helm-core-autoloads async-autoloads
> org-vcard-autoloads verb-autoloads vertico-autoloads web-mode-autoloads
> wfnames-autoloads wgrep-autoloads info with-editor-autoloads
> xclip-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads
> yeetube-autoloads package browse-url url url-proxy url-privacy
> url-expand url-methods url-history url-cookie generate-lisp-file
> url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
> eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
> gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc
> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
> vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
> term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image
> regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
> prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
> timer select scroll-bar mouse jit-lock font-lock syntax font-core
> term/tty-colors frame minibuffer nadvice seq simple cl-generic
> indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
> tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
> romanian slovak czech european ethiopic indian cyrillic chinese
> composite emoji-zwj charscript charprop case-table epa-hook
> jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
> theme-loaddefs faces cus-face macroexp files window text-properties
> overlay sha1 md5 base64 format env code-pages mule custom widget keymap
> hashtable-print-readable backquote threads dbusbind inotify
> dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
> lcms2 multi-tty move-toolbar make-network-process native-compile emacs)
>
> Memory information:
> ((conses 16 748467 190575) (symbols 48 29921 19)
>  (strings 32 214960 6008) (string-bytes 1 8549689) (vectors 16 52457)
>  (vector-slots 8 1316547 238197) (floats 8 1275 55)
>  (intervals 56 4166 738) (buffers 992 14))
>
>
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 14:17:02 GMT) Full text and rfc822 format available.

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

From: Rahul Juliato <rahuljuliato <at> gmail.com>
To: Ship Mints <shipmints <at> gmail.com>
Cc: 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 11:16:23 -0300
[Message part 1 (text/plain, inline)]
I totally forgot to see this later. Thanks for pointing it Ship Mints, my
bad!

I am curious if I could simply drop any `eln-cache` hacks from my user
config and rely solely on the new internals
(in my case:   ~/emacs/.emacs.d/eln-cache/30.1-a9997e26).


Em qua., 26 de fev. de 2025 às 11:08, Ship Mints <shipmints <at> gmail.com>
escreveu:

> It should be sufficient to differentiate by architecture, not by host.
> 'comp-native-version-dir' is used internally by Emacs and I don't think you
> need to reference it.
>
> I think you asked this on reddit and seemed satisfied with this response
> https://www.reddit.com/r/emacs/comments/1hgjra6/comment/m3i486t/ which
> seems to suffice for your use case.
>
> -Stephane
>
> On Wed, Feb 26, 2025 at 8:57 AM Rahul Martim Juliato <
> rahuljuliato <at> gmail.com> wrote:
>
>>
>> This is not a bug, more of a question.
>>
>> I noticed the addition of `comp-native-version-dir' and found it nice
>> to be there.
>>
>> I currently have a workflow where I use the same (but not at the same
>> time) emacs config from a network folder for both macos (arm
>> architecture) and debian (x64).
>>
>> In my config I manually set the name of the folders `eln-cache` to be
>> something like `eln-cache-machine1` and `eln-cache-machine2`.
>>
>> Since 30.1 became released, the `comp-native-version-dir' is added to
>> organize the subfolder.
>>
>> Does it create this magic number taking in consideration also the
>> machine architecture? If not, could we make
>> distinctions between architectures when creating the sub-folders?
>>
>> If I use the same pre-compiled binaries, will this number be the same on
>> both machines?
>>
>> I tried to collect some of this info on #emacs <at> Libera.Chat, confusion
>> was everywhere, we couldn't conclude anything. Could Emacs maintainers
>> provide us with a little bit more info or where to find it?
>>
>> Thanks!
>>
>>
>>
>>
>> In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
>>  cairo version 1.16.0) of 2025-02-24 built on debian
>> System Description: Debian GNU/Linux 12 (bookworm)
>>
>> Configured using:
>>  'configure --with-native-compilation=aot --with-tree-sitter --with-gif
>>  --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick
>>  --with-pgtk --with-mailutils'
>>
>> Configured features:
>> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
>> IMAGEMAGICK JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
>> NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
>> THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB
>>
>> Important settings:
>>   value of $LANG: en_US.UTF-8
>>   locale-coding-system: utf-8-unix
>>
>> Major mode: Dashboard
>>
>> Minor modes in effect:
>>   emms-mode-line-mode: t
>>   emms-playing-time-display-mode: t
>>   emms-playing-time-mode: t
>>   diff-hl-margin-mode: t
>>   diff-hl-flydiff-mode: t
>>   global-diff-hl-mode: t
>>   treemacs-project-follow-mode: t
>>   treemacs-filewatch-mode: t
>>   treemacs-follow-mode: t
>>   treemacs-git-mode: t
>>   treemacs-fringe-indicator-mode: t
>>   recentf-mode: t
>>   which-key-mode: t
>>   global-treesit-auto-mode: t
>>   vertico-mode: t
>>   global-evil-collection-unimpaired-mode: t
>>   evil-collection-unimpaired-mode: t
>>   global-evil-matchit-mode: t
>>   evil-matchit-mode: t
>>   global-evil-surround-mode: t
>>   evil-surround-mode: t
>>   evil-mode: t
>>   evil-local-mode: t
>>   pulsar-global-mode: t
>>   pulsar-mode: t
>>   global-undo-tree-mode: t
>>   undo-tree-mode: t
>>   async-bytecomp-package-mode: t
>>   persp-mode-project-bridge-mode: t
>>   persp-mode: t
>>   global-ligature-mode: t
>>   ligature-mode: t
>>   nerd-icons-completion-mode: t
>>   marginalia-mode: t
>>   corfu-popupinfo-mode: t
>>   global-corfu-mode: t
>>   corfu-mode: t
>>   override-global-mode: t
>>   xterm-mouse-mode: t
>>   winner-mode: t
>>   savehist-mode: t
>>   save-place-mode: t
>>   pixel-scroll-precision-mode: t
>>   global-auto-revert-mode: t
>>   delete-selection-mode: t
>>   global-eldoc-mode: t
>>   show-paren-mode: t
>>   electric-indent-mode: t
>>   mouse-wheel-mode: t
>>   file-name-shadow-mode: t
>>   global-font-lock-mode: t
>>   font-lock-mode: t
>>   minibuffer-regexp-mode: t
>>   buffer-read-only: t
>>   column-number-mode: t
>>   line-number-mode: t
>>   transient-mark-mode: t
>>   auto-composition-mode: t
>>   auto-encryption-mode: t
>>   auto-compression-mode: t
>>
>> Load-path shadows:
>> /home/rmj/.emacs.d/elpa/transient-20250222.1912/transient hides
>> /usr/local/share/emacs/30.1/lisp/transient
>> /home/rmj/.emacs.d/elpa/modus-themes-20250220.647/theme-loaddefs hides
>> /usr/local/share/emacs/30.1/lisp/theme-loaddefs
>>
>> Features:
>> (shadow mail-extr emacsbug help-fns radix-tree evil-collection-emms
>> emms-idapi-browser emms-idapi emms-idapi-musicbrainz emms-mpris dbus
>> emms-librefm-stream xml emms-librefm-scrobbler emms-playlist-limit
>> emms-i18n emms-history emms-score emms-stream-info
>> emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
>> emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
>> emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
>> emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams
>> emms-show-all emms-tag-editor format-spec emms-tag-tracktag emms-mark
>> emms-mode-line emms-cache emms-info-native emms-info-native-spc
>> emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus
>> emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool
>> emms-info-tinytag emms-info-metaflac emms-info-opusinfo
>> emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
>> emms-player-mpv emms-playing-time emms-info emms-later-do
>> emms-player-mplayer emms-player-simple emms-source-playlist
>> emms-source-file locate emms-setup emms emms-compat
>> evil-collection-wgrep wgrep evil-collection-diff-hl diff-hl-margin
>> diff-hl-dired diff-hl-flydiff diff-hl evil-collection-log-view log-view
>> evil-collection-vc-dir vc-dir ewoc evil-collection-log-edit log-edit
>> message sendmail yank-media puny evil-collection-dired nerd-icons-dired
>> dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived
>> epg rfc6068 epg-config gnus-util time-date 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 vc
>> vc-dispatcher evil-collection-diff-mode diff-mode track-changes
>> orderless cursor-sensor treemacs-nerd-icons treemacs-evil
>> treemacs-project-follow-mode 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 treemacs-faces treemacs-icons treemacs-scope
>> treemacs-themes treemacs-core-utils pfuture inline hl-line ht
>> treemacs-logging treemacs-customization treemacs-macros s dash
>> evil-collection-dashboard dashboard dashboard-widgets mule-util ffap
>> private recentf tree-widget evil-collection-which-key which-key
>> treesit-auto treesit evil-collection-vertico vertico
>> evil-collection-unimpaired evil-collection-tabulated-list
>> evil-collection-tab-bar evil-collection-so-long evil-collection-simple
>> evil-collection-replace evil-collection-process-menu
>> evil-collection-package-menu evil-collection-minibuffer
>> evil-collection-kmacro evil-collection-info evil-collection-indent
>> evil-collection-ibuffer evil-collection-help evil-collection-grep
>> evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom
>> evil-collection-corfu evil-collection-compile evil-collection-comint
>> evil-collection-buff-menu evil-matchit evil-matchit-evil-setup
>> evil-matchit-sdk semantic/lex semantic/fw mode-local find-func
>> evil-surround evil-collection annalist evil evil-integration evil-maps
>> evil-commands reveal evil-jumps evil-command-window evil-types
>> evil-search evil-ex evil-macros evil-repeat evil-states evil-core
>> evil-common thingatpt rect evil-vars edmacro kmacro pulsar pulse color
>> undo-tree diff queue async-bytecomp async persp-mode-project-bridge
>> persp-mode ligature lemacs-init nerd-icons-ibuffer nerd-icons-completion
>> nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
>> nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
>> nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
>> nerd-icons-data-powerline nerd-icons-data-octicon
>> nerd-icons-data-pomicon nerd-icons-data-ipsicon ibuffer-project project
>> ibuf-ext ibuffer ibuffer-loaddefs comp comp-cstr cl-extra help-mode
>> warnings comp-run comp-common rx flymake-eslint marginalia
>> corfu-popupinfo corfu cape compat server pinentry
>> modus-vivendi-tinted-theme modus-themes cus-edit pp wid-edit time
>> auth-source-pass bind-key xt-mouse winner savehist saveplace
>> pixel-scroll cua-base autorevert filenotify desktop frameset so-long
>> delsel grep compile text-property-search comint ansi-osc ansi-color ring
>> cus-load 0x0-autoloads add-node-modules-path-autoloads
>> apheleia-autoloads easy-mmode breadcrumb-autoloads cape-autoloads
>> catppuccin-theme-autoloads colorful-mode-autoloads corfu-autoloads
>> dashboard-autoloads diff-hl-autoloads dired-subtree-autoloads
>> dired-hacks-utils-autoloads diredfl-autoloads docker-autoloads
>> dockerfile-mode-autoloads doom-modeline-autoloads dotenv-mode-autoloads
>> eat-autoloads eldoc-box-autoloads elfeed-tube-mpv-autoloads
>> elfeed-tube-autoloads aio-autoloads elfeed-autoloads ellama-autoloads
>> embark-consult-autoloads consult-autoloads embark-autoloads
>> emms-autoloads erc-hl-nicks-autoloads
>> eshell-syntax-highlighting-autoloads eshell-z-autoloads
>> evil-collection-autoloads annalist-autoloads evil-matchit-autoloads
>> evil-surround-autoloads exec-path-from-shell-autoloads
>> expand-region-autoloads flymake-eslint-autoloads forge-autoloads
>> closql-autoloads emacsql-autoloads geiser-guile-autoloads
>> geiser-autoloads gh-md-autoloads ghub-autoloads
>> git-timemachine-autoloads handlebars-mode-autoloads hl-todo-autoloads
>> ibuffer-project-autoloads indent-guide-autoloads js-pkg-mode-autoloads
>> khalel-autoloads kkp-autoloads ligature-autoloads llm-autoloads
>> lsp-tailwindcss-autoloads lsp-mode-autoloads magit-stats-autoloads
>> marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads
>> mpv-autoloads nerd-icons-completion-autoloads nerd-icons-corfu-autoloads
>> nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads
>> olivetti-autoloads orderless-autoloads org-modern-autoloads
>> org-ros-autoloads package-lint-autoloads
>> persp-mode-project-bridge-autoloads persp-mode-autoloads
>> pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads
>> plz-autoloads polymode-autoloads proced-narrow-autoloads
>> pulsar-autoloads pyvenv-autoloads rainbow-delimiters-autoloads
>> ready-player-autoloads sass-mode-autoloads haml-mode-autoloads
>> scss-mode-autoloads shrink-path-autoloads f-autoloads sly-autoloads
>> smartparens-autoloads spinner-autoloads sudo-edit-autoloads
>> tablist-autoloads tempel-collection-autoloads tempel-autoloads
>> transmission-autoloads transpose-frame-autoloads treemacs-evil-autoloads
>> evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads
>> treemacs-magit-autoloads magit-autoloads pcase transient-autoloads
>> magit-section-autoloads llama-autoloads treemacs-nerd-icons-autoloads
>> treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
>> hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
>> avy-autoloads s-autoloads dash-autoloads nerd-icons-autoloads
>> treepy-autoloads treesit-auto-autoloads typescript-mode-autoloads
>> undo-tree-autoloads queue-autoloads vc-msg-autoloads popup-autoloads
>> vdirel-autoloads helm-autoloads helm-core-autoloads async-autoloads
>> org-vcard-autoloads verb-autoloads vertico-autoloads web-mode-autoloads
>> wfnames-autoloads wgrep-autoloads info with-editor-autoloads
>> xclip-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads
>> yeetube-autoloads package browse-url url url-proxy url-privacy
>> url-expand url-methods url-history url-cookie generate-lisp-file
>> url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
>> eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
>> gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc
>> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
>> vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
>> term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image
>> regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
>> prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
>> timer select scroll-bar mouse jit-lock font-lock syntax font-core
>> term/tty-colors frame minibuffer nadvice seq simple cl-generic
>> indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
>> tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
>> romanian slovak czech european ethiopic indian cyrillic chinese
>> composite emoji-zwj charscript charprop case-table epa-hook
>> jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
>> theme-loaddefs faces cus-face macroexp files window text-properties
>> overlay sha1 md5 base64 format env code-pages mule custom widget keymap
>> hashtable-print-readable backquote threads dbusbind inotify
>> dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
>> lcms2 multi-tty move-toolbar make-network-process native-compile emacs)
>>
>> Memory information:
>> ((conses 16 748467 190575) (symbols 48 29921 19)
>>  (strings 32 214960 6008) (string-bytes 1 8549689) (vectors 16 52457)
>>  (vector-slots 8 1316547 238197) (floats 8 1275 55)
>>  (intervals 56 4166 738) (buffers 992 14))
>>
>>
>>
>>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 14:20:02 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Rahul Juliato <rahuljuliato <at> gmail.com>
Cc: 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 09:19:07 -0500
[Message part 1 (text/plain, inline)]
If you want to share the identical .emacs tree across architectures, the
solution I suggested will work fine.  Try it and see.

On Wed, Feb 26, 2025 at 9:16 AM Rahul Juliato <rahuljuliato <at> gmail.com>
wrote:

> I totally forgot to see this later. Thanks for pointing it Ship Mints, my
> bad!
>
> I am curious if I could simply drop any `eln-cache` hacks from my user
> config and rely solely on the new internals
> (in my case:   ~/emacs/.emacs.d/eln-cache/30.1-a9997e26).
>
>
> Em qua., 26 de fev. de 2025 às 11:08, Ship Mints <shipmints <at> gmail.com>
> escreveu:
>
>> It should be sufficient to differentiate by architecture, not by host.
>> 'comp-native-version-dir' is used internally by Emacs and I don't think you
>> need to reference it.
>>
>> I think you asked this on reddit and seemed satisfied with this response
>> https://www.reddit.com/r/emacs/comments/1hgjra6/comment/m3i486t/ which
>> seems to suffice for your use case.
>>
>> -Stephane
>>
>> On Wed, Feb 26, 2025 at 8:57 AM Rahul Martim Juliato <
>> rahuljuliato <at> gmail.com> wrote:
>>
>>>
>>> This is not a bug, more of a question.
>>>
>>> I noticed the addition of `comp-native-version-dir' and found it nice
>>> to be there.
>>>
>>> I currently have a workflow where I use the same (but not at the same
>>> time) emacs config from a network folder for both macos (arm
>>> architecture) and debian (x64).
>>>
>>> In my config I manually set the name of the folders `eln-cache` to be
>>> something like `eln-cache-machine1` and `eln-cache-machine2`.
>>>
>>> Since 30.1 became released, the `comp-native-version-dir' is added to
>>> organize the subfolder.
>>>
>>> Does it create this magic number taking in consideration also the
>>> machine architecture? If not, could we make
>>> distinctions between architectures when creating the sub-folders?
>>>
>>> If I use the same pre-compiled binaries, will this number be the same on
>>> both machines?
>>>
>>> I tried to collect some of this info on #emacs <at> Libera.Chat, confusion
>>> was everywhere, we couldn't conclude anything. Could Emacs maintainers
>>> provide us with a little bit more info or where to find it?
>>>
>>> Thanks!
>>>
>>>
>>>
>>>
>>> In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
>>>  cairo version 1.16.0) of 2025-02-24 built on debian
>>> System Description: Debian GNU/Linux 12 (bookworm)
>>>
>>> Configured using:
>>>  'configure --with-native-compilation=aot --with-tree-sitter --with-gif
>>>  --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick
>>>  --with-pgtk --with-mailutils'
>>>
>>> Configured features:
>>> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
>>> IMAGEMAGICK JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
>>> NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
>>> THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB
>>>
>>> Important settings:
>>>   value of $LANG: en_US.UTF-8
>>>   locale-coding-system: utf-8-unix
>>>
>>> Major mode: Dashboard
>>>
>>> Minor modes in effect:
>>>   emms-mode-line-mode: t
>>>   emms-playing-time-display-mode: t
>>>   emms-playing-time-mode: t
>>>   diff-hl-margin-mode: t
>>>   diff-hl-flydiff-mode: t
>>>   global-diff-hl-mode: t
>>>   treemacs-project-follow-mode: t
>>>   treemacs-filewatch-mode: t
>>>   treemacs-follow-mode: t
>>>   treemacs-git-mode: t
>>>   treemacs-fringe-indicator-mode: t
>>>   recentf-mode: t
>>>   which-key-mode: t
>>>   global-treesit-auto-mode: t
>>>   vertico-mode: t
>>>   global-evil-collection-unimpaired-mode: t
>>>   evil-collection-unimpaired-mode: t
>>>   global-evil-matchit-mode: t
>>>   evil-matchit-mode: t
>>>   global-evil-surround-mode: t
>>>   evil-surround-mode: t
>>>   evil-mode: t
>>>   evil-local-mode: t
>>>   pulsar-global-mode: t
>>>   pulsar-mode: t
>>>   global-undo-tree-mode: t
>>>   undo-tree-mode: t
>>>   async-bytecomp-package-mode: t
>>>   persp-mode-project-bridge-mode: t
>>>   persp-mode: t
>>>   global-ligature-mode: t
>>>   ligature-mode: t
>>>   nerd-icons-completion-mode: t
>>>   marginalia-mode: t
>>>   corfu-popupinfo-mode: t
>>>   global-corfu-mode: t
>>>   corfu-mode: t
>>>   override-global-mode: t
>>>   xterm-mouse-mode: t
>>>   winner-mode: t
>>>   savehist-mode: t
>>>   save-place-mode: t
>>>   pixel-scroll-precision-mode: t
>>>   global-auto-revert-mode: t
>>>   delete-selection-mode: t
>>>   global-eldoc-mode: t
>>>   show-paren-mode: t
>>>   electric-indent-mode: t
>>>   mouse-wheel-mode: t
>>>   file-name-shadow-mode: t
>>>   global-font-lock-mode: t
>>>   font-lock-mode: t
>>>   minibuffer-regexp-mode: t
>>>   buffer-read-only: t
>>>   column-number-mode: t
>>>   line-number-mode: t
>>>   transient-mark-mode: t
>>>   auto-composition-mode: t
>>>   auto-encryption-mode: t
>>>   auto-compression-mode: t
>>>
>>> Load-path shadows:
>>> /home/rmj/.emacs.d/elpa/transient-20250222.1912/transient hides
>>> /usr/local/share/emacs/30.1/lisp/transient
>>> /home/rmj/.emacs.d/elpa/modus-themes-20250220.647/theme-loaddefs hides
>>> /usr/local/share/emacs/30.1/lisp/theme-loaddefs
>>>
>>> Features:
>>> (shadow mail-extr emacsbug help-fns radix-tree evil-collection-emms
>>> emms-idapi-browser emms-idapi emms-idapi-musicbrainz emms-mpris dbus
>>> emms-librefm-stream xml emms-librefm-scrobbler emms-playlist-limit
>>> emms-i18n emms-history emms-score emms-stream-info
>>> emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
>>> emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
>>> emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
>>> emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams
>>> emms-show-all emms-tag-editor format-spec emms-tag-tracktag emms-mark
>>> emms-mode-line emms-cache emms-info-native emms-info-native-spc
>>> emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus
>>> emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool
>>> emms-info-tinytag emms-info-metaflac emms-info-opusinfo
>>> emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
>>> emms-player-mpv emms-playing-time emms-info emms-later-do
>>> emms-player-mplayer emms-player-simple emms-source-playlist
>>> emms-source-file locate emms-setup emms emms-compat
>>> evil-collection-wgrep wgrep evil-collection-diff-hl diff-hl-margin
>>> diff-hl-dired diff-hl-flydiff diff-hl evil-collection-log-view log-view
>>> evil-collection-vc-dir vc-dir ewoc evil-collection-log-edit log-edit
>>> message sendmail yank-media puny evil-collection-dired nerd-icons-dired
>>> dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived
>>> epg rfc6068 epg-config gnus-util time-date 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 vc
>>> vc-dispatcher evil-collection-diff-mode diff-mode track-changes
>>> orderless cursor-sensor treemacs-nerd-icons treemacs-evil
>>> treemacs-project-follow-mode 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 treemacs-faces treemacs-icons treemacs-scope
>>> treemacs-themes treemacs-core-utils pfuture inline hl-line ht
>>> treemacs-logging treemacs-customization treemacs-macros s dash
>>> evil-collection-dashboard dashboard dashboard-widgets mule-util ffap
>>> private recentf tree-widget evil-collection-which-key which-key
>>> treesit-auto treesit evil-collection-vertico vertico
>>> evil-collection-unimpaired evil-collection-tabulated-list
>>> evil-collection-tab-bar evil-collection-so-long evil-collection-simple
>>> evil-collection-replace evil-collection-process-menu
>>> evil-collection-package-menu evil-collection-minibuffer
>>> evil-collection-kmacro evil-collection-info evil-collection-indent
>>> evil-collection-ibuffer evil-collection-help evil-collection-grep
>>> evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom
>>> evil-collection-corfu evil-collection-compile evil-collection-comint
>>> evil-collection-buff-menu evil-matchit evil-matchit-evil-setup
>>> evil-matchit-sdk semantic/lex semantic/fw mode-local find-func
>>> evil-surround evil-collection annalist evil evil-integration evil-maps
>>> evil-commands reveal evil-jumps evil-command-window evil-types
>>> evil-search evil-ex evil-macros evil-repeat evil-states evil-core
>>> evil-common thingatpt rect evil-vars edmacro kmacro pulsar pulse color
>>> undo-tree diff queue async-bytecomp async persp-mode-project-bridge
>>> persp-mode ligature lemacs-init nerd-icons-ibuffer nerd-icons-completion
>>> nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
>>> nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
>>> nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
>>> nerd-icons-data-powerline nerd-icons-data-octicon
>>> nerd-icons-data-pomicon nerd-icons-data-ipsicon ibuffer-project project
>>> ibuf-ext ibuffer ibuffer-loaddefs comp comp-cstr cl-extra help-mode
>>> warnings comp-run comp-common rx flymake-eslint marginalia
>>> corfu-popupinfo corfu cape compat server pinentry
>>> modus-vivendi-tinted-theme modus-themes cus-edit pp wid-edit time
>>> auth-source-pass bind-key xt-mouse winner savehist saveplace
>>> pixel-scroll cua-base autorevert filenotify desktop frameset so-long
>>> delsel grep compile text-property-search comint ansi-osc ansi-color ring
>>> cus-load 0x0-autoloads add-node-modules-path-autoloads
>>> apheleia-autoloads easy-mmode breadcrumb-autoloads cape-autoloads
>>> catppuccin-theme-autoloads colorful-mode-autoloads corfu-autoloads
>>> dashboard-autoloads diff-hl-autoloads dired-subtree-autoloads
>>> dired-hacks-utils-autoloads diredfl-autoloads docker-autoloads
>>> dockerfile-mode-autoloads doom-modeline-autoloads dotenv-mode-autoloads
>>> eat-autoloads eldoc-box-autoloads elfeed-tube-mpv-autoloads
>>> elfeed-tube-autoloads aio-autoloads elfeed-autoloads ellama-autoloads
>>> embark-consult-autoloads consult-autoloads embark-autoloads
>>> emms-autoloads erc-hl-nicks-autoloads
>>> eshell-syntax-highlighting-autoloads eshell-z-autoloads
>>> evil-collection-autoloads annalist-autoloads evil-matchit-autoloads
>>> evil-surround-autoloads exec-path-from-shell-autoloads
>>> expand-region-autoloads flymake-eslint-autoloads forge-autoloads
>>> closql-autoloads emacsql-autoloads geiser-guile-autoloads
>>> geiser-autoloads gh-md-autoloads ghub-autoloads
>>> git-timemachine-autoloads handlebars-mode-autoloads hl-todo-autoloads
>>> ibuffer-project-autoloads indent-guide-autoloads js-pkg-mode-autoloads
>>> khalel-autoloads kkp-autoloads ligature-autoloads llm-autoloads
>>> lsp-tailwindcss-autoloads lsp-mode-autoloads magit-stats-autoloads
>>> marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads
>>> mpv-autoloads nerd-icons-completion-autoloads nerd-icons-corfu-autoloads
>>> nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads
>>> olivetti-autoloads orderless-autoloads org-modern-autoloads
>>> org-ros-autoloads package-lint-autoloads
>>> persp-mode-project-bridge-autoloads persp-mode-autoloads
>>> pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads
>>> plz-autoloads polymode-autoloads proced-narrow-autoloads
>>> pulsar-autoloads pyvenv-autoloads rainbow-delimiters-autoloads
>>> ready-player-autoloads sass-mode-autoloads haml-mode-autoloads
>>> scss-mode-autoloads shrink-path-autoloads f-autoloads sly-autoloads
>>> smartparens-autoloads spinner-autoloads sudo-edit-autoloads
>>> tablist-autoloads tempel-collection-autoloads tempel-autoloads
>>> transmission-autoloads transpose-frame-autoloads treemacs-evil-autoloads
>>> evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads
>>> treemacs-magit-autoloads magit-autoloads pcase transient-autoloads
>>> magit-section-autoloads llama-autoloads treemacs-nerd-icons-autoloads
>>> treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
>>> hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
>>> avy-autoloads s-autoloads dash-autoloads nerd-icons-autoloads
>>> treepy-autoloads treesit-auto-autoloads typescript-mode-autoloads
>>> undo-tree-autoloads queue-autoloads vc-msg-autoloads popup-autoloads
>>> vdirel-autoloads helm-autoloads helm-core-autoloads async-autoloads
>>> org-vcard-autoloads verb-autoloads vertico-autoloads web-mode-autoloads
>>> wfnames-autoloads wgrep-autoloads info with-editor-autoloads
>>> xclip-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads
>>> yeetube-autoloads package browse-url url url-proxy url-privacy
>>> url-expand url-methods url-history url-cookie generate-lisp-file
>>> url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
>>> eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
>>> gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc
>>> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
>>> vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
>>> term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image
>>> regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
>>> prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
>>> timer select scroll-bar mouse jit-lock font-lock syntax font-core
>>> term/tty-colors frame minibuffer nadvice seq simple cl-generic
>>> indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
>>> tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
>>> romanian slovak czech european ethiopic indian cyrillic chinese
>>> composite emoji-zwj charscript charprop case-table epa-hook
>>> jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
>>> theme-loaddefs faces cus-face macroexp files window text-properties
>>> overlay sha1 md5 base64 format env code-pages mule custom widget keymap
>>> hashtable-print-readable backquote threads dbusbind inotify
>>> dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
>>> lcms2 multi-tty move-toolbar make-network-process native-compile emacs)
>>>
>>> Memory information:
>>> ((conses 16 748467 190575) (symbols 48 29921 19)
>>>  (strings 32 214960 6008) (string-bytes 1 8549689) (vectors 16 52457)
>>>  (vector-slots 8 1316547 238197) (floats 8 1275 55)
>>>  (intervals 56 4166 738) (buffers 992 14))
>>>
>>>
>>>
>>>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 14:24:02 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Rahul Juliato <rahuljuliato <at> gmail.com>
Cc: 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 09:23:27 -0500
[Message part 1 (text/plain, inline)]
If you don't use no-littering, or don't otherwise have a place to keep your
transient Emacs files, remove the "var" from the suggested path.

In early-init.el:

  ;; with a var transient dir
  (startup-redirect-eln-cache
   (expand-file-name (concat (file-name-as-directory "eln-cache")
                             (car (split-string system-configuration "-")))
                     (expand-file-name "var" user-emacs-directory)))
  ;; without
  (startup-redirect-eln-cache
   (expand-file-name (concat (file-name-as-directory "eln-cache")
                             (car (split-string system-configuration "-")))
                     user-emacs-directory))

On Wed, Feb 26, 2025 at 9:19 AM Ship Mints <shipmints <at> gmail.com> wrote:

> If you want to share the identical .emacs tree across architectures, the
> solution I suggested will work fine.  Try it and see.
>
> On Wed, Feb 26, 2025 at 9:16 AM Rahul Juliato <rahuljuliato <at> gmail.com>
> wrote:
>
>> I totally forgot to see this later. Thanks for pointing it Ship Mints, my
>> bad!
>>
>> I am curious if I could simply drop any `eln-cache` hacks from my user
>> config and rely solely on the new internals
>> (in my case:   ~/emacs/.emacs.d/eln-cache/30.1-a9997e26).
>>
>>
>> Em qua., 26 de fev. de 2025 às 11:08, Ship Mints <shipmints <at> gmail.com>
>> escreveu:
>>
>>> It should be sufficient to differentiate by architecture, not by host.
>>> 'comp-native-version-dir' is used internally by Emacs and I don't think you
>>> need to reference it.
>>>
>>> I think you asked this on reddit and seemed satisfied with this response
>>> https://www.reddit.com/r/emacs/comments/1hgjra6/comment/m3i486t/ which
>>> seems to suffice for your use case.
>>>
>>> -Stephane
>>>
>>> On Wed, Feb 26, 2025 at 8:57 AM Rahul Martim Juliato <
>>> rahuljuliato <at> gmail.com> wrote:
>>>
>>>>
>>>> This is not a bug, more of a question.
>>>>
>>>> I noticed the addition of `comp-native-version-dir' and found it nice
>>>> to be there.
>>>>
>>>> I currently have a workflow where I use the same (but not at the same
>>>> time) emacs config from a network folder for both macos (arm
>>>> architecture) and debian (x64).
>>>>
>>>> In my config I manually set the name of the folders `eln-cache` to be
>>>> something like `eln-cache-machine1` and `eln-cache-machine2`.
>>>>
>>>> Since 30.1 became released, the `comp-native-version-dir' is added to
>>>> organize the subfolder.
>>>>
>>>> Does it create this magic number taking in consideration also the
>>>> machine architecture? If not, could we make
>>>> distinctions between architectures when creating the sub-folders?
>>>>
>>>> If I use the same pre-compiled binaries, will this number be the same on
>>>> both machines?
>>>>
>>>> I tried to collect some of this info on #emacs <at> Libera.Chat, confusion
>>>> was everywhere, we couldn't conclude anything. Could Emacs maintainers
>>>> provide us with a little bit more info or where to find it?
>>>>
>>>> Thanks!
>>>>
>>>>
>>>>
>>>>
>>>> In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
>>>>  cairo version 1.16.0) of 2025-02-24 built on debian
>>>> System Description: Debian GNU/Linux 12 (bookworm)
>>>>
>>>> Configured using:
>>>>  'configure --with-native-compilation=aot --with-tree-sitter --with-gif
>>>>  --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick
>>>>  --with-pgtk --with-mailutils'
>>>>
>>>> Configured features:
>>>> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
>>>> IMAGEMAGICK JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
>>>> NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
>>>> THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB
>>>>
>>>> Important settings:
>>>>   value of $LANG: en_US.UTF-8
>>>>   locale-coding-system: utf-8-unix
>>>>
>>>> Major mode: Dashboard
>>>>
>>>> Minor modes in effect:
>>>>   emms-mode-line-mode: t
>>>>   emms-playing-time-display-mode: t
>>>>   emms-playing-time-mode: t
>>>>   diff-hl-margin-mode: t
>>>>   diff-hl-flydiff-mode: t
>>>>   global-diff-hl-mode: t
>>>>   treemacs-project-follow-mode: t
>>>>   treemacs-filewatch-mode: t
>>>>   treemacs-follow-mode: t
>>>>   treemacs-git-mode: t
>>>>   treemacs-fringe-indicator-mode: t
>>>>   recentf-mode: t
>>>>   which-key-mode: t
>>>>   global-treesit-auto-mode: t
>>>>   vertico-mode: t
>>>>   global-evil-collection-unimpaired-mode: t
>>>>   evil-collection-unimpaired-mode: t
>>>>   global-evil-matchit-mode: t
>>>>   evil-matchit-mode: t
>>>>   global-evil-surround-mode: t
>>>>   evil-surround-mode: t
>>>>   evil-mode: t
>>>>   evil-local-mode: t
>>>>   pulsar-global-mode: t
>>>>   pulsar-mode: t
>>>>   global-undo-tree-mode: t
>>>>   undo-tree-mode: t
>>>>   async-bytecomp-package-mode: t
>>>>   persp-mode-project-bridge-mode: t
>>>>   persp-mode: t
>>>>   global-ligature-mode: t
>>>>   ligature-mode: t
>>>>   nerd-icons-completion-mode: t
>>>>   marginalia-mode: t
>>>>   corfu-popupinfo-mode: t
>>>>   global-corfu-mode: t
>>>>   corfu-mode: t
>>>>   override-global-mode: t
>>>>   xterm-mouse-mode: t
>>>>   winner-mode: t
>>>>   savehist-mode: t
>>>>   save-place-mode: t
>>>>   pixel-scroll-precision-mode: t
>>>>   global-auto-revert-mode: t
>>>>   delete-selection-mode: t
>>>>   global-eldoc-mode: t
>>>>   show-paren-mode: t
>>>>   electric-indent-mode: t
>>>>   mouse-wheel-mode: t
>>>>   file-name-shadow-mode: t
>>>>   global-font-lock-mode: t
>>>>   font-lock-mode: t
>>>>   minibuffer-regexp-mode: t
>>>>   buffer-read-only: t
>>>>   column-number-mode: t
>>>>   line-number-mode: t
>>>>   transient-mark-mode: t
>>>>   auto-composition-mode: t
>>>>   auto-encryption-mode: t
>>>>   auto-compression-mode: t
>>>>
>>>> Load-path shadows:
>>>> /home/rmj/.emacs.d/elpa/transient-20250222.1912/transient hides
>>>> /usr/local/share/emacs/30.1/lisp/transient
>>>> /home/rmj/.emacs.d/elpa/modus-themes-20250220.647/theme-loaddefs hides
>>>> /usr/local/share/emacs/30.1/lisp/theme-loaddefs
>>>>
>>>> Features:
>>>> (shadow mail-extr emacsbug help-fns radix-tree evil-collection-emms
>>>> emms-idapi-browser emms-idapi emms-idapi-musicbrainz emms-mpris dbus
>>>> emms-librefm-stream xml emms-librefm-scrobbler emms-playlist-limit
>>>> emms-i18n emms-history emms-score emms-stream-info
>>>> emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
>>>> emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
>>>> emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
>>>> emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams
>>>> emms-show-all emms-tag-editor format-spec emms-tag-tracktag emms-mark
>>>> emms-mode-line emms-cache emms-info-native emms-info-native-spc
>>>> emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus
>>>> emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool
>>>> emms-info-tinytag emms-info-metaflac emms-info-opusinfo
>>>> emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
>>>> emms-player-mpv emms-playing-time emms-info emms-later-do
>>>> emms-player-mplayer emms-player-simple emms-source-playlist
>>>> emms-source-file locate emms-setup emms emms-compat
>>>> evil-collection-wgrep wgrep evil-collection-diff-hl diff-hl-margin
>>>> diff-hl-dired diff-hl-flydiff diff-hl evil-collection-log-view log-view
>>>> evil-collection-vc-dir vc-dir ewoc evil-collection-log-edit log-edit
>>>> message sendmail yank-media puny evil-collection-dired nerd-icons-dired
>>>> dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived
>>>> epg rfc6068 epg-config gnus-util time-date 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 vc
>>>> vc-dispatcher evil-collection-diff-mode diff-mode track-changes
>>>> orderless cursor-sensor treemacs-nerd-icons treemacs-evil
>>>> treemacs-project-follow-mode 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 treemacs-faces treemacs-icons treemacs-scope
>>>> treemacs-themes treemacs-core-utils pfuture inline hl-line ht
>>>> treemacs-logging treemacs-customization treemacs-macros s dash
>>>> evil-collection-dashboard dashboard dashboard-widgets mule-util ffap
>>>> private recentf tree-widget evil-collection-which-key which-key
>>>> treesit-auto treesit evil-collection-vertico vertico
>>>> evil-collection-unimpaired evil-collection-tabulated-list
>>>> evil-collection-tab-bar evil-collection-so-long evil-collection-simple
>>>> evil-collection-replace evil-collection-process-menu
>>>> evil-collection-package-menu evil-collection-minibuffer
>>>> evil-collection-kmacro evil-collection-info evil-collection-indent
>>>> evil-collection-ibuffer evil-collection-help evil-collection-grep
>>>> evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom
>>>> evil-collection-corfu evil-collection-compile evil-collection-comint
>>>> evil-collection-buff-menu evil-matchit evil-matchit-evil-setup
>>>> evil-matchit-sdk semantic/lex semantic/fw mode-local find-func
>>>> evil-surround evil-collection annalist evil evil-integration evil-maps
>>>> evil-commands reveal evil-jumps evil-command-window evil-types
>>>> evil-search evil-ex evil-macros evil-repeat evil-states evil-core
>>>> evil-common thingatpt rect evil-vars edmacro kmacro pulsar pulse color
>>>> undo-tree diff queue async-bytecomp async persp-mode-project-bridge
>>>> persp-mode ligature lemacs-init nerd-icons-ibuffer nerd-icons-completion
>>>> nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
>>>> nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
>>>> nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
>>>> nerd-icons-data-powerline nerd-icons-data-octicon
>>>> nerd-icons-data-pomicon nerd-icons-data-ipsicon ibuffer-project project
>>>> ibuf-ext ibuffer ibuffer-loaddefs comp comp-cstr cl-extra help-mode
>>>> warnings comp-run comp-common rx flymake-eslint marginalia
>>>> corfu-popupinfo corfu cape compat server pinentry
>>>> modus-vivendi-tinted-theme modus-themes cus-edit pp wid-edit time
>>>> auth-source-pass bind-key xt-mouse winner savehist saveplace
>>>> pixel-scroll cua-base autorevert filenotify desktop frameset so-long
>>>> delsel grep compile text-property-search comint ansi-osc ansi-color ring
>>>> cus-load 0x0-autoloads add-node-modules-path-autoloads
>>>> apheleia-autoloads easy-mmode breadcrumb-autoloads cape-autoloads
>>>> catppuccin-theme-autoloads colorful-mode-autoloads corfu-autoloads
>>>> dashboard-autoloads diff-hl-autoloads dired-subtree-autoloads
>>>> dired-hacks-utils-autoloads diredfl-autoloads docker-autoloads
>>>> dockerfile-mode-autoloads doom-modeline-autoloads dotenv-mode-autoloads
>>>> eat-autoloads eldoc-box-autoloads elfeed-tube-mpv-autoloads
>>>> elfeed-tube-autoloads aio-autoloads elfeed-autoloads ellama-autoloads
>>>> embark-consult-autoloads consult-autoloads embark-autoloads
>>>> emms-autoloads erc-hl-nicks-autoloads
>>>> eshell-syntax-highlighting-autoloads eshell-z-autoloads
>>>> evil-collection-autoloads annalist-autoloads evil-matchit-autoloads
>>>> evil-surround-autoloads exec-path-from-shell-autoloads
>>>> expand-region-autoloads flymake-eslint-autoloads forge-autoloads
>>>> closql-autoloads emacsql-autoloads geiser-guile-autoloads
>>>> geiser-autoloads gh-md-autoloads ghub-autoloads
>>>> git-timemachine-autoloads handlebars-mode-autoloads hl-todo-autoloads
>>>> ibuffer-project-autoloads indent-guide-autoloads js-pkg-mode-autoloads
>>>> khalel-autoloads kkp-autoloads ligature-autoloads llm-autoloads
>>>> lsp-tailwindcss-autoloads lsp-mode-autoloads magit-stats-autoloads
>>>> marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads
>>>> mpv-autoloads nerd-icons-completion-autoloads nerd-icons-corfu-autoloads
>>>> nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads
>>>> olivetti-autoloads orderless-autoloads org-modern-autoloads
>>>> org-ros-autoloads package-lint-autoloads
>>>> persp-mode-project-bridge-autoloads persp-mode-autoloads
>>>> pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads
>>>> plz-autoloads polymode-autoloads proced-narrow-autoloads
>>>> pulsar-autoloads pyvenv-autoloads rainbow-delimiters-autoloads
>>>> ready-player-autoloads sass-mode-autoloads haml-mode-autoloads
>>>> scss-mode-autoloads shrink-path-autoloads f-autoloads sly-autoloads
>>>> smartparens-autoloads spinner-autoloads sudo-edit-autoloads
>>>> tablist-autoloads tempel-collection-autoloads tempel-autoloads
>>>> transmission-autoloads transpose-frame-autoloads treemacs-evil-autoloads
>>>> evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads
>>>> treemacs-magit-autoloads magit-autoloads pcase transient-autoloads
>>>> magit-section-autoloads llama-autoloads treemacs-nerd-icons-autoloads
>>>> treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
>>>> hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
>>>> avy-autoloads s-autoloads dash-autoloads nerd-icons-autoloads
>>>> treepy-autoloads treesit-auto-autoloads typescript-mode-autoloads
>>>> undo-tree-autoloads queue-autoloads vc-msg-autoloads popup-autoloads
>>>> vdirel-autoloads helm-autoloads helm-core-autoloads async-autoloads
>>>> org-vcard-autoloads verb-autoloads vertico-autoloads web-mode-autoloads
>>>> wfnames-autoloads wgrep-autoloads info with-editor-autoloads
>>>> xclip-autoloads xterm-color-autoloads yaml-autoloads yaml-mode-autoloads
>>>> yeetube-autoloads package browse-url url url-proxy url-privacy
>>>> url-expand url-methods url-history url-cookie generate-lisp-file
>>>> url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
>>>> eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
>>>> gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc
>>>> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
>>>> vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
>>>> term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image
>>>> regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
>>>> prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
>>>> timer select scroll-bar mouse jit-lock font-lock syntax font-core
>>>> term/tty-colors frame minibuffer nadvice seq simple cl-generic
>>>> indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
>>>> tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
>>>> romanian slovak czech european ethiopic indian cyrillic chinese
>>>> composite emoji-zwj charscript charprop case-table epa-hook
>>>> jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
>>>> theme-loaddefs faces cus-face macroexp files window text-properties
>>>> overlay sha1 md5 base64 format env code-pages mule custom widget keymap
>>>> hashtable-print-readable backquote threads dbusbind inotify
>>>> dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
>>>> lcms2 multi-tty move-toolbar make-network-process native-compile emacs)
>>>>
>>>> Memory information:
>>>> ((conses 16 748467 190575) (symbols 48 29921 19)
>>>>  (strings 32 214960 6008) (string-bytes 1 8549689) (vectors 16 52457)
>>>>  (vector-slots 8 1316547 238197) (floats 8 1275 55)
>>>>  (intervals 56 4166 738) (buffers 992 14))
>>>>
>>>>
>>>>
>>>>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 14:33:02 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Rahul Juliato <rahuljuliato <at> gmail.com>
Cc: 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 09:31:44 -0500
[Message part 1 (text/plain, inline)]
One more detail, the internal variable comp-abi-hash, which from which
comp-native-version-dir is derived, should be unique even with the same
Emacs source code compiled across architectures so I don't think you need
to differentiate by architecture either.  I do it for my own preferences,
as it's easier to clear out the ones I want to clear by eye, vs running
/usr/bin/file on the files to see which are which.

On Wed, Feb 26, 2025 at 9:23 AM Ship Mints <shipmints <at> gmail.com> wrote:

> If you don't use no-littering, or don't otherwise have a place to keep
> your transient Emacs files, remove the "var" from the suggested path.
>
> In early-init.el:
>
>   ;; with a var transient dir
>   (startup-redirect-eln-cache
>    (expand-file-name (concat (file-name-as-directory "eln-cache")
>                              (car (split-string system-configuration "-")))
>                      (expand-file-name "var" user-emacs-directory)))
>   ;; without
>   (startup-redirect-eln-cache
>    (expand-file-name (concat (file-name-as-directory "eln-cache")
>                              (car (split-string system-configuration "-")))
>                      user-emacs-directory))
>
> On Wed, Feb 26, 2025 at 9:19 AM Ship Mints <shipmints <at> gmail.com> wrote:
>
>> If you want to share the identical .emacs tree across architectures, the
>> solution I suggested will work fine.  Try it and see.
>>
>> On Wed, Feb 26, 2025 at 9:16 AM Rahul Juliato <rahuljuliato <at> gmail.com>
>> wrote:
>>
>>> I totally forgot to see this later. Thanks for pointing it Ship Mints,
>>> my bad!
>>>
>>> I am curious if I could simply drop any `eln-cache` hacks from my user
>>> config and rely solely on the new internals
>>> (in my case:   ~/emacs/.emacs.d/eln-cache/30.1-a9997e26).
>>>
>>>
>>> Em qua., 26 de fev. de 2025 às 11:08, Ship Mints <shipmints <at> gmail.com>
>>> escreveu:
>>>
>>>> It should be sufficient to differentiate by architecture, not by host.
>>>> 'comp-native-version-dir' is used internally by Emacs and I don't think you
>>>> need to reference it.
>>>>
>>>> I think you asked this on reddit and seemed satisfied with this
>>>> response
>>>> https://www.reddit.com/r/emacs/comments/1hgjra6/comment/m3i486t/ which
>>>> seems to suffice for your use case.
>>>>
>>>> -Stephane
>>>>
>>>> On Wed, Feb 26, 2025 at 8:57 AM Rahul Martim Juliato <
>>>> rahuljuliato <at> gmail.com> wrote:
>>>>
>>>>>
>>>>> This is not a bug, more of a question.
>>>>>
>>>>> I noticed the addition of `comp-native-version-dir' and found it nice
>>>>> to be there.
>>>>>
>>>>> I currently have a workflow where I use the same (but not at the same
>>>>> time) emacs config from a network folder for both macos (arm
>>>>> architecture) and debian (x64).
>>>>>
>>>>> In my config I manually set the name of the folders `eln-cache` to be
>>>>> something like `eln-cache-machine1` and `eln-cache-machine2`.
>>>>>
>>>>> Since 30.1 became released, the `comp-native-version-dir' is added to
>>>>> organize the subfolder.
>>>>>
>>>>> Does it create this magic number taking in consideration also the
>>>>> machine architecture? If not, could we make
>>>>> distinctions between architectures when creating the sub-folders?
>>>>>
>>>>> If I use the same pre-compiled binaries, will this number be the same
>>>>> on
>>>>> both machines?
>>>>>
>>>>> I tried to collect some of this info on #emacs <at> Libera.Chat, confusion
>>>>> was everywhere, we couldn't conclude anything. Could Emacs maintainers
>>>>> provide us with a little bit more info or where to find it?
>>>>>
>>>>> Thanks!
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
>>>>>  cairo version 1.16.0) of 2025-02-24 built on debian
>>>>> System Description: Debian GNU/Linux 12 (bookworm)
>>>>>
>>>>> Configured using:
>>>>>  'configure --with-native-compilation=aot --with-tree-sitter --with-gif
>>>>>  --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick
>>>>>  --with-pgtk --with-mailutils'
>>>>>
>>>>> Configured features:
>>>>> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
>>>>> IMAGEMAGICK JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
>>>>> NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
>>>>> THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB
>>>>>
>>>>> Important settings:
>>>>>   value of $LANG: en_US.UTF-8
>>>>>   locale-coding-system: utf-8-unix
>>>>>
>>>>> Major mode: Dashboard
>>>>>
>>>>> Minor modes in effect:
>>>>>   emms-mode-line-mode: t
>>>>>   emms-playing-time-display-mode: t
>>>>>   emms-playing-time-mode: t
>>>>>   diff-hl-margin-mode: t
>>>>>   diff-hl-flydiff-mode: t
>>>>>   global-diff-hl-mode: t
>>>>>   treemacs-project-follow-mode: t
>>>>>   treemacs-filewatch-mode: t
>>>>>   treemacs-follow-mode: t
>>>>>   treemacs-git-mode: t
>>>>>   treemacs-fringe-indicator-mode: t
>>>>>   recentf-mode: t
>>>>>   which-key-mode: t
>>>>>   global-treesit-auto-mode: t
>>>>>   vertico-mode: t
>>>>>   global-evil-collection-unimpaired-mode: t
>>>>>   evil-collection-unimpaired-mode: t
>>>>>   global-evil-matchit-mode: t
>>>>>   evil-matchit-mode: t
>>>>>   global-evil-surround-mode: t
>>>>>   evil-surround-mode: t
>>>>>   evil-mode: t
>>>>>   evil-local-mode: t
>>>>>   pulsar-global-mode: t
>>>>>   pulsar-mode: t
>>>>>   global-undo-tree-mode: t
>>>>>   undo-tree-mode: t
>>>>>   async-bytecomp-package-mode: t
>>>>>   persp-mode-project-bridge-mode: t
>>>>>   persp-mode: t
>>>>>   global-ligature-mode: t
>>>>>   ligature-mode: t
>>>>>   nerd-icons-completion-mode: t
>>>>>   marginalia-mode: t
>>>>>   corfu-popupinfo-mode: t
>>>>>   global-corfu-mode: t
>>>>>   corfu-mode: t
>>>>>   override-global-mode: t
>>>>>   xterm-mouse-mode: t
>>>>>   winner-mode: t
>>>>>   savehist-mode: t
>>>>>   save-place-mode: t
>>>>>   pixel-scroll-precision-mode: t
>>>>>   global-auto-revert-mode: t
>>>>>   delete-selection-mode: t
>>>>>   global-eldoc-mode: t
>>>>>   show-paren-mode: t
>>>>>   electric-indent-mode: t
>>>>>   mouse-wheel-mode: t
>>>>>   file-name-shadow-mode: t
>>>>>   global-font-lock-mode: t
>>>>>   font-lock-mode: t
>>>>>   minibuffer-regexp-mode: t
>>>>>   buffer-read-only: t
>>>>>   column-number-mode: t
>>>>>   line-number-mode: t
>>>>>   transient-mark-mode: t
>>>>>   auto-composition-mode: t
>>>>>   auto-encryption-mode: t
>>>>>   auto-compression-mode: t
>>>>>
>>>>> Load-path shadows:
>>>>> /home/rmj/.emacs.d/elpa/transient-20250222.1912/transient hides
>>>>> /usr/local/share/emacs/30.1/lisp/transient
>>>>> /home/rmj/.emacs.d/elpa/modus-themes-20250220.647/theme-loaddefs hides
>>>>> /usr/local/share/emacs/30.1/lisp/theme-loaddefs
>>>>>
>>>>> Features:
>>>>> (shadow mail-extr emacsbug help-fns radix-tree evil-collection-emms
>>>>> emms-idapi-browser emms-idapi emms-idapi-musicbrainz emms-mpris dbus
>>>>> emms-librefm-stream xml emms-librefm-scrobbler emms-playlist-limit
>>>>> emms-i18n emms-history emms-score emms-stream-info
>>>>> emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
>>>>> emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
>>>>> emms-volume-pulse emms-volume-amixer emms-playlist-sort
>>>>> emms-last-played
>>>>> emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams
>>>>> emms-show-all emms-tag-editor format-spec emms-tag-tracktag emms-mark
>>>>> emms-mode-line emms-cache emms-info-native emms-info-native-spc
>>>>> emms-info-native-mp3 emms-info-native-ogg emms-info-native-opus
>>>>> emms-info-native-flac emms-info-native-vorbis bindat emms-info-exiftool
>>>>> emms-info-tinytag emms-info-metaflac emms-info-opusinfo
>>>>> emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
>>>>> emms-player-mpv emms-playing-time emms-info emms-later-do
>>>>> emms-player-mplayer emms-player-simple emms-source-playlist
>>>>> emms-source-file locate emms-setup emms emms-compat
>>>>> evil-collection-wgrep wgrep evil-collection-diff-hl diff-hl-margin
>>>>> diff-hl-dired diff-hl-flydiff diff-hl evil-collection-log-view log-view
>>>>> evil-collection-vc-dir vc-dir ewoc evil-collection-log-edit log-edit
>>>>> message sendmail yank-media puny evil-collection-dired nerd-icons-dired
>>>>> dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived
>>>>> epg rfc6068 epg-config gnus-util time-date 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 vc
>>>>> vc-dispatcher evil-collection-diff-mode diff-mode track-changes
>>>>> orderless cursor-sensor treemacs-nerd-icons treemacs-evil
>>>>> treemacs-project-follow-mode 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 treemacs-faces treemacs-icons treemacs-scope
>>>>> treemacs-themes treemacs-core-utils pfuture inline hl-line ht
>>>>> treemacs-logging treemacs-customization treemacs-macros s dash
>>>>> evil-collection-dashboard dashboard dashboard-widgets mule-util ffap
>>>>> private recentf tree-widget evil-collection-which-key which-key
>>>>> treesit-auto treesit evil-collection-vertico vertico
>>>>> evil-collection-unimpaired evil-collection-tabulated-list
>>>>> evil-collection-tab-bar evil-collection-so-long evil-collection-simple
>>>>> evil-collection-replace evil-collection-process-menu
>>>>> evil-collection-package-menu evil-collection-minibuffer
>>>>> evil-collection-kmacro evil-collection-info evil-collection-indent
>>>>> evil-collection-ibuffer evil-collection-help evil-collection-grep
>>>>> evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom
>>>>> evil-collection-corfu evil-collection-compile evil-collection-comint
>>>>> evil-collection-buff-menu evil-matchit evil-matchit-evil-setup
>>>>> evil-matchit-sdk semantic/lex semantic/fw mode-local find-func
>>>>> evil-surround evil-collection annalist evil evil-integration evil-maps
>>>>> evil-commands reveal evil-jumps evil-command-window evil-types
>>>>> evil-search evil-ex evil-macros evil-repeat evil-states evil-core
>>>>> evil-common thingatpt rect evil-vars edmacro kmacro pulsar pulse color
>>>>> undo-tree diff queue async-bytecomp async persp-mode-project-bridge
>>>>> persp-mode ligature lemacs-init nerd-icons-ibuffer
>>>>> nerd-icons-completion
>>>>> nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
>>>>> nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
>>>>> nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
>>>>> nerd-icons-data-powerline nerd-icons-data-octicon
>>>>> nerd-icons-data-pomicon nerd-icons-data-ipsicon ibuffer-project project
>>>>> ibuf-ext ibuffer ibuffer-loaddefs comp comp-cstr cl-extra help-mode
>>>>> warnings comp-run comp-common rx flymake-eslint marginalia
>>>>> corfu-popupinfo corfu cape compat server pinentry
>>>>> modus-vivendi-tinted-theme modus-themes cus-edit pp wid-edit time
>>>>> auth-source-pass bind-key xt-mouse winner savehist saveplace
>>>>> pixel-scroll cua-base autorevert filenotify desktop frameset so-long
>>>>> delsel grep compile text-property-search comint ansi-osc ansi-color
>>>>> ring
>>>>> cus-load 0x0-autoloads add-node-modules-path-autoloads
>>>>> apheleia-autoloads easy-mmode breadcrumb-autoloads cape-autoloads
>>>>> catppuccin-theme-autoloads colorful-mode-autoloads corfu-autoloads
>>>>> dashboard-autoloads diff-hl-autoloads dired-subtree-autoloads
>>>>> dired-hacks-utils-autoloads diredfl-autoloads docker-autoloads
>>>>> dockerfile-mode-autoloads doom-modeline-autoloads dotenv-mode-autoloads
>>>>> eat-autoloads eldoc-box-autoloads elfeed-tube-mpv-autoloads
>>>>> elfeed-tube-autoloads aio-autoloads elfeed-autoloads ellama-autoloads
>>>>> embark-consult-autoloads consult-autoloads embark-autoloads
>>>>> emms-autoloads erc-hl-nicks-autoloads
>>>>> eshell-syntax-highlighting-autoloads eshell-z-autoloads
>>>>> evil-collection-autoloads annalist-autoloads evil-matchit-autoloads
>>>>> evil-surround-autoloads exec-path-from-shell-autoloads
>>>>> expand-region-autoloads flymake-eslint-autoloads forge-autoloads
>>>>> closql-autoloads emacsql-autoloads geiser-guile-autoloads
>>>>> geiser-autoloads gh-md-autoloads ghub-autoloads
>>>>> git-timemachine-autoloads handlebars-mode-autoloads hl-todo-autoloads
>>>>> ibuffer-project-autoloads indent-guide-autoloads js-pkg-mode-autoloads
>>>>> khalel-autoloads kkp-autoloads ligature-autoloads llm-autoloads
>>>>> lsp-tailwindcss-autoloads lsp-mode-autoloads magit-stats-autoloads
>>>>> marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads
>>>>> mpv-autoloads nerd-icons-completion-autoloads
>>>>> nerd-icons-corfu-autoloads
>>>>> nerd-icons-dired-autoloads nerd-icons-ibuffer-autoloads
>>>>> olivetti-autoloads orderless-autoloads org-modern-autoloads
>>>>> org-ros-autoloads package-lint-autoloads
>>>>> persp-mode-project-bridge-autoloads persp-mode-autoloads
>>>>> pinentry-autoloads plz-event-source-autoloads plz-media-type-autoloads
>>>>> plz-autoloads polymode-autoloads proced-narrow-autoloads
>>>>> pulsar-autoloads pyvenv-autoloads rainbow-delimiters-autoloads
>>>>> ready-player-autoloads sass-mode-autoloads haml-mode-autoloads
>>>>> scss-mode-autoloads shrink-path-autoloads f-autoloads sly-autoloads
>>>>> smartparens-autoloads spinner-autoloads sudo-edit-autoloads
>>>>> tablist-autoloads tempel-collection-autoloads tempel-autoloads
>>>>> transmission-autoloads transpose-frame-autoloads
>>>>> treemacs-evil-autoloads
>>>>> evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads
>>>>> treemacs-magit-autoloads magit-autoloads pcase transient-autoloads
>>>>> magit-section-autoloads llama-autoloads treemacs-nerd-icons-autoloads
>>>>> treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
>>>>> hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
>>>>> avy-autoloads s-autoloads dash-autoloads nerd-icons-autoloads
>>>>> treepy-autoloads treesit-auto-autoloads typescript-mode-autoloads
>>>>> undo-tree-autoloads queue-autoloads vc-msg-autoloads popup-autoloads
>>>>> vdirel-autoloads helm-autoloads helm-core-autoloads async-autoloads
>>>>> org-vcard-autoloads verb-autoloads vertico-autoloads web-mode-autoloads
>>>>> wfnames-autoloads wgrep-autoloads info with-editor-autoloads
>>>>> xclip-autoloads xterm-color-autoloads yaml-autoloads
>>>>> yaml-mode-autoloads
>>>>> yeetube-autoloads package browse-url url url-proxy url-privacy
>>>>> url-expand url-methods url-history url-cookie generate-lisp-file
>>>>> url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
>>>>> eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
>>>>> gv bytecomp byte-compile url-vars cl-loaddefs cl-lib early-init rmc
>>>>> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
>>>>> vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
>>>>> term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image
>>>>> regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
>>>>> prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
>>>>> timer select scroll-bar mouse jit-lock font-lock syntax font-core
>>>>> term/tty-colors frame minibuffer nadvice seq simple cl-generic
>>>>> indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
>>>>> tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
>>>>> romanian slovak czech european ethiopic indian cyrillic chinese
>>>>> composite emoji-zwj charscript charprop case-table epa-hook
>>>>> jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
>>>>> theme-loaddefs faces cus-face macroexp files window text-properties
>>>>> overlay sha1 md5 base64 format env code-pages mule custom widget keymap
>>>>> hashtable-print-readable backquote threads dbusbind inotify
>>>>> dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
>>>>> lcms2 multi-tty move-toolbar make-network-process native-compile emacs)
>>>>>
>>>>> Memory information:
>>>>> ((conses 16 748467 190575) (symbols 48 29921 19)
>>>>>  (strings 32 214960 6008) (string-bytes 1 8549689) (vectors 16 52457)
>>>>>  (vector-slots 8 1316547 238197) (floats 8 1275 55)
>>>>>  (intervals 56 4166 738) (buffers 992 14))
>>>>>
>>>>>
>>>>>
>>>>>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 15:52:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Rahul Juliato <rahuljuliato <at> gmail.com>
Cc: shipmints <at> gmail.com, 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 17:51:08 +0200
> Cc: 76586 <at> debbugs.gnu.org
> From: Rahul Juliato <rahuljuliato <at> gmail.com>
> Date: Wed, 26 Feb 2025 11:16:23 -0300
> 
> I am curious if I could simply drop any `eln-cache` hacks from my user
> config and rely solely on the new internals 
> (in my case:   ~/emacs/.emacs.d/eln-cache/30.1-a9997e26).

You shouldn't need any hacks, since the "30.1-a9997e26" part will be
different for different architectures (or at least that's what I
expect).  So you should be able to share the same eln-cache directory
between different systems and architectures.

Let me know if that doesn't work.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 15:54:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ship Mints <shipmints <at> gmail.com>,
 Andrea Corallo <acorallo <at> gnu.org>
Cc: rahuljuliato <at> gmail.com, 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 17:53:18 +0200
> Cc: 76586 <at> debbugs.gnu.org
> From: Ship Mints <shipmints <at> gmail.com>
> Date: Wed, 26 Feb 2025 09:19:07 -0500
> 
> If you want to share the identical .emacs tree across architectures, the solution I suggested will work fine. 
> Try it and see.

As I wrote earlier, I don't understand why any tricks are required at
all.  AFAIK, buildfs on different machines will have a different hash
in the "30.1-a9997e26" part of the directory, so the *.eln files will
be separate (as they should be).

Andrea, am I missing something?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 16:31:01 GMT) Full text and rfc822 format available.

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

From: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: shipmints <at> gmail.com, 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 13:30:17 -0300
Right, thanks for the clarification Stephene and Eli!


I'll start migrating my old workflow, having the same 30.1 version on
both machines and give this a try. This feature is indeed VERY useful!
One more killer feature of Emacs 30!


One (a bit crazy) workflow I have will break with this though.


Since compiling .eln is a bit expensive on the cpu side, I used to have
this `by project` docker images which I included Emacs, so I could
quickly ssh into it, rclone my config from network and start working
there with 'pre-compiled' .eln of that architecture in a much less
capable machine (container), and thus, avoiding recompile time.


If I understand it correctly, eln-cache is now  'by machine' and if I'd
like to pre-populate the `eln-cache/emacs-30.1-machinehash` I'd have to
use the `comp-abi-hash` to assembly my new eln-cache path and clone my
.eln into there.


I do this so I can quickly have lsp support while editing inside the
project machine or a clone of it, doing so via tramp (with lsp server on
the remote) is (understandable) slower.


But as I said, it is a bit crazy of a workflow and 99.9999% of the time,
the implemented solution is the best one.


Do I wish a user option to override `comp-abi-hash` would be available
to the lisp user? Yes. Do I think exposing it is a good idea? No. For
that I believe you guys know better :)


Thanks!




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 16:37:02 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 11:36:29 -0500
[Message part 1 (text/plain, inline)]
On Wed, Feb 26, 2025 at 11:30 AM Rahul Martim Juliato <
rahuljuliato <at> gmail.com> wrote:

>
> If I understand it correctly, eln-cache is now  'by machine' and if I'd
> like to pre-populate the `eln-cache/emacs-30.1-machinehash` I'd have to
> use the `comp-abi-hash` to assembly my new eln-cache path and clone my
> .eln into there.
>

native-comp-eln-load-path (as you may set via startup-redirect-eln-cache)
appends comp-abi-hash, which is specific to an Emacs build and that
includes architecture, compiler arguments, etc.  It is host independent.

Do I wish a user option to override `comp-abi-hash` would be available
> to the lisp user? Yes. Do I think exposing it is a good idea? No. For
> that I believe you guys know better :)
>

You do not want this.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 16:42:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
Cc: shipmints <at> gmail.com, 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 18:40:45 +0200
> From: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
> Cc: shipmints <at> gmail.com,  76586 <at> debbugs.gnu.org
> Date: Wed, 26 Feb 2025 13:30:17 -0300
> 
> Do I wish a user option to override `comp-abi-hash` would be available
> to the lisp user? Yes. Do I think exposing it is a good idea? No. For
> that I believe you guys know better :)

This is extremely UN-recommended!  The hashes in the directory and
file names of the *.eln files are designed to make sure, with high
probability, that you never load a .eln file which is incompatible
with the Emacs you are running, because doing so will almost
certainly cause a crash at some point.

So you are well advised not to do that, even if Emacs gives you enough
rope to hang yourself.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 16:44:02 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Rahul Martim Juliato <rahuljuliato <at> gmail.com>, 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 11:43:15 -0500
[Message part 1 (text/plain, inline)]
Further, if your Emacs is built with native libraries precompiled, Emacs
uses comp-abi-hash to find those libraries.  If you change it, you will not
be happy.

On Wed, Feb 26, 2025 at 11:41 AM Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
> > Cc: shipmints <at> gmail.com,  76586 <at> debbugs.gnu.org
> > Date: Wed, 26 Feb 2025 13:30:17 -0300
> >
> > Do I wish a user option to override `comp-abi-hash` would be available
> > to the lisp user? Yes. Do I think exposing it is a good idea? No. For
> > that I believe you guys know better :)
>
> This is extremely UN-recommended!  The hashes in the directory and
> file names of the *.eln files are designed to make sure, with high
> probability, that you never load a .eln file which is incompatible
> with the Emacs you are running, because doing so will almost
> certainly cause a crash at some point.
>
> So you are well advised not to do that, even if Emacs gives you enough
> rope to hang yourself.
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76586; Package emacs. (Wed, 26 Feb 2025 22:58:02 GMT) Full text and rfc822 format available.

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

From: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
To: Ship Mints <shipmints <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 76586 <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Wed, 26 Feb 2025 19:57:01 -0300
Eli Zaretskii <eliz <at> gnu.org> writes:

> Let me know if that doesn't work.

Just finished installing 30.1 on all my machines. I also removed my old
customization for renaming `eln-cache-[hostname]`, and everything is
working like a charm.

> So you are well advised not to do that, even if Emacs gives you enough
> rope to hang yourself.

This phrase definitely made my day. Haha!


Well, as far as I’m concerned, I consider this question very well answered.


Thanks again.

-- 

Rahul Martim Juliato




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Thu, 27 Feb 2025 08:17:02 GMT) Full text and rfc822 format available.

Notification sent to Rahul Martim Juliato <rahuljuliato <at> gmail.com>:
bug acknowledged by developer. (Thu, 27 Feb 2025 08:17:02 GMT) Full text and rfc822 format available.

Message #46 received at 76586-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
Cc: shipmints <at> gmail.com, 76586-done <at> debbugs.gnu.org
Subject: Re: bug#76586: 30.1; Question regarding eln-cache
Date: Thu, 27 Feb 2025 10:16:14 +0200
> From: Rahul Martim Juliato <rahuljuliato <at> gmail.com>
> Cc: Eli Zaretskii <eliz <at> gnu.org>, 76586 <at> debbugs.gnu.org
> Date: Wed, 26 Feb 2025 19:57:01 -0300
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > Let me know if that doesn't work.
> 
> Just finished installing 30.1 on all my machines. I also removed my old
> customization for renaming `eln-cache-[hostname]`, and everything is
> working like a charm.
> 
> > So you are well advised not to do that, even if Emacs gives you enough
> > rope to hang yourself.
> 
> This phrase definitely made my day. Haha!
> 
> 
> Well, as far as I’m concerned, I consider this question very well answered.

Thanks, I'm therefore closing this bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 27 Mar 2025 11:24:27 GMT) Full text and rfc822 format available.

This bug report was last modified 84 days ago.

Previous Next


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