Subject: bug#78860: 30.1.90; eshell: wrong-number-of-arguments

From: Christopher Howard <[email-masked]>
Date: Sun, 22 Jun 2025 06:38:47 -0800

Eli Zaretskii <[email-masked]> writes:

> Crystal ball says you a version mismatch between the code that calls
> Eshell and Eshell itself.  Because eshell-stringify indeed accepted
> only 1 argument in Emacs 30, but in Emacs 31 it can accept 2.

Do you see anything in the bug report info that might suggest I am pulling in code from a weird place? At first, I was sure it must be something weird in my configuration or the packages I was using. So I did two things:

(1) I adjusted my emacs start script to unset EMACSNATIVELOADPATH, so that emacs is not pulling code from any Emacs packages installed by Guix. EMACSLOADPATH only points to /home/christopher/local/share/emacs/30.1.90/lisp.

(2) I used package-isolate to test this, with no packages, which in my understanding launches an instance of emacs that does not use my init file and does not have any packages loaded. I think that would also mean that the instance would not have any special eshell options set, nor be using any eshell special modules.

If I follow each of the underlined functions in the backtrace, they each take me either to a file in ~/local/share/emacs/30.1.90/lisp/ or ~/Repos/emacs-30/src/.

So I'm wondering where I went wrong. Maybe some bad code cached somewhere? Or something wrong with my checkout of the emacs-30 branch?

I confirmed also this problem does not occur in the emacs-29 installed by Guix.

-- 
Christopher Howard