Max Nikulin <maniku...@gmail.com> writes:

>> Does it mean that you are able to?
>
> I reproduced the issue with packages available in Debian and Ubuntu, 
> including -Q, so minimally affected by distribution-specific 
> configuration, but I have not tried to compile Emacs myself. I am 
> judging from changes in Emacs code made after release of version 28.

My attempts to reproduce with emacs -Q only worked on Debian.

>      apt build-dep emacs
>
> and perhaps "apt install" for some …-dev packages for new features. 
> However my surprise is namely dependence on specific 
> packaging/distribution. My expectation that it should be reproducible in 
> Gentoo as well.

It is not, on my side. I tried multiple times.

>> It won't, but the very reason that message appeared is the need to do
>> that awkward workaround. It must not be needed - we are causing way too
>> much inconvenience to users of Emacs versions we claim to support.
>
> Either I missed your point or the issue will be just postponed. Patched 
> variant will not prevent mixed version compilation, so users still may 
> experience calls of undefined functions or incompatible argument types.

There are two issues here:
1. The old problem with mixed installation that manifests itself for
   some users
2. The new problem with org-assert-version, which appears to be even
   more frequent, despite trying preventing (1).

So, we replace less frequent problem and more frequent, which is not useful.
Better leave (1) as is until we support Emacs versions where
org-assert-version does not cause issues.

Of course, ideally we need to solve this issue with org-assert-version,
but I see no good way.

>>> I am not sure. Perhaps it should be (or (fboundp 'org-assert-version)
>>> (new-package-management-code)). Since testing for private function is
>>> not a reliable solution, only version check is available.
>> 
>> May you elaborate?
>
> I do not think it is good idea to rely on
>
>      (or (fboundp 'org-assert-version)
>          (fboundp 'package--reload-previously-loaded))

This is probably slightly better, but the gain appears to be marginal.
We will still miss mixed installation caused by straight.el - much more
frequent problem; and the reason I decided to write org-assert-version.

> I have not checked if some public function may be used for feature 
> detection of code appeared in Emacs-29. That is why I would consider
>
>      (when (or (fboundb 'org-assert-version)
>                (version<= "29" emacs-version))
>         (org-assert-version))

> However I am still in doubts if it is improvement in comparison to 
> simple (org-assert-verions) without any conditions.

This won't solve the problem I am trying to work around. Emacs 28 and
Emacs 27 are what people use most, and it is where (on Debian)
org-assert-version does not work with emacs -Q.

-- 
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>

Reply via email to