Chisheng Huang cph@chi-square-works.com writes:
Slime retrieved from CVS on or before 2004-07-19 would print a package name on the mode line of a buffer editing a Lisp file. After 2004-07-19, Slime stops printing a package name on a mode line. Is this change intentional? It's not documented in the change log. Printing a package name on a mode line is quite useful.
It's a side-effect of an intentional change.
Historically when we make an RPC to Lisp we optionally update the package name in the mode-line. I didn't like this for two reasons.
First it makes the RPC calls a bit more complicated and verbose. If we wanted to update the package we would say:
(slime-eval-async form (slime-buffer-package) cont)
where (slime-buffer-package) does it as a side-effect. If we didn't want to update the package we'd write:
(slime-eval-async form (slime-buffer-package t) cont)
Now there's no package variable to update, so we always write:
(slime-eval-async form cont)
which is a bit simpler and more concise.
The other reason is that the meaning of the package name in the modeline was a bit fuzzy. Really it's just saying what package the last SLIME command used. If you have a file like:
(in-package :cl) (+ 1 2) (in-package :cl-user) (+ 2 3)
Then ideally the modeline should show the package that would be used for a command at the current point. But since it gets updated lazily it doesn't necessarily work that way.
Hmm.
Maybe we can put the feature back in a nicer way, e.g. by updating the package name on an idle timer as with autodocs.
-Luke