Subject: Re: bug#62762: 'make' often errors with "Org version mismatch" after pulling a new version of the code

From: Ihor Radchenko <[email-masked]>
Date: Sat, 22 Apr 2023 12:39:42 +0000

Eli Zaretskii <[email-masked]> writes:

> I think it's the defconst thingy.  E.g., with foo.el which says
>
>   (defconst my-foo nil)
>
> I cannot override the value from the command line:
>
>   emacs -Q -batch --eval "(setq my-foo t)" -l foo.el --eval "(message \"%s\" my-foo)"
>    => nil
>
> But if I replace defconst with defvar, it yields t, as I'd expect.
>
> So I think org--built-in-p should be a defvar, not defconst.  Or maybe
> you can teach me how to override a defconst?  Stefan, any ideas?

Well. I think I missed that `defconst', unlike `defvar', overrides the
existing variable value. Switching to `defvar' is ok. (Or, it might be
something like (eval-after-load 'org-macs ...), but I see no reason to
prefer it over switching to defvar).

I think it will be best to install the change in Emacs and then back-port
it to Org. Will it be ok?

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>