Maybe something like this hack in the LispWorks backend could be generalized:
https://github.com/slime/slime/blob/master/swank/lispworks.lisp#L60
__Martin
On Tue, 19 Dec 2017 16:29:18 +0300, 73budden said:
Thanks for the feedback!
Thanks for a feedback.
... Sadly, it had to be reverted because ran into SBCL's compiler lock. Perhaps you can come up with a solution?
No. I'm trying to do some SBCL hacking, but I'm (yet) not experienced enough to fix such things. The patch I suggested is extremely simple, it works in SBCL and there is a good chance it would work on other CL implementations too. It is not elegant, but for me it is still better than grep. And I see no extreme difference between my patch showing implementation as "defvar" and Helmut's one, which I guess shows implementation as "defmethod". Anyway there's no explicit statement that actually they are "definterface" and "defimplementation". I admit my solution is essentially uglier, but it works while Helmut's does not.
Slightly better thing would be to show the exceprt from docstring together with "defvar" and "defun", so that it would be clear that "defvar" stands for "defimplementation".
But I'm not sure I have the resources to implement that :)
2017-12-19 14:56 GMT+03:00, Luís Oliveira luismbo@gmail.com:
Hi Budden,
On Tue, Dec 19, 2017 at 11:26 AM, 73budden . budden73@gmail.com wrote:
defun is for definterface, defvar is for defimplementation. This works at least in SBCL, I guess it is handy. Patch is attached. This may seem a bit ugly, but SBCL does not suggest a way to extend its definition database with new classes, so I see no good way to go.
Helmut implemented what seemed like an elegant solution to this issue back in 2014: https://github.com/slime/slime/commit/74ef7010d79fad14db43d6ff989f177a7a8986b5
Sadly, it had to be reverted because ran into SBCL's compiler lock. https://github.com/slime/slime/commit/f63fd440f1beeadd155b871f5d9fc8729c2dfc0d
Perhaps you can come up with a solution? Perhaps there's a way to force compilation of these methods ahead of time? Something else?
-- Luís Oliveira http://kerno.org/~luis/