[slime-devel] Re: no package name on a mode line after 2004-07-19?

Luke Gorrie luke at bluetail.com
Mon Jul 26 11:37:52 UTC 2004


Chisheng Huang <cph at 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






More information about the slime-devel mailing list