[slime-cvs] CVS update: slime/doc/slime.texi
Helmut Eller
heller at common-lisp.net
Sun Mar 27 19:06:38 UTC 2005
Update of /project/slime/cvsroot/slime/doc
In directory common-lisp.net:/tmp/cvs-serv16200
Modified Files:
slime.texi
Log Message:
Mention Unicode support and some multi-threading issues.
Date: Sun Mar 27 21:06:33 2005
Author: heller
Index: slime/doc/slime.texi
diff -u slime/doc/slime.texi:1.32 slime/doc/slime.texi:1.33
--- slime/doc/slime.texi:1.32 Wed Oct 6 00:15:07 2004
+++ slime/doc/slime.texi Sun Mar 27 21:06:31 2005
@@ -45,8 +45,8 @@
@code{\command\}@*
@end macro
- at set EDITION 1.0
- at set UPDATED @code{$Date: 2004/10/05 22:15:07 $}
+ at set EDITION 1.2
+ at set UPDATED @code{$Date: 2005/03/27 19:06:31 $}
@titlepage
@title SLIME User Manual
@@ -65,7 +65,7 @@
@top SLIME
@SLIME{} is the ``Superior Lisp Interaction Mode for Emacs''. This is
-the manual for version 1.0.
+the manual for version 1.2.
@end ifinfo
@menu
@@ -210,17 +210,17 @@
@itemize @bullet
@item
-CMU Common Lisp (@acronym{CMUCL})
+CMU Common Lisp (@acronym{CMUCL}), 18e or newer
@item
-Steel Bank Common Lisp (@acronym{SBCL})
+Steel Bank Common Lisp (@acronym{SBCL}), from version 0.8.15 to 0.8.20
@item
-OpenMCL
+OpenMCL, version 0.14.3
@item
-LispWorks
+LispWorks, version 4.3 or newer
@item
-Allegro Common Lisp (@acronym{ACL})
+Allegro Common Lisp (@acronym{ACL}), version 4.3 or newer
@item
- at acronym{CLISP}
+ at acronym{CLISP}, version 2.33.2 or newer
@item
Armed Bear Common Lisp (@acronym{ABCL})
@end itemize
@@ -363,6 +363,7 @@
* Temporary buffers::
* Key bindings::
* inferior-lisp::
+* Multithreading::
@end menu
@node Temporary buffers, Key bindings, User-interface conventions, User-interface conventions
@@ -411,7 +412,7 @@
C-h} will actually list the bindings for all documentation commands.
This feature is just a bit too useful to clobber!
- at node inferior-lisp, , Key bindings, User-interface conventions
+ at node inferior-lisp, Multithreading, Key bindings, User-interface conventions
@subsection @code{*inferior-lisp*} buffer
@SLIME{} internally uses the @code{inferior-lisp} package to start
@@ -438,6 +439,32 @@
doesn't belong to @SLIME{}, and you should probably lookup our
equivalent.
+ at node Multithreading, , inferior-lisp, User-interface conventions
+ at subsection Multithreading
+
+If the Lisp system supports multithreading, SLIME spawns a new thread
+for each request, e.g., @kbd{C-x C-e} creates a new thread to evaluate
+the expression. An exception to this rule are requests from the
+ at REPL{}: all commands entered in the @REPL{} buffer are evaluated in a
+dedicated @REPL{} thread.
+
+Some complications arise with multithreading and special variables.
+Non-global special bindings are thread-local, e.g., changing the value
+of a let bound special variable in one thread has no effect on the
+binding of the variables with the same name in other threads. This
+makes it sometimes difficult to change the printer or reader behaviour
+for new threads. The variable
+ at code{swank:*default-worker-thread-bindings*} was introduced for such
+situtuations: instead of modifying the global value of a variable, add a
+binding the @code{swank:*default-worker-thread-bindings*}. E.g., with
+the following code, new threads will read floating point values as
+doubles by default:
+
+ at example
+(push '(*read-default-float-format* . double-float)
+ swank:*default-worker-thread-bindings*).
+ at end example
+
@node Commands, Semantic indentation, User-interface conventions, slime-mode
@section Commands
@@ -523,7 +550,7 @@
@kbditem{C-M-x, slime-eval-defun}
Evaluate top-level form.
- at kbditem{C-c C-e, slime-eval-last-expression}
+ at kbditem{C-x C-e, slime-eval-last-expression}
Evaluate the expression before point.
@kbditem{C-c C-p, slime-pprint-eval-last-expression}
@@ -542,6 +569,10 @@
@end table
+If `C-M-x' or `C-x C-e' is given a numeric argument, it inserts the
+value into the current buffer at point, rather than displaying it in the
+echo area.
+
@node Documentation, Programming Helpers, Lisp Evaluation, Commands
@subsection Documentation
@@ -609,13 +640,16 @@
function at point, if there is one.
@kbditem{C-c C-m, slime-macroexpand-1}
-Macroexpand the expression at point once.
+Macroexpand the expression at point once. If invoked with a prefix
+argument, use macroexpand instead of macroexpand-1.
@kbditem{C-c M-m, slime-macroexpand-all}
Fully macroexpand the expression at point.
@kbditem{C-c C-t, slime-toggle-trace-fdefinition}
-Toggle tracing of the function at point.
+Toggle tracing of the function at point. If invoked with a prefix
+argument, read additional information, like which particular method
+should be traced.
@kbditem{C-c M-d, slime-disassemble-symbol}
Disassemble the function definition of the symbol at point.
@@ -945,9 +979,6 @@
@kbditem{i, sldb-inspect-in-frame}
Inspect the result of evaluating an expression in the frame.
- at kbditem{l, sldb-list-locals}
-List the local variables and their bindings in the frame.
-
@end table
@node Restarts, Frame Navigation, Examining frames, Debugger
@@ -1192,6 +1223,16 @@
structure (different ``mount points''). This is most common with
@acronym{SMB}-based file sharing.
+ at item slime-net-coding-system
+If you want to transmit Unicode characters between Emacs and the Lisp
+system, you should customize this variable. E.g., if you use SBCL, you
+can set @code{slime-net-coding-system} to @code{utf-8-unix}. To
+actually display a Unicode character you also need apropriate fonts,
+otherwise the character will be rendered as a hollow box. If you are
+using Allegro CL and GNU Emacs, you can also use @code{emacs-mule-unix}
+as coding system. GNU Emacs has often nicer fonts for the later
+encoding.
+
@end table
@menu
@@ -1311,9 +1352,17 @@
to handle all debugging in the Lisp image. This is for debugging
multithreaded and callback-driven applications.
- at item SWANK:*SLDB-PPRINT-FRAMES*
- at code{*PRINT-PRETTY*} is bound to this value while formatting
-backtraces in @SLDB{}. The default value is @code{NIL}.
+ at item SWANK:*SLDB-PRINTER-BINDINGS*
+ at item SWANK:*MACROEXPAND-PRINTER-BINDINGS*
+ at item SWANK:*SWANK-PPRINT-BINDINGS*
+These variables can be used to customize the printer in various
+situations. The values of the variables are association lists of
+printer variable names with the corresponding value. E.g., to enable
+the pretty printer for formatting backtraces in @SLDB{}, you can use:
+
+ at example
+(push '(*print-pretty* . t) swank:*sldb-printer-bindings*).
+ at end example
@item SWANK:*USE-DEDICATED-OUTPUT-STREAM*
This variable controls an optimization for sending printed output from
More information about the slime-cvs
mailing list