GNU bug report logs -
#76604
eglot causes eldoc error: (invalid-function incf)
Previous Next
Reported by: Daniel Gomez <d.gomez <at> posteo.org>
Date: Wed, 26 Feb 2025 23:52:02 UTC
Severity: normal
Fixed in version 31.1
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#76604: eglot causes eldoc error: (invalid-function incf)
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 76604 <at> debbugs.gnu.org.
--
76604: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76604
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Version: 31.1
Daniel Gomez <d.gomez <at> posteo.org> writes:
> Dear emacs maintainers,
>
> Trying eglot for the first time on a python file.
> Everything works but I get on the minibuffer an eldoc error: (invalid-function
> incf).
>
> For context: I use straight for package management, but have no declarations
> regarding eglot nor eldoc on my init.el.
> Emacs 30.1, but I tried under 29.4 with the same issue.
>
> If I set debug-on-error, I get the following, which isn't really informative:
>
> Debugger entered--Lisp error: (invalid-function incf)
> incf(0)
> #f(compiled-function (method origin) #<bytecode -0xaadc1b6e8ed7d7>)(:patient
> eglot-signature-eldoc-function)
> eldoc--make-callback(:patient eglot-signature-eldoc-function)
> #f(compiled-function (f) #<bytecode
> -0x6cf6f9fa4609ff8>)(eglot-signature-eldoc-function)
> run-hook-wrapped(#f(compiled-function (f) #<bytecode -0x6cf6f9fa4609ff8>)
> eglot-signature-eldoc-function)
> eldoc-documentation-compose()
> eldoc--invoke-strategy(nil)
> eldoc-print-current-symbol-info()
> #f(compiled-function () #<bytecode -0x1617e223c153308b>)()
> apply(#f(compiled-function () #<bytecode -0x1617e223c153308b>) nil)
> timer-event-handler([t 0 0 500000 nil #f(compiled-function () #<bytecode
> -0x1617e223c153308b>) nil idle 0 nil])
>
>
> It seems incf is being used in eldoc.el, an Emacs core package. That should not
> happen since as far as I understand cl is deprecated.
>
> ;;; eldoc.el --- Show function arglist or variable docstring in echo area -*-
> lexical-binding:t; -*-
>
> ;; Copyright (C) 1996-2025 Free Software Foundation, Inc.
>
> ;; Author: Noah Friedman <friedman <at> splode.com>
> ;; Keywords: extensions
> ;; Created: 1995-10-06
> ;; Version: 1.15.0
> ;; Package-Requires: ((emacs "26.3"))
>
> ;; This is a GNU ELPA :core package. Avoid functionality that is not
> ;; compatible with the version of Emacs recorded above.
Thanks for the bug report!
I was surprised that any users were affected by this, but João explained
the reason why on GitHub:
"Straight grabs the bleeding edge from master, makes a package
out of that, so effectively jumps over the safety of the release
mechanism. Package.el doesn't do that (by default)."
I guess we should be grateful for the pre-alpha testing that users of
"straight" are doing for us. I just hope for their sake that this
aspect of straight is clearly documented.
Anyways, this should now be fixed on master, so I'm closing this bug.
Please test the fix and report back if it didn't work.
[Message part 3 (message/rfc822, inline)]
Dear emacs maintainers,
Trying eglot for the first time on a python file.
Everything works but I get on the minibuffer an eldoc error:
(invalid-function incf).
For context: I use straight for package management, but have no
declarations regarding eglot nor eldoc on my init.el.
Emacs 30.1, but I tried under 29.4 with the same issue.
If I set debug-on-error, I get the following, which isn't really
informative:
Debugger entered--Lisp error: (invalid-function incf)
incf(0)
#f(compiled-function (method origin) #<bytecode
-0xaadc1b6e8ed7d7>)(:patient eglot-signature-eldoc-function)
eldoc--make-callback(:patient eglot-signature-eldoc-function)
#f(compiled-function (f) #<bytecode
-0x6cf6f9fa4609ff8>)(eglot-signature-eldoc-function)
run-hook-wrapped(#f(compiled-function (f) #<bytecode
-0x6cf6f9fa4609ff8>) eglot-signature-eldoc-function)
eldoc-documentation-compose()
eldoc--invoke-strategy(nil)
eldoc-print-current-symbol-info()
#f(compiled-function () #<bytecode -0x1617e223c153308b>)()
apply(#f(compiled-function () #<bytecode -0x1617e223c153308b>) nil)
timer-event-handler([t 0 0 500000 nil #f(compiled-function ()
#<bytecode -0x1617e223c153308b>) nil idle 0 nil])
It seems incf is being used in eldoc.el, an Emacs core package. That
should not happen since as far as I understand cl is deprecated.
;;; eldoc.el --- Show function arglist or variable docstring in echo
area -*- lexical-binding:t; -*-
;; Copyright (C) 1996-2025 Free Software Foundation, Inc.
;; Author: Noah Friedman <friedman <at> splode.com>
;; Keywords: extensions
;; Created: 1995-10-06
;; Version: 1.15.0
;; Package-Requires: ((emacs "26.3"))
;; This is a GNU ELPA :core package. Avoid functionality that is not
;; compatible with the version of Emacs recorded above.
Thank you.
Regards,
Daniel
ps: issue on github:
https://github.com/joaotavora/eglot/discussions/1487#discussioncomment-12330803
This bug report was last modified 84 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.