(address . bug-guix@gnu.org)
Hi all,
What I think happens is that Emacs code that is compiled against an
(Emacs) feature that is available as both a built-in and provided
(propagated) input seems to 'compile' Emacs code against the built-in
version.
Case in point:
Built-in jsonrpc feature for Emacs 29.3 has the following slot:
-events-buffer-scrollback-size t 'eieio--unbound
The version of jsonrpc as packaged in emacs-jsonrpc (and also propagated by
our emacs-eglot package):
-events-buffer-config t '(:size nil :format full)
Reproducer:
Run:
guix shell --container --preserve=TERM emacs emacs-eglot -- emacs -nw -Q,
`M-x describe-symbol` -> jsonrpc-connection -> notice that the help
buffer lists the details from the built-in jsonrpc class, while the link
to "jsonrpc.el" at the top of the *Help* buffer links (correctly) to the
more recent version (as propagated by emacs-eglot), which makes me think
it's not a load-path issue.
AFAICT this means that we will run into issues once a library
(e.g. emacs-eglot) starts depending on slots present in the (propagated)
emacs-jsonrpc, but not the built-in jsonrpc version.
Thanks,
- Jelle