Subject: 28.0.50; macOS: Symbol’s value as variable is void: lock-file-name-transforms

From: Naofumi Yasufuku <[email-masked]>
Date: Sun, 11 Jul 2021 02:11:51 +0900

Precondition:
- Repository revision: 9ce6541ac9710933beca7f9944087fe4849d5ae9
- macOS
- $ mv ~/.emacs.d/eln-cache ~/.emacs.d/eln-cache.old

Emacs doesn't start due to the following error:
  $ ./src/emacs -Q
  Symbol’s value as variable is void: lock-file-name-transforms
  $

I've not seen such error under linux.  At least, this issue disappears
if make_lock_file_name() in src/filelock.c is reverted.

----
 src/filelock.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/filelock.c b/src/filelock.c
index 106633f584..052801a3e1 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -622,7 +622,10 @@ lock_if_free (lock_info_type *clasher, char *lfname)
 static Lisp_Object
 make_lock_file_name (Lisp_Object fn)
 {
-  return call1 (Qmake_lock_file_name, Fexpand_file_name (fn, Qnil));
+  Lisp_Object func = intern ("make-lock-file-name");
+  if (NILP (Fboundp (func)))
+    return Qnil;
+  return call1 (func, Fexpand_file_name (fn, Qnil));
 }
 
 /* lock_file locks file FN,
----

Regards,
--Naofumi

In GNU Emacs 28.0.50 (build 2, x86_64-apple-darwin20.5.0, NS appkit-2022.50 Version 11.4 (Build 20F71))
 of 2021-07-11 built on hyperion.local
Repository revision: 9ce6541ac9710933beca7f9944087fe4849d5ae9
Repository branch: HEAD
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.4

Configured using:
 'configure --prefix=/Users/naofumi/.local/emacs-head --with-mailutils
 --with-native-compilation --with-xwidgets --with-ns
 --disable-ns-self-contained'

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM
XWIDGETS ZLIB

Important settings:
  value of $LC_TIME: C
  value of $LANG: ja_JP.UTF-8
  locale-coding-system: utf-8-hfs

Major mode: Lisp Interaction

Minor modes in effect:
  company-statistics-mode: t
  global-company-mode: t
  company-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  doom-modeline-mode: t
  which-key-mode: t
  disable-mouse-global-mode: t
  key-chord-mode: t
  shell-dirtrack-mode: t
  projectile-mode: t
  global-git-gutter-mode: t
  ivy-mode: t
  amx-mode: t
  pyvenv-tracking-mode: t
  editorconfig-mode: t
  windmove-mode: t
  winner-mode: t
  global-so-long-mode: t
  global-whitespace-mode: t
  recentf-mode: t
  global-auto-revert-mode: t
  electric-pair-mode: t
  delete-selection-mode: t
  show-paren-mode: t
  savehist-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-history-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Users/naofumi/.emacs.d/elpa-28/cmake-mode-20210104.1831/cmake-mode hides /usr/local/share/emacs/site-lisp/cmake/cmake-mode
/Users/naofumi/.emacs.d/elpa-28/password-store-20200328.1214/password-store hides /usr/local/share/emacs/site-lisp/pass/password-store
/Users/naofumi/.emacs.d/elpa-28/transient-20210701.1116/transient hides /Users/naofumi/src/git.sv.gnu.org/emacs/lisp/transient

Features:
(shadow highlight-indent-guides editorconfig-core
editorconfig-core-handle editorconfig-fnmatch face-remap emacsbug
counsel xdg swiper server skk-cursor ccc skk-sticky skk-dcomp skk-comp
skk-look skk-server skk-study skk-hint skk-cus cus-edit pp cus-start
cus-load skk-emacs skk-macs skk-vars skk company-statistics
company-oddmuse company-keywords company-etags etags fileloop
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-capf company-cmake company-semantic
company-template company-bbdb company pcase yasnippet-snippets yasnippet
doom-modeline doom-modeline-segments doom-modeline-env
doom-modeline-core shrink-path f all-the-icons all-the-icons-faces
data-material data-weathericons data-octicons data-fileicons
data-faicons data-alltheicons tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp
doom-tomorrow-night-theme doom-themes doom-themes-base
base16-tomorrow-night-theme base16-theme vlf-setup which-key
disable-mouse key-chord shell-pop term shell ehelp win-switch
elscreen-gf elscreen projectile grep compile ibuf-ext ibuffer
ibuffer-loaddefs git-gutter ivy-xref ivy-migemo two-column ivy-hydra ivy
ivy-faces ivy-overlay colir color ace-link avy amx s migemo
smart-jump-lisp-mode smart-jump-elisp-mode smart-jump xref project hydra
lv pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util editorconfig mu4e-maildirs-extension dash
gnus-dired mu4e desktop frameset mu4e-org ox-gfm ox-md ox-odt rng-loc
rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii
ox-publish ox org-element avl-tree generator org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint
org-pcomplete pcomplete org-list org-faces org-entities noutline outline
easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-table ol
org-keys org-compat org-macs org-loaddefs format-spec find-func
mu4e-main mu4e-view cal-menu calendar cal-loaddefs thingatpt comint
ansi-color mu4e-headers mu4e-compose mu4e-context mu4e-draft
mu4e-actions ido rfc2368 smtpmail sendmail mu4e-mark mu4e-message
flow-fill mu4e-proc mu4e-utils doc-view jka-compr image-mode exif
mu4e-lists hl-line mu4e-vars message rmc puny dired-x dired comp
comp-cstr warnings rx cl-extra help-mode dired-loaddefs rfc822 mml
mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs
text-property-search 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 mu4e-meta auth-source-pass windmove
winner ring so-long disp-table whitespace recentf-ext recentf
tree-widget wid-edit diminish autorevert filenotify cua-base elec-pair
delsel paren savehist exec-path-from-shell finder-inf advice edmacro
kmacro slime-autoloads info package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq
byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib japan-util
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-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 cl-generic 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 charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads xwidget-internal dbusbind
kqueue cocoa ns lcms2 multi-tty make-network-process native-compile
emacs)

Memory information:
((conses 16 724701 452278)
 (symbols 48 40867 3)
 (strings 32 183109 67092)
 (string-bytes 1 6433859)
 (vectors 16 80273)
 (vector-slots 8 1785177 383090)
 (floats 8 1019 1732)
 (intervals 56 15057 358)
 (buffers 992 32))