Update NEWS file

* NEWS: Update NEWS for upcoming 2.4 release.
Cleanup window-managing code

* slime.el
(slime-with-popup-buffer): redesign. Don't take :mode arg.
(slime-popup-restore-data): delete it
        (slime-make-popup-buffer): delete it
        (slime-init-popup-buffer): delete it
        (slime-display-popup-buffer): delete it
        (slime-close-popup-window): delete it
        (slime-save-local-variables): delete it.
(slime-popup-buffer-quit-function): delete it.
(slime-edit-value-callback): don't pass :mode to
slime-with-popup-buffer.
(slime-show-compilation-log): idem
(slime-edit-value-callback): idem
(slime-show-apropos): idem
(slime-create-macroexpansion-buffer): idem
(slime-list-threads): idem
(slime-list-connections): idem
(slime-inspector-buffer): idem
(sldb-setup): no seed to save window-variables.
(sldb-setup): just `pop-to-buffer'
(sldb-debugged-continuations): simplify
(slime-inspector-mode): No need to explicitly list maps in
docstring.
(slime-inspector-mode-map): Override q key using keymaps.

* contrib/slime-clipboard.el (slime-clipboard-display-entries): Don't pass
:mode to `slime-with-popup-buffer'.

* contrib/slime-compiler-notes-tree.el (slime-list-compiler-notes): idem

* contrib/slime-media.el (slime-dispatch-media-event): idem

* contrib/slime-sprof.el (slime-sprof-report): idem

* contrib/slime-trace-dialog.el (slime-trace-dialog--open-detail):
Simplify. Use `slime-with-popup-buffer'.
Remove XEmacs compatibility layer

Also use declare specs instead of top-level `put'

* slime-tests.el: Don't use xemacs compatibility layer.

* slime.el: Removed xemacs compatibility layer. Use indent specs.
Don't set `compile-command' file-local var.

* contrib/slime-autodoc.el (slime-autodoc-maybe-enable): move to appease
byte-compiler.

* contrib/slime-fuzzy.el (slime-fuzzy-choices-buffer): use just `add-hook'.

* contrib/slime-fuzzy.el (slime-fuzzy-choices-buffer): use just `add-hook'.

* contrib/slime-presentations.el (slime-presentations): use just `add-hook'.

* contrib/slime-repl.el: Don't use xemacs compatibility layer. Update
indentation.
Fix broken tests.

* slime-tests.el (inspector): Use `cl-assert`.

* slime.el (slime-with-popup-buffer): Must return current buffer.
(slime-kill-all-buffers): Fix FIXME.
(slime-highlight-differences-in-dirname): Use `split-string' not
`slime-split-string'.

* contrib/slime-repl.el (slime-kill-all-buffers): Move it here where it's
needed.
(slime-switch-to-output-buffer): Use `pop-to-buffer'
Fix some FIXME's and simplify recentering code

There's little need for the complicated "SLDB recenter & redisplay"
section. Whatever behaviour I might have broken here (I haven't seen
any) can be restored later in a simpler fashion.

* slime.el (slime-with-popup-buffer): Must return current buffer.
(slime-kill-all-buffers): Fix FIXME.
(slime-highlight-differences-in-dirname): Use `split-string' not
`slime-split-string'.

* slime.el (slime-show-buffer-position, sldb-recenter-region):
delete these functions and adapt users.

* slime.el (slime-connection): `slime-auto-connect' renamed `slime-auto-start'
(slime-auto-start): Renamed from `slime-auto-connect'
(slime-compile-file-options): Make defcustom
(slime-goto-note-in-compilation-log): Simplify with `cl-loop'
(slime-xrefs): simplify.
(slime-goto-next-xref): Don't use `slime-show-buffer-position'
(sldb-in-face): renamed from `in-sldb-face'
(slime-save-coordinates): delete it
(slime-coordinates): delete it
(slime-restore-coordinate): delete it
(slime-show-source-location): use `slime-recenter'
(sldb-show-frame-details): don't use `slime-save-coordinates'
(sldb-hide-frame-details): idem
(slime-map-alist): removed
Fix `slime-c-p-c' contrib

* slime-editing-commands.el (slime-close-all-parens-in-sexp): Use
`delete-and-extract-region'. Remove byte-compilation warning.
Remove easy compilation warnings so we can concentrate on real ones.

Most of the warnings were in contribs and were due to direct `cl'
usage. Others were a simple product of bitrot and abandonment. Made
the easy fix when it was obvious, added notes when I'm pretty sure I
broke something.

* slime.el: Require 'cl but only when compiling.

* contrib/bridge.el (bridge-insert-function): Add it.
(bridge-insert): Use it.

* contrib/slime-asdf.el: Require 'grep. fix byte-compilation warnings.

* contrib/slime-autodoc.el: Require 'eldoc. Fix byte-compilation warnings.
(slime-autodoc-mode): Don't use `interactive-p'

* contrib/slime-cl-indent.el: Move definitions around to fix
byte-compilation warnings.
(common-lisp-current-package-function): Make it a variable. It's
used as such.
(slime-cl-indent): Provide it.

* contrib/slime-clipboard.el (slime-clipboard-redisplay): Add FIXME note
after removal of `slime-clipboard-insert-entries'.

* contrib/slime-compiler-notes-tree.el (slime-clipboard-entry-at-point):
Fix byte-compilation warnings.

* contrib/slime-enclosing-context.el: Fix byte-compilation warnings and
explain why it has been broken since 2010.

* contrib/slime-fontifying-fu.el: Fix byte-compilation warnings, but
probably broken since a long time.

* contrib/slime-fuzzy.el: Fix byte-compilation warnings.

* contrib/slime-indentation.el: Fix byte-compilation warnings.

* contrib/slime-mdot-fu.el: Fix byte-compilation warnings.

* contrib/slime-mrepl.el: Fix byte-compilation warnings.

* contrib/slime-package-fu.el: Fix byte-compilation warnings.

* contrib/slime-presentations.el (slime-presentation-bridge-insert): Use
this new function, instead of redefinition.

* contrib/slime-references.el: Fix byte-compilation warnings.

* contrib/slime-sprof.el: Fix byte-compilation warnings.

* contrib/slime-tramp.el: Fix byte-compilation warnings.

* lib/hyperspec.el: Fix byte-compilation warnings.
Require 'cl-lib explicitly in contribs

* contrib/*.el: Require 'cl-lib explicitly.
Minor tweaks

* slime.el (cl-lib): `require' doesn't need
`eval-and-compile. Clarify `cl-lib' loading strategy.
Unbreak `slime-fontifying-fu'

* contrib/slime-fontifying-fu.el: Fix byte-compilation warnings.
Don't use lambda commands in `slime-xref-mode-map'
Fix failing tests on emacs 23 and other minor tweaks

Use cl-labels instead of cl-flet, since that is safe for emacs 23's
cl-lib.
Summarized cleanup in Changelog header.

Fixed some FIXME's in slime.el and simplify idioms. Window management
redesigned to use simpler
`slime-with-popup-buffer'. `slime-show-buffer-position' and
`sldb-recenter-region' were factored out as per FIXME note, which
might create some display glitches (though I haven't seen any). Fixed
byte-compilation warnings.
Byte-compile contrib separately like root makefile

This uncovers more warnings. Most related to cl and cl-lib and all
were fixed by replacing functions with their cl-prefixed conterparts.
In some cases, when there is no such counterpart, cl is required at
compile-time, not runtime. That way (featurep 'cl) should return nil
when only loading .el or .elc files has taken place.

* contrib/Makefile (%.elc): Byte-compile .el files separately like root
  Makefile, which uncovers many more warnings.