* swank.lisp (eval-in-emacs): Export it.
* slime.el (slime-eval-for-lisp): Return value as a string,
because it can be unreadable, e.g. #<buffer foo>
* swank.lisp (eval-in-emacs): Prevent reader errors.
* swank.lisp (eval-in-emacs): Return unreadable results from Emacs
as an unreadable-object, not as a string.
Don't double encode results for eval-in-emacs.

* slime.el (slime-check-eval-in-emacs-result): New.
(slime-eval-for-lisp): Use it.
* swank.lisp (unreadable-object): Removed.
Be careful with interning.

* swank.lisp (find-definitions-for-emacs): Use parse-symbol.
* slime.el (slime-choose-overlay-
region): Don't use `list' instead
of `values', GNU Emacs fakes multiple values with lists, but
XEmacs uses real multiple values.
* slime.el (slime-inspector-operate-on-point): Don't save the
point when inspecting a different object.
* slime.el (slime-inspector-operate-on-point): Don't save the
point when inspecting a different object.
(slime-inspector-operate-on-point): If there is no action property
directly at the point, try looking at (1- (point)), many
inspectable objects are presented the end of the line, so it's
easier to navigate to them by C-e and still being able to activate
it.
* slime.el (slime-insert-threads): Make sure newlines have the
same thread-id property as the rest of the line. This fixes
confusion when point is at the end of a line.
* slime.el (slime-init-popup-buffer): Don't use
multiple-value-setq on a list, XEmacs doesn't like it.
* swank-allegro.lisp (find-topframe): Fix excl::int-newest-frame
invocation for the latest alpha version of Allegro.
Patch by Gábor Melis.
Move some of the logic from slime-sexp-at-point-for-macroexpansion
into slime-sexp-at-point.

* slime.el (slime-bounds-of-sexp-at-point): New.  Special case if
we are at '( as slime-sexp-at-point-for-macroexpansion does.
(slime-bounds-of-symbol-at-point): New.
(slime-symbol-at-point, slime-sexp-at-point): Use the above.

Thank God for the test suite.
Remove slime-sexp-at-point-for-macroexpansion.

* slime.el (slime-sexp-at-point-for-macroexpansion): Deleted.
(slime-eval-macroexpand): Use slime-sexp-at-point instead.
(slime-eval-macroexpand-inplace): Use
slime-bounds-of-sexp-at-point directly.
* slime-editing-commands.el (slime-beginning-of-defun): Call
beginning-of-defun with call-interactively so that the mark gets
pushed.
* swank.lisp (format-restarts-for-emacs): Add
without-printing-errors around restart printing.
* slime-sprof.el(abbreviate-name): Rename to
slime-sprof-abbreviate-name (no package system, oh well...).
* swank-sprof.lisp (swank-sprof-get-call-graph): Don't call
serialize-call-graph when there's no samples. That prevents it
from crashing.
* swank.lisp (list-threads): Call `use-threads-p' only when
*emacs-connection* is non-nil. `use-threads-p' wouldn't work in
this case, and there is no need to remove a worker thread from the
list if it's not connected.
This fixes an issue with calling swank:stop-server when slime
isn't connected.
* slime.el (slime-load-failed-fasl): New variable. Accepts `ask',
`always', and `never' symbols. Loads or not loads fasls produced by
compile-file which returned non-nil failure-p.
slime-indentation: make custom indentation hints from CL side work right

  * Downcase symbol-names for convenience -- |&lambda| gets tedious
    pretty quick.

  * Intern strings in indentation specs on the Emacs side, so that
    complex indentation hints can work.