Hi,
after some time slime-autodoc stops working on my machine. I haven't yet found out what triggers this. Disabling/Reenablinging slime-autodoc-mode doesn't help. It works again after restarting emacs and lisp.
Here is the situation after it stops working:
- Calling #'slime-arglist directly works: The symbol at point is suggested correctly and the arglist is properly displayed.
- <C-h k SPC> displays:
SPC runs the command slime-autodoc-space (found in slime-autodoc-mode-map), which is an interactive Lisp function in ‘slime-autodoc.el’.
It is bound to SPC.
(slime-autodoc-space N)
Like ‘slime-space’ but nicer.
[back]
- Running #'slime-autodoc-space manually results in a ^M displayed at point.
This is on emacs 26.1, slime 2.21, sbcl 1.4.8, Arch Linux 64 bit.
Can someone help or give me some hints how to debug this?
-- Orm
Hi Orm,
The two key functions at play here are slime-autodoc (contrib/slime-autodoc.el) on the elisp side and swank:autodoc on the CL side (contrib/swank-arglists.lisp). For testing, use slime-autodoc-manually instead of slime-autodoc-space to avoid that ^M. When you reach the point where slime-autodoc is not working, evaluate slime-autodoc with stepping enabled (C-u C-M-x). If nothing fishy shows up there, the next place to look at would be the swank side, then slime-autodoc--async% (elisp) which is what handles the SWANK reply; you might want to step through that as well.
Good luck; let us know if you find anything.
Cheers, Luís
On Wed, Aug 15, 2018 at 10:38 AM Orm Finnendahl < orm.finnendahl@selma.hfmdk-frankfurt.de> wrote:
Hi,
after some time slime-autodoc stops working on my machine. I haven't yet found out what triggers this. Disabling/Reenablinging slime-autodoc-mode doesn't help. It works again after restarting emacs and lisp.
Here is the situation after it stops working:
Calling #'slime-arglist directly works: The symbol at point is suggested correctly and the arglist is properly displayed.
<C-h k SPC> displays:
SPC runs the command slime-autodoc-space (found in slime-autodoc-mode-map), which is an interactive Lisp function in ‘slime-autodoc.el’.
It is bound to SPC.
(slime-autodoc-space N)
Like ‘slime-space’ but nicer.
[back]
Running #'slime-autodoc-space manually results in a ^M displayed at point.
This is on emacs 26.1, slime 2.21, sbcl 1.4.8, Arch Linux 64 bit.
Can someone help or give me some hints how to debug this?
-- Orm
Hi Luís,
thanks a lot, your hint helped to solve the problem: It was related to an open break buffer from yesterday. I was unaware that I hadn't closed it.
In other words: In slime-autodoc the call to (slime-background-activities-enabled-p) returned nil because (slime-busy-p) returned t.
Sorry for the noise. It makes total sense but I simply wasn't aware of the fact that autodoc isn't executed if break buffers are still open. At least next time I know where to look...
-- Orm
Am Mittwoch, den 15. August 2018 um 13:06:46 Uhr (+0100) schrieb Luís Oliveira:
Hi Orm,
The two key functions at play here are slime-autodoc (contrib/slime-autodoc.el) on the elisp side and swank:autodoc on the CL side (contrib/swank-arglists.lisp). For testing, use slime-autodoc-manually instead of slime-autodoc-space to avoid that ^M. When you reach the point where slime-autodoc is not working, evaluate slime-autodoc with stepping enabled (C-u C-M-x). If nothing fishy shows up there, the next place to look at would be the swank side, then slime-autodoc--async% (elisp) which is what handles the SWANK reply; you might want to step through that as well.
Good luck; let us know if you find anything.
Cheers, Luís
On Wed, Aug 15, 2018 at 10:38 AM Orm Finnendahl < orm.finnendahl@selma.hfmdk-frankfurt.de> wrote:
Hi,
after some time slime-autodoc stops working on my machine. I haven't yet found out what triggers this. Disabling/Reenablinging slime-autodoc-mode doesn't help. It works again after restarting emacs and lisp.
Here is the situation after it stops working:
Calling #'slime-arglist directly works: The symbol at point is suggested correctly and the arglist is properly displayed.
<C-h k SPC> displays:
SPC runs the command slime-autodoc-space (found in slime-autodoc-mode-map), which is an interactive Lisp function in ‘slime-autodoc.el’.
It is bound to SPC.
(slime-autodoc-space N)
Like ‘slime-space’ but nicer.
[back]
Running #'slime-autodoc-space manually results in a ^M displayed at point.
This is on emacs 26.1, slime 2.21, sbcl 1.4.8, Arch Linux 64 bit.
Can someone help or give me some hints how to debug this?
-- Orm
Orm,
On Wed, Aug 15, 2018 at 2:27 PM Orm Finnendahl orm.finnendahl@selma.hfmdk-frankfurt.de wrote:
thanks a lot, your hint helped to solve the problem: It was related to an open break buffer from yesterday. I was unaware that I hadn't closed it.
In other words: In slime-autodoc the call to (slime-background-activities-enabled-p) returned nil because (slime-busy-p) returned t.
Sorry for the noise. It makes total sense but I simply wasn't aware of the fact that autodoc isn't executed if break buffers are still open. At least next time I know where to look...
The plot thickens. Autodoc shouldn't be affected by that. In fact, slime-busy-p explicitly checks if pending requests are associated with SLDB buffers. So, calling slime-rex-continuations on the elisp side should tell you what's jamming the request queue and stalling autodoc.
Cheers,
-- Luís Oliveira http://kerno.org/~luis/