slime.el cleanup and a minor improvement

João Távora joaotavora at
Sat Mar 8 14:01:49 UTC 2014


I'd like to push the three changes to SLIME's master branch. These
effectively mark the end of XEmacs compatibility and are mostly about
deleting code.

They live in my fork, git at, in the the
`slime-el-cleanup' branch:

    commit b9dfcba7d59c56e7b6b8d38413bd8f8801b13da3
        Remove XEmacs portability layer and fix some FIXMEs
    44      0       ChangeLog
    108     632     slime.el
    commit 92be40bcd47d640849f1df807d971cbe76b733c5
        Redesign and simplify some window-managing code in slime.el
    32      1       ChangeLog
    80      212     slime.el
    commit 8951befc40df6f693f0606789c616f312442992a
        Improve window selection for popup buffers
        Use Emacs 24.3's window-managing API to do less surprising choices
        when popping up temporary SLIME buffers. This is innocuous on
        previous Emacs versions.
    12      0       ChangeLog
    20      5       slime.el

The first is mostly a big cleanup of slime.el's XEmacs "portability
layer", fixes some FIXME's and uses "declare" specs for indentation. It
removes more than 500 lines in slime.el

The second simplifies the slime-popup-* logic, targets more FIXME's and
adapts some parts to more common idioms.

The third commit adds 15 lines that, in my opinion, greatly improve
window selection for popup buffers, but only on Emacs >= 24.3. They fix
a common debugger annoyance: When I have my frame divided into 3+
windows, selecting restarts that immediatly trigger another debugger
makes the SLDB buffer cycle between visible windows. This commit fixes
that and subsequent SLDB buffers go to the same window if possible.

The cleanup is relatively aggressive and, though neither I nor the
automated tests have noticed it, it's likely that I broke something that
I don't use regularly. 

Please test and review my changes. Except for the third commit, no
functional changes should be observed. If you're acquainted with
slime.el, point to the offending code whenever possible. Otherwise
describe your use cases that were broken so I can fix it.


More information about the slime-devel mailing list