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 message dated Thu, 27 Feb 2025 17:33:24 -0800
with message-id <CADwFkmku+Zkz-GRoOJXwFZOzdb=q4wir1+wUn-mtQfegDQvREA <at> mail.gmail.com>
and subject line Re: bug#76604: eglot causes eldoc error: (invalid-function incf)
has caused the debbugs.gnu.org bug report #76604,
regarding eglot causes eldoc error: (invalid-function incf)
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> 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)]
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
[Message part 3 (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.
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.