
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