Discussion:
slime-autodoc stops working after some time
Orm Finnendahl
2018-08-15 09:37:03 UTC
Permalink
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 Finnendahl
2018-08-15 13:25:34 UTC
Permalink
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
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 <
Post by Orm Finnendahl
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.
- Calling #'slime-arglist directly works: The symbol at point is
suggested correctly and the arglist is properly displayed.
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
Luís Oliveira
2018-08-16 09:03:40 UTC
Permalink
Orm,

On Wed, Aug 15, 2018 at 2:27 PM Orm Finnendahl
Post by Orm Finnendahl
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/

Loading...