Subject: bug#78939: 30.1.90; wishlist: separate storage location for safe-local-variable data

From: Christopher Howard <[email-masked]>
Date: Tue, 01 Jul 2025 14:39:50 -0800

Emacs has a sophisticated system for managing safe evaluation of file and directory local variables, as documented in 51.2.4.2 Safety of File Variables, which I appreciate. However, something that I find bothersome is that the permanently recorded data for safe and unsafe values is stored in the custom-set-variables code, which is stored in the init file or another file of your choice. This creates a quandary for me because I like to use the customization system, but I don't want my customized settings to change often or to be highly system or project specific. Using the safety system in a routine manner results in the custom-set-variables code (which I keep in the init file) being filled with pages and pages of (mostly safe) values, which feels awkward.

In my mind, these safe and unsafe values are more like cached data which should be kept in a separate file, which I don't need to look at ever. As a wishlist item, could a facility be integrated which allows such data to be stored in a completely separate file?

In GNU Emacs 30.1.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.43, cairo version 1.18.4) of 2025-06-23 built on theoden
Repository revision: a2bfce5d2a7d046a45c25364f3c69b3d8a776081
Repository branch: emacs-30
Windowing system distributor 'The X.Org Foundation', version 11.0.12401006
System Description: Guix System

Configured using:
 'configure --prefix=/home/christopher/local'

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

Important settings:
  value of $EMACSLOADPATH: /home/christopher/local/share/emacs/30.1.90/lisp
  value of $EMACSNATIVELOADPATH: /home/christopher/.guix-home/profile/lib/emacs/native-site-lisp:/home/christopher/.guix-home/profile/lib/emacs/native-site-lisp:/home/christopher/.guix-home/profile/lib/emacs/native-site-lisp:/home/christopher/.guix-home/profile/lib/emacs/native-site-lisp
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Info

Minor modes in effect:
  ready-player-mode: t
  repeat-mode: t
  pdf-occur-global-minor-mode: t
  engine-mode: t
  rcirc-track-minor-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  minibuffer-depth-indicate-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  isearch-fold-quotes-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/christopher/.emacs.d/elpa/helm-4.0.4/helm-packages hides /home/christopher/.emacs.d/elpa/helm-core-4.0.4/helm-packages
/home/christopher/.emacs.d/elpa/helm-4.0.4/helm-x-icons hides /home/christopher/.emacs.d/elpa/helm-core-4.0.4/helm-x-icons
/home/christopher/.emacs.d/elpa/magit-4.3.6/magit-dired hides /home/christopher/.emacs.d/elpa/magit-section-4.3.6/magit-dired
/home/christopher/.emacs.d/elpa/magit-4.3.6/magit-autorevert hides /home/christopher/.emacs.d/elpa/magit-section-4.3.6/magit-autorevert
/home/christopher/.emacs.d/elpa/transient-0.9.2/transient hides /home/christopher/local/share/emacs/30.1.90/lisp/transient

Features:
(shadow emacsbug fortran vc-hg vc-bzr apropos calc-yank tramp-cmds
wdired calc-embed ...)

Memory information:
((conses 16 4813246 531611) (symbols 48 61336 16)
 (strings 32 399993 91946) (string-bytes 1 78971958)
 (vectors 16 219636) (vector-slots 8 2817732 840987)
 (floats 8 7822 11910) (intervals 56 327806 10005) (buffers 992 229))

-- 
📛 Christopher Howard
🚀 gemini://gem.librehacker.com
🌐 http://gem.librehacker.com

בראשית ברא אלהים את השמים ואת הארץ