Subject: Re: bug#78479: 31.0.50; Passing a list to a customization string variable for Emacs >= 31 in project.el

From: Dmitry Gutov <[email-masked]>
Date: Fri, 30 May 2025 04:22:58 +0300

Hi! Thanks for the report.

On 18/05/2025 16:21, M. Page-Lieberman wrote:
> I get the following warning message when starting up Emacs when
> attempting to install Geiser (via straight.el, ie. /(straight-use-package
> 'geiser)/ in my init file):
> 
> """
> ⛔ Warning (initialization): An error occurred while loading ‘/Users/ 
> jotaemei/.emacs.d/init.el’:
> 
> Wrong type argument: stringp, (projects.eld projects)
> 
> To ensure normal operation, you should investigate and remove the cause
> of the error in your initialization file.  Start Emacs with the
> ‘--debug-init’ option to view a complete error backtrace.
> """
> 
> The installation of Guile grabs project.el, which in turn defines the
> following definition for a customization on line 1852:
> 
> """
> (defcustom project-list-file
>    (locate-user-emacs-file (if (>= emacs-major-version 31)
>                                '("projects.eld" "projects")
>                              "projects"))
>    "File in which to save the list of known projects."
>    :type 'file
>    :version "31.1"
>    :group 'project)
> """
> 
> I /do/ have an Emacs major version of 31, which is for emacs-plus.
> 
> When I pull up the customization via /customize-variable/, I see for the
> value of project-list-file: """UNKNOWN, you should not see this."""
> 
> Notably, no such projects.eld file nor directory exists in the file system.
> For the time being, I'll just edit that defcustom to remove it.
> 
> In GNU Emacs 31.0.50 (build 1, x86_64-apple-darwin24.3.0, NS
>   appkit-2575.40 Version 15.3.1 (Build 24D70)) of 2025-03-08 built on
>   MacBookPro

Could you try building Emacs 31 from a newer checkout?

As it happens, the change to the definition of locate-user-emacs-file 
being used here, was checked in on the same day as your build date:

https://cgit.git.savannah.gnu.org/cgit/emacs.git/commit/?id=87db670d045b

So unfortunately if Emacs 31 is installed, we require a more recent 
version of it.

Also Cc'ing the author of that change, on the odd chance that he might 
have a better suggestion.