* SLIME News                                -*- mode: outline; coding: utf-8 -*-

* 2.7 (June 2014)

** Core

*** SWANK now tries harder to send double-floats to Emacs

** Allegro CL Backend

*** Added implementation for FUNCTION-NAME and FIND-SOURCE-LOCATION interfaces
Notably, this means that pressing "." in the SLIME inspector now works
on Allegro CL. (Thanks to Gábor Melis.)

* 2.6 (May 2014)

** Core

*** *print-readably* bound to nil when displaying condition messages

*** Issue #144: Removed nicknames and short package names
The STD nickname for SWANK-TRACE-DIALOG was removed. MONITOR was
renamed to SWANK-MONITOR and its nickname MON removed.

*** Issues #135, #154: slime-to-lisp-filename used more pervasively
Now used for the both the port-file and loader file when announced
from Emacs to the lisp backend. Allows a user-written
`slime-to-lisp-filename-function' that supports Cygwin lisps with
non-Cygwin Emacsen or vice-versa. See #135 for an example of such a
function.

*** Issue #155: Stale SLDB buffers are now properly removed
Indirect exits from an SLDB buffer that was not selected in a window
would leave a stale buffer behind, leading to an inconsistent state
and unexpected errors.

** Contribs

*** Issue #139: Restored "copy to REPL" for slime-presentations
`slime-copy-presentation-at-point-to-repl' will copy a presentation to
the REPL, place it at point, and _not_ set *, ** and ***. This
behaviour restored after refactorings of "copy to REPL" behaviour of
previous versions.

*** Issue #140: Improvements in the "copy to REPL" behaviour
With or without the slime-presentations contrib, M-RET will
copy/return values to REPL from both Inspector and SLDB buffers,
setting *, ** and *** . If the slime-presentations contrib is enabled,
the returned part will be an interactive presentation. The protocol
for copying down parts to REPL has been reworked to not assume a CL
backend .

*** Now supports more CLHS references: :type, :system-class, :ansi-cl

*** Issue #133: Fixed links to the SBCL manual

** Backend improvements

*** SBCL

**** `slime-set-default-directory' now calls chdir
This propagates its effects to subprocesses.

* 2.5 (April 2014)

** Backend improvements

*** Clozure CL

**** `slime-set-default-directory' now calls chdir
This propagates its effects to subprocesses.

*** Allegro CL

**** swank-compile-string no longer binds *default-pathname-defaults*
This was inconsistent with the behaviour of other backends and caused
strange issues with SYS:TEMPORARY-DIRECTORY.

**** Improved source file recording
Whenever possible interactive definition compilation is mapped to the
actual source file rather than the buffer name to avoid breakage when
the the buffer name changes or is closed.

** SLIME Trace Dialog

*** (Un)Tracing a definition automatically updates the trace status

** slime-repl

*** Inspecting * in REPL no longer inspects ** (issue #137)

** slime-autodoc

*** Multiline arglists in `slime-autodoc' no longer imply a newline (issue #7)

** Core Bugfixes

*** SWANK port file name defined in more portable fashion
Bug reported by Mirko Vukovic on slime-devel.

*** inferior-lisp-program can now hold paths with spaces (issue #116)

* 2.4 (March 2014)

** New contrib SLIME Trace Dialog included in `slime-fancy'
Interactive interface to tracing functions and methods. See manual for
details.

** New contrib `slime-fancy-trace', included in `slime-fancy'
If your implementation allows it, trace complex method signatures,
labels, etc...

** New options in `slime-cl-indent.el' used by the `slime-indentation' contrib
New variables are `lisp-loop-body-forms-indentation' and
`lisp-loop-body-forms-indentation'.

** New command `sldb-copy-down-to-repl' bound to M-RET in debugger
Copies the frame variable under point to the REPL, much as
`slime-inspector-copy-down-to-repl' does.

** New command `slime-delete-package'

** UTF8 encoding
SLIME now uses only UTF8 to encode strings on the wire.  Customization
variables like `slime-net-coding-system' or `swank:*coding-system*' are
now useless.

** Setup recipe
In preparation for a more decentralized approach to SLIME contribs,
the setup recipe has been slightly changed, hopefully in a backwards
compatible way. Calling `slime-setup' is no longer required. Instead,
the `slime-contribs' variable can be customized with a list of
contribs to be loaded when `M-x slime' is first executed. See section
`8.1 Loading Contrib Packages' of the SLIME Manual for more details.

** Bugfixes and stability improvements since the move to Github

*** Issue #9: new REPL output respectes existing REPL results or presentations.

*** Issue #17: TAB no longer freezes the REPL in "read-mode"

*** Issue #42: compiles on Emacs 24

*** Issue #43: `just-one-space' no longer breaks REPL

*** Issue #34: "Error in timer" error when starting slime on emacs24

*** Printing conditions is now a bit safer in the debugger (git:bafeb86)

*** Fix undo behavior in the REPL (git:af354d7)
Previously, undo would obliterate previous prompts.

*** Fix REPL type-ahead behaviour when presentations active (git:38a1826)
Input typed before your lisp responds is appended to the result when it arrives.

*** Fix package and dir synch when no process buffer (git:dc88935)
Sometimes process buffer has been killed, but connection is still active.

*** M-p on any part of the REPL buffer no longer errors (git:dc88935)

*** slime-presentations can be enabled in inspector (git:647c3c3, 2f57b34)
Set `slime-inspector-insert-ispec-function' to
`slime-presentation-inspector-insert-ispec' to use them.

*** M-. on a presentation on the REPL now longer errors
This happened when `slime-presentations' was enabled, either by itself
or by `slime-fancy'.

*** M-. on the first position of a *slime-apropos* buffer no longer fails.
This happened with the `slime-fancy-inspector.el' contrib.

*** RET on no part in *inspector* buffer no longer errors

*** slime-repsentations properly recognized when at very beginning of buffer
Fix by Attila Lendvai

*** Avoid loading `swank-asdf.lisp' if there's a good chance it will break SWANK
`swank-asdf.lisp' aborts the connection if it finds an old ASDF version.

*** In ABCL, `slime-describe-function' now works for both macros and functions.

** SLIME builds on Travis CI
See https://travis-ci.org/slime/slime for the build status and history.

** Testing framework refactored to use ERT
`def-slime-test' creates regular ERT tests. `define-slime-ert-test' is
a lighter convenience macro which automatically sets some tags for the
new tests.

** Top-level Makefile
For hackers or users using the latest version, there is now a
top-level Makefile. Use "make help" to learn about targets.

** Moved to Github
SLIME now lives in Github. The documentation and the README.md file
were updated. HACKING was renamed to CONTRIBUTING.md and updated with
Github specific instructions.

** Bugfixes and stability improvements
Since the last release and before move to Github, many bugfixes and
other changes were commited, too many to list here. See Changelog for
details.

* 2.3 (October 2011)

** REPL no longer loaded by default
SLIME has a REPL which communicates exclusively over SLIME's socket.
This REPL is no longer loaded by default.  The default REPL is now the
one by the Lisp implementation in the *inferior-lisp* buffer.  The
simplest way to enable the old REPL is:

  (slime-setup '(slime-repl))

** Precise source tracking in Clozure CL
Recent versions of the CCL compiler support source-location tracking.
This makes the sldb-show-source command much more useful and M-. works
better too.

** Environment variables for Lisp process
slime-lisp-implementations can be used to specify a list of strings to
augment the process environment of the Lisp process.  E.g.:

    (sbcl-cvs
     ("/home/me/sbcl-cvs/src/runtime/sbcl"
      "--core" "/home/me/sbcl-cvs/output/sbcl.core")
     :env ("SBCL_HOME=/home/me/sbcl-cvs/contrib/"))

* 2.1

** Removed Features
Some of the more esoteric features, like presentations or fuzzy
completion, are no longer enabled by default.  A new directory
"contrib/" contains the code for these packages.  To use them, you
must make some changes to your ~/.emacs.  For details see, section
"Contributed Packages" in the manual.

** Stepper
Juho Snellman implemented stepping commands for SBCL.

** Completions
SLIME can now complete keywords and character names (like #\newline).

* 2.0 (April 2006)

** In-place macro expansion
Marco Baringer wrote a new minor mode to incrementally expand macros.

** Improved arglist display
SLIME now recognizes `make-instance' calls and displays the correct
arglist if the classname is present.  Similarly, for `defmethod' forms
SLIME displays the arguments of the generic function.

** Persistent REPL history
SLIME now saves the command history from REPL buffers in a file and
reloads it for newly created REPL buffers.

** Scieneer Common Lisp
Douglas Crosher added support for Scieneer Common Lisp.

** SBCL
Various improvements to make SLIME work well with current SBCL versions.

** Corman Common Lisp
Espen Wiborg added support for Corman Common Lisp.

** Presentations
A new feature which associates objects in Lisp with their textual
represetation in Emacs.  The text is clickable and operations on the
associated object can be invoked from a pop-up menu.

** Security
SLIME has now a simple authentication mechanism: if the file
~/.slime-secret exists we verify that Emacs and Lisp can access it.
Since both parties have access to the same file system, we assume that
we can trust each other.

* 1.2 (March 2005)

** New inspector
The lisp side now returns a specially formated list of "things" to
format which are then passed to emacs and rendered in the inspector
buffer. Things can be either text, recursivly inspectable values, or
functions to call. The new inspector has much better support CLOS
objects and methods.

** Unicode
It's now possible to send non-ascii characters to Emacs, if the
communication channel is configured properly.  See the variable
`slime-net-coding-system'.

** Arglist lookup while debugging
Previously, arglist lookup was disabled while debugging.  This
restriction was removed. 

** Extended tracing command
It's now possible to trace individual a single methods or all methods
of a generic function.  Also tracing can be restricted to situations
in which the traced function is called from a specific function.

** M-x slime-browse-classes
A simple class browser was added.

** FASL files
The fasl files for different Lisp/OS/hardware combinations are now
placed in different directories.

** Many other small improvements and bugfixes

* 1.0 (September 2004)

** slime-interrupt
The default key binding for slime-interrupt is now C-c C-b.

** sldb-inspect-condition
In SLDB 'C' is now bound to sldb-inspect-condition.

** More Menus
SLDB and the REPL have now pull-down menus.

** Global debugger hook.
A new configurable *global-debugger* to control whether
swank-debugger-hook should be installed globally is available. True by
default.

** When you call sldb-eval-in-frame with a prefix argument, the result is 
now inserted in the REPL buffer.

** Compile function
For Allegro M-. works now for functions compiled with C-c C-c.

** slime-edit-definition
Better support for Allegro: works now for different type of
definitions not only. So M-. now works for e.g. classes in Allegro.

** SBCL 0.8.13
SBCL 0.8.12 is no longer supported.  Support for 0.8.12 was broken for
for some time now.

* 1.0 beta (August 2004)

** autodoc global variables
The slime-autodoc-mode will now automatically show the value of a
global variable at point.

** Customize group
The customize group is expanded and better-organised.

** slime-interactive-eval
Interactive-eval commands now print their results to the REPL when
given a prefix argument.

** slime-conservative-indentation
New Elisp variable. Non-nil means that we exclude def* and with-* from
indentation-learning. The default is t.

** (slime-setup)
New function to streamline setup in ~/.emacs

** Modeline package
The package name in the modeline is now updated on an idle timer. The
message should now be more meaningful when moving around in files
containing multiple IN-PACKAGE forms.

** XREF bugfix
The XREF commands did not find symbols in the right package.

** REPL prompt
The package name in the REPL's prompt is now abbreviated to the last
`.'-delimited token, e.g. MY.COMPANY.PACKAGE would be PACKAGE. This
can be disabled by setting SWANK::*AUTO-ABBREVIATE-DOTTED-PACKAGES* to
NIL.

** CMUCL source cache
The source cache is now populated on `first-change-hook'. This makes
M-. work accurately in more file modification scenarios.

** SBCL compiler errors
Detect compiler errors and make some noise. Previously certain
problems (e.g. reader-errors) could slip by quietly.

* 1.0 alpha (June 2004)

The first preview release of SLIME.

