[bknr-cvs] r2452 - in branches/trunk-reorg/thirdparty/slime: . CVS contrib contrib/CVS doc/CVS
hhubner at common-lisp.net
hhubner at common-lisp.net
Thu Feb 7 08:33:05 UTC 2008
Author: hhubner
Date: Thu Feb 7 03:32:58 2008
New Revision: 2452
Removed:
branches/trunk-reorg/thirdparty/slime/CVS/Entries.Log
Modified:
branches/trunk-reorg/thirdparty/slime/CVS/Entries
branches/trunk-reorg/thirdparty/slime/ChangeLog
branches/trunk-reorg/thirdparty/slime/contrib/CVS/Entries
branches/trunk-reorg/thirdparty/slime/contrib/ChangeLog
branches/trunk-reorg/thirdparty/slime/contrib/swank-arglists.lisp
branches/trunk-reorg/thirdparty/slime/contrib/swank-fancy-inspector.lisp
branches/trunk-reorg/thirdparty/slime/contrib/swank-presentation-streams.lisp
branches/trunk-reorg/thirdparty/slime/doc/CVS/Entries
branches/trunk-reorg/thirdparty/slime/slime-autoloads.el
branches/trunk-reorg/thirdparty/slime/slime.el
branches/trunk-reorg/thirdparty/slime/swank-abcl.lisp
branches/trunk-reorg/thirdparty/slime/swank-allegro.lisp
branches/trunk-reorg/thirdparty/slime/swank-backend.lisp
branches/trunk-reorg/thirdparty/slime/swank-clisp.lisp
branches/trunk-reorg/thirdparty/slime/swank-cmucl.lisp
branches/trunk-reorg/thirdparty/slime/swank-corman.lisp
branches/trunk-reorg/thirdparty/slime/swank-ecl.lisp
branches/trunk-reorg/thirdparty/slime/swank-lispworks.lisp
branches/trunk-reorg/thirdparty/slime/swank-loader.lisp
branches/trunk-reorg/thirdparty/slime/swank-openmcl.lisp
branches/trunk-reorg/thirdparty/slime/swank-sbcl.lisp
branches/trunk-reorg/thirdparty/slime/swank-scl.lisp
branches/trunk-reorg/thirdparty/slime/swank.lisp
Log:
delete unwanted file
Modified: branches/trunk-reorg/thirdparty/slime/CVS/Entries
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/CVS/Entries (original)
+++ branches/trunk-reorg/thirdparty/slime/CVS/Entries Thu Feb 7 03:32:58 2008
@@ -1,35 +1,35 @@
D/contrib////
D/doc////
-/.cvsignore/1.5/Sun Apr 8 19:23:57 2007//
-/ChangeLog/1.1274/Sun Jan 27 22:03:20 2008//
-/HACKING/1.8/Sun Jan 27 22:03:20 2008//
-/NEWS/1.9/Sun Jan 27 22:03:20 2008//
-/PROBLEMS/1.8/Sun Jan 27 22:03:20 2008//
-/README/1.14/Sun Jan 27 22:03:20 2008//
-/hyperspec.el/1.11/Sun Jan 27 22:03:20 2008//
-/metering.lisp/1.4/Sun Jan 27 22:03:20 2008//
-/mkdist.sh/1.7/Sun Jan 27 22:03:20 2008//
-/nregex.lisp/1.4/Sun Jan 27 22:03:20 2008//
-/sbcl-pprint-patch.lisp/1.1/Sun Jan 27 22:03:20 2008//
-/slime-autoloads.el/1.3/Sun Jan 27 22:03:20 2008//
-/slime.el/1.896/Sun Jan 27 22:03:20 2008//
-/swank-abcl.lisp/1.44/Sun Jan 27 22:03:20 2008//
-/swank-allegro.lisp/1.98/Sun Jan 27 22:03:20 2008//
-/swank-backend.lisp/1.126/Sun Jan 27 22:03:21 2008//
-/swank-clisp.lisp/1.64/Sun Jan 27 22:03:21 2008//
-/swank-cmucl.lisp/1.175/Sun Jan 27 22:03:21 2008//
-/swank-corman.lisp/1.11/Sun Jan 27 22:03:21 2008//
-/swank-ecl.lisp/1.11/Sun Jan 27 22:03:21 2008//
-/swank-gray.lisp/1.10/Sun Jan 27 22:03:21 2008//
-/swank-lispworks.lisp/1.93/Sun Jan 27 22:03:21 2008//
-/swank-loader.lisp/1.75/Sun Jan 27 22:03:21 2008//
-/swank-openmcl.lisp/1.120/Sun Jan 27 22:03:21 2008//
-/swank-sbcl.lisp/1.187/Sun Jan 27 22:03:21 2008//
-/swank-scl.lisp/1.14/Sun Jan 27 22:03:21 2008//
-/swank-source-file-cache.lisp/1.8/Sun Jan 27 22:03:21 2008//
-/swank-source-path-parser.lisp/1.18/Sun Jan 27 22:03:21 2008//
-/swank.asd/1.5/Sun Jan 27 22:03:21 2008//
-/swank.lisp/1.523/Sun Jan 27 22:03:21 2008//
-/test-all.sh/1.2/Sun Jan 27 22:03:21 2008//
-/test.sh/1.9/Sun Jan 27 22:03:21 2008//
-/xref.lisp/1.2/Sun Jan 27 22:03:21 2008//
+/.cvsignore/1.5/Thu Oct 11 14:10:25 2007//
+/ChangeLog/1.1282/Thu Feb 7 08:07:30 2008//
+/HACKING/1.8/Thu Oct 11 14:10:25 2007//
+/NEWS/1.9/Sun Dec 2 04:22:09 2007//
+/PROBLEMS/1.8/Thu Oct 11 14:10:25 2007//
+/README/1.14/Thu Oct 11 14:10:25 2007//
+/hyperspec.el/1.11/Thu Oct 11 14:10:25 2007//
+/metering.lisp/1.4/Thu Oct 11 14:10:25 2007//
+/mkdist.sh/1.7/Thu Oct 11 14:10:25 2007//
+/nregex.lisp/1.4/Thu Oct 11 14:10:25 2007//
+/sbcl-pprint-patch.lisp/1.1/Thu Oct 11 14:10:25 2007//
+/slime-autoloads.el/1.4/Thu Feb 7 08:07:30 2008//
+/slime.el/1.901/Thu Feb 7 08:07:31 2008//
+/swank-abcl.lisp/1.45/Thu Feb 7 08:07:31 2008//
+/swank-allegro.lisp/1.99/Thu Feb 7 08:07:31 2008//
+/swank-backend.lisp/1.127/Thu Feb 7 08:07:31 2008//
+/swank-clisp.lisp/1.65/Thu Feb 7 08:07:31 2008//
+/swank-cmucl.lisp/1.176/Thu Feb 7 08:07:31 2008//
+/swank-corman.lisp/1.13/Thu Feb 7 08:07:31 2008//
+/swank-ecl.lisp/1.12/Thu Feb 7 08:07:31 2008//
+/swank-gray.lisp/1.10/Thu Oct 11 14:10:25 2007//
+/swank-lispworks.lisp/1.94/Thu Feb 7 08:07:31 2008//
+/swank-loader.lisp/1.77/Thu Feb 7 08:07:31 2008//
+/swank-openmcl.lisp/1.122/Thu Feb 7 08:07:31 2008//
+/swank-sbcl.lisp/1.189/Thu Feb 7 08:07:31 2008//
+/swank-scl.lisp/1.15/Thu Feb 7 08:07:31 2008//
+/swank-source-file-cache.lisp/1.8/Thu Oct 11 14:10:25 2007//
+/swank-source-path-parser.lisp/1.18/Thu Feb 7 07:59:36 2008//
+/swank.asd/1.5/Thu Oct 11 14:10:25 2007//
+/swank.lisp/1.527/Thu Feb 7 08:07:31 2008//
+/test-all.sh/1.2/Thu Oct 11 14:10:25 2007//
+/test.sh/1.9/Thu Oct 11 14:10:25 2007//
+/xref.lisp/1.2/Thu Oct 11 14:10:25 2007//
Modified: branches/trunk-reorg/thirdparty/slime/ChangeLog
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/ChangeLog (original)
+++ branches/trunk-reorg/thirdparty/slime/ChangeLog Thu Feb 7 03:32:58 2008
@@ -1,7 +1,73 @@
+2008-02-05 Marco Baringer <mb at bese.it>
+
+ * slime.el (slime-search-buffer-package): Ask the lisp to read the
+ in-package form so that we properly deal with #+foo and |WHATEVER|
+ package names.
+ (slime-repl-set-package): Only prompt with a default package if
+ the repl's package is different from the current package.
+
+2008-02-04 Marco Baringer <mb at bese.it>
+
+ * swank-openmcl.lisp (ccl::advise ccl::break): advise the
+ lower-level ccl::cbreak-loop instead of cl:break.
+ (frame-locals): If the value is a value-cell (a closed over value)
+ show the closed over value and not the value cell.
+ (disassemble-frame): add in x86-64 code.
+
+ * slime-autoloads.el (slime-setup-contribs): Add contribs
+ directory to load-path.
+
+ * slime.el (slime-setup): Add contribs directory to load-path.
+
+ * swank-abcl.lisp, swank-allegro.lisp, swank-backend.lisp,
+ swank-clisp.lisp, swank-cmucl.lisp, swank-corman.lisp,
+ swank-ecl.lisp, swank-lispworks.lisp, swank-openmcl.lisp,
+ swank-sbcl.lisp, swank-scl.lisp, swank.lisp,
+ contrib/swank-fancy-inspector.lisp: Remove second argument from
+ swank:inspect-for-emacs. This functionality, choosing an inspector
+ at runtime, was never actually used and is, now, needless
+ complexity.
+
+2008-02-04 Helmut Eller <heller at common-lisp.net>
+
+ Simpler code to bind 0-9 in the debugger.
+
+ * slime.el (sldb-mode-map): When binding the keys 0-9, use eval
+ instead of two macros.
+
+2008-02-04 Helmut Eller <heller at common-lisp.net>
+
+ Move some functions to swank-arglist.lisp.
+
+ * swank.lisp (length=, ensure-list, recursively-empty-p)
+ (maybecall, exactly-one-p, read-softly-from-string)
+ (unintern-in-home-package, valid-function-name-p): Moved to
+ contrib/swank-arglist.lisp.
+
+2008-02-03 Marco Baringer <mb at bese.it>
+
+ * swank.lisp (*sldb-condition-printer*): New variable.
+ (safe-condition-message): Use the current binding
+ of *sldb-condition-printer* to print the condition to a string.
+
+ * slime.el (sldb-invoke-restart-by-name): New function. Invokes a
+ restart by name, uses completion to read restart's name.
+ (slime-define-keys sldb-mode-map): Bind
+ sldb-invoke-restart-by-name to I in sldb buffers.
+
+ * swank-loader.lisp: When loading swank delete all swank packages
+ first. This protects the lisp from broken reloads of swank. Leave
+ the swank-loader package so that users can set *fasl-directory*
+ and *source-directory* as per the documentation.
+ (lisp-version-string): On openmcl use the full
+ cl:lisp-implementation-version, ccl::*openmcl-major-version* and
+ ccl::*openmcl-minor-version* aren't sufficently precise to notice
+ changes in openmcl's cvs.
+
2008-01-27 Helmut Eller <heller at common-lisp.net>
Make it easier to start a non-default Lisp from ELisp code.
-
+
* slime.el (slime): If the argument is a symbol start the
corresponding entry in slime-lisp-implementations.
Typical use is something like:
@@ -15,7 +81,7 @@
(suppress-sharp-dot): unused, delete it.
* slime.el (test compile-defun): test with #+#.'(:and).
-
+
2008-01-21 Helmut Eller <heller at common-lisp.net>
* slime.el (sldb-mode): Don't throw to toplevel in the
Modified: branches/trunk-reorg/thirdparty/slime/contrib/CVS/Entries
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/contrib/CVS/Entries (original)
+++ branches/trunk-reorg/thirdparty/slime/contrib/CVS/Entries Thu Feb 7 03:32:58 2008
@@ -1,33 +1,37 @@
-/ChangeLog/1.82/Sun Jan 27 22:03:21 2008//
-/README/1.3/Sun Jan 27 22:03:21 2008//
-/bridge.el/1.1/Sun Jan 27 22:03:22 2008//
-/inferior-slime.el/1.2/Sun Jan 27 22:03:22 2008//
-/slime-asdf.el/1.3/Sun Jan 27 22:03:22 2008//
-/slime-autodoc.el/1.7/Sun Jan 27 22:03:22 2008//
-/slime-banner.el/1.4/Sun Jan 27 22:03:22 2008//
-/slime-c-p-c.el/1.8/Sun Jan 27 22:03:22 2008//
-/slime-editing-commands.el/1.6/Sun Jan 27 22:03:22 2008//
-/slime-fancy-inspector.el/1.2/Sun Jan 27 22:03:22 2008//
-/slime-fancy.el/1.4/Sun Jan 27 22:03:22 2008//
-/slime-fuzzy.el/1.6/Sun Jan 27 22:03:22 2008//
-/slime-highlight-edits.el/1.3/Sun Jan 27 22:03:22 2008//
-/slime-parse.el/1.10/Sun Jan 27 22:03:22 2008//
-/slime-presentation-streams.el/1.2/Sun Jan 27 22:03:22 2008//
-/slime-presentations.el/1.12/Sun Jan 27 22:03:22 2008//
-/slime-references.el/1.4/Sun Jan 27 22:03:22 2008//
-/slime-scheme.el/1.1/Wed Jan 9 18:30:26 2008//
-/slime-scratch.el/1.4/Sun Jan 27 22:03:22 2008//
-/slime-tramp.el/1.2/Sun Jan 27 22:03:22 2008//
-/slime-typeout-frame.el/1.6/Sun Jan 27 22:03:22 2008//
-/slime-xref-browser.el/1.1/Sun Jan 27 22:03:22 2008//
-/swank-arglists.lisp/1.18/Sun Jan 27 22:03:22 2008//
-/swank-asdf.lisp/1.1/Sun Jan 27 22:03:22 2008//
-/swank-c-p-c.lisp/1.2/Sun Jan 27 22:03:22 2008//
-/swank-fancy-inspector.lisp/1.5/Sun Jan 27 22:03:22 2008//
-/swank-fuzzy.lisp/1.7/Sun Jan 27 22:03:22 2008//
-/swank-goo.goo/1.1/Sat Jan 19 14:08:27 2008//
-/swank-kawa.scm/1.1/Sat Jan 19 14:08:27 2008//
-/swank-listener-hooks.lisp/1.1/Sun Jan 27 22:03:22 2008//
-/swank-presentation-streams.lisp/1.4/Sun Jan 27 22:03:22 2008//
-/swank-presentations.lisp/1.4/Sun Jan 27 22:03:22 2008//
+/ChangeLog/1.87/Thu Feb 7 08:07:31 2008//
+/README/1.3/Thu Oct 11 14:10:25 2007//
+/bridge.el/1.1/Thu Oct 11 14:10:25 2007//
+/inferior-slime.el/1.2/Thu Oct 11 14:10:25 2007//
+/slime-asdf.el/1.3/Thu Oct 11 14:10:25 2007//
+/slime-autodoc.el/1.7/Thu Feb 7 07:59:35 2008//
+/slime-banner.el/1.4/Thu Oct 11 14:10:25 2007//
+/slime-c-p-c.el/1.8/Thu Oct 11 14:10:25 2007//
+/slime-editing-commands.el/1.6/Thu Feb 7 07:59:35 2008//
+/slime-fancy-inspector.el/1.2/Thu Oct 11 14:10:25 2007//
+/slime-fancy.el/1.4/Thu Oct 11 14:10:25 2007//
+/slime-fuzzy.el/1.6/Thu Feb 7 07:59:35 2008//
+/slime-highlight-edits.el/1.3/Thu Oct 11 14:10:25 2007//
+/slime-indentation.el/1.1/Sun Feb 3 18:45:14 2008//
+/slime-motd.el/1.1/Sun Feb 3 18:39:23 2008//
+/slime-parse.el/1.10/Thu Feb 7 07:59:35 2008//
+/slime-presentation-streams.el/1.2/Thu Oct 11 14:10:25 2007//
+/slime-presentations.el/1.12/Thu Feb 7 07:59:35 2008//
+/slime-references.el/1.4/Thu Oct 11 14:10:25 2007//
+/slime-scheme.el/1.1/Thu Feb 7 08:07:31 2008//
+/slime-scratch.el/1.4/Thu Oct 11 14:10:25 2007//
+/slime-tramp.el/1.2/Thu Oct 11 14:10:25 2007//
+/slime-typeout-frame.el/1.6/Thu Feb 7 07:59:35 2008//
+/slime-xref-browser.el/1.1/Thu Oct 11 14:10:25 2007//
+/swank-arglists.lisp/1.20/Thu Feb 7 08:07:31 2008//
+/swank-asdf.lisp/1.1/Thu Oct 11 14:10:25 2007//
+/swank-c-p-c.lisp/1.2/Thu Oct 11 14:10:25 2007//
+/swank-fancy-inspector.lisp/1.7/Thu Feb 7 08:07:32 2008//
+/swank-fuzzy.lisp/1.7/Thu Feb 7 07:59:35 2008//
+/swank-goo.goo/1.1/Thu Feb 7 08:07:32 2008//
+/swank-indentation.lisp/1.1/Sun Feb 3 18:45:14 2008//
+/swank-kawa.scm/1.1/Thu Feb 7 08:07:32 2008//
+/swank-listener-hooks.lisp/1.1/Thu Oct 11 14:10:25 2007//
+/swank-motd.lisp/1.1/Sun Feb 3 18:39:23 2008//
+/swank-presentation-streams.lisp/1.5/Thu Feb 7 08:07:32 2008//
+/swank-presentations.lisp/1.4/Thu Oct 11 14:10:25 2007//
D
Modified: branches/trunk-reorg/thirdparty/slime/contrib/ChangeLog
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/contrib/ChangeLog (original)
+++ branches/trunk-reorg/thirdparty/slime/contrib/ChangeLog Thu Feb 7 03:32:58 2008
@@ -1,7 +1,37 @@
+2008-02-04 Marco Baringer <mb at bese.it>
+
+ * swank-presentation-streams.lisp (presenting-object-1): Add
+ declare special *record-repl-results* to silence compiler
+ warnings.
+
+ * swank-arglists.lisp (arglist-dispatch): Specialize operator-type
+ so openmcl doesn't warn about unused arguments.
+ (arglist-dispatch): add declare ignore form.
+
+2008-02-04 Helmut Eller <heller at common-lisp.net>
+
+ Move some functions to swank-arglist.lisp.
+
+ * swank-arglist.lisp (length=, ensure-list, recursively-empty-p)
+ (maybecall, exactly-one-p, read-softly-from-string)
+ (unintern-in-home-package, valid-function-name-p): Moved from
+ swank.lisp. to contrib/swank-arglist.lisp.
+
+2008-02-03 Marco Baringer <mb at bese.it>
+
+ * swank-motd.lisp, slime-motd.el: Message Of The Day printing for
+ slime.
+
+ * slime-indentation.el: Integrate cl-indent.el into slime's
+ contrib infrastructure. Fix bug in &rest.
+
+ * swank-indentation.lisp: Allow an application runnig under slime
+ to update emacs' indentation notes.
+
2008-01-27 Helmut Eller <heller at common-lisp.net>
Make autodoc use the correct width of the typeout-window.
-
+
* slime-autodoc.el (slime-autodoc-dimensions-function): New
variable.
(slime-autodoc-message-dimensions): Use it.
@@ -13,7 +43,7 @@
2008-01-27 Helmut Eller <heller at common-lisp.net>
Use slime-require instead of a connected-hook.
-
+
* slime-autodoc.el (slime-autodoc-on-connect): Deleted.
2008-01-20 Matthias Koeppe <mkoeppe at mail.math.uni-magdeburg.de>
Modified: branches/trunk-reorg/thirdparty/slime/contrib/swank-arglists.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/contrib/swank-arglists.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/contrib/swank-arglists.lisp Thu Feb 7 03:32:58 2008
@@ -12,6 +12,40 @@
(eval-when (:compile-toplevel :load-toplevel :execute)
(swank-require :swank-c-p-c))
+(defun length= (seq n)
+ "Test for whether SEQ contains N number of elements. I.e. it's equivalent
+ to (= (LENGTH SEQ) N), but besides being more concise, it may also be more
+ efficiently implemented."
+ (etypecase seq
+ (list (do ((i n (1- i))
+ (list seq (cdr list)))
+ ((or (<= i 0) (null list))
+ (and (zerop i) (null list)))))
+ (sequence (= (length seq) n))))
+
+(defun ensure-list (thing)
+ (if (listp thing) thing (list thing)))
+
+(defun recursively-empty-p (list)
+ "Returns whether LIST consists only of arbitrarily nested empty lists."
+ (cond ((not (listp list)) nil)
+ ((null list) t)
+ (t (every #'recursively-empty-p list))))
+
+(defun maybecall (bool fn &rest args)
+ "Call FN with ARGS if BOOL is T. Otherwise return ARGS as multiple values."
+ (if bool (apply fn args) (values-list args)))
+
+(defun exactly-one-p (&rest values)
+ "If exactly one value in VALUES is non-NIL, this value is returned.
+Otherwise NIL is returned."
+ (let ((found nil))
+ (dolist (v values)
+ (when v (if found
+ (return-from exactly-one-p nil)
+ (setq found v))))
+ found))
+
(defun valid-operator-symbol-p (symbol)
"Is SYMBOL the name of a function, a macro, or a special-operator?"
(or (fboundp symbol)
@@ -24,6 +58,14 @@
(let ((symbol (parse-symbol string)))
(valid-operator-symbol-p symbol)))
+(defun valid-function-name-p (form)
+ (or (symbolp form)
+ (and (consp form)
+ (second form)
+ (not (third form))
+ (eq (first form) 'setf)
+ (symbolp (second form)))))
+
(defslimefun arglist-for-echo-area (raw-specs &key arg-indices
print-right-margin print-lines)
"Return the arglist for the first valid ``form spec'' in
@@ -243,6 +285,29 @@
(assert (= pos (length string)))
(values sexp interned?)))
+(defun read-softly-from-string (string)
+ "Returns three values:
+
+ 1. the object resulting from READing STRING.
+
+ 2. The index of the first character in STRING that was not read.
+
+ 3. T if the object is a symbol that had to be newly interned
+ in some package. (This does not work for symbols in
+ compound forms like lists or vectors.)"
+ (multiple-value-bind (symbol found? symbol-name package) (parse-symbol string)
+ (if found?
+ (values symbol (length string) nil)
+ (multiple-value-bind (sexp pos) (read-from-string string)
+ (values sexp pos
+ (when (symbolp sexp)
+ (prog1 t
+ ;; assert that PARSE-SYMBOL didn't parse incorrectly.
+ (assert (and (equal symbol-name (symbol-name sexp))
+ (eq package (symbol-package sexp)))))))))))
+
+(defun unintern-in-home-package (symbol)
+ (unintern symbol (symbol-package symbol)))
(defstruct (arglist (:conc-name arglist.) (:predicate arglist-p))
provided-args ; list of the provided actual arguments
@@ -1022,7 +1087,7 @@
(defgeneric arglist-dispatch (operator-type operator arguments &key remove-args))
-(defmethod arglist-dispatch (operator-type operator arguments &key (remove-args t))
+(defmethod arglist-dispatch ((operator-type t) operator arguments &key (remove-args t))
(when (and (symbolp operator)
(valid-operator-symbol-p operator))
(multiple-value-bind (decoded-arglist determining-args any-enrichment)
@@ -1075,7 +1140,7 @@
(defmethod arglist-dispatch ((operator-type (eql :function)) (operator (eql 'declare))
arguments &key (remove-args t))
;; Catching 'DECLARE before SWANK-BACKEND:ARGLIST can barf.
- (declare (ignore remove-args))
+ (declare (ignore remove-args arguments))
(make-arglist :rest '#:decl-specifiers))
(defmethod arglist-dispatch ((operator-type (eql :declaration))
Modified: branches/trunk-reorg/thirdparty/slime/contrib/swank-fancy-inspector.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/contrib/swank-fancy-inspector.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/contrib/swank-fancy-inspector.lisp Thu Feb 7 03:32:58 2008
@@ -6,12 +6,7 @@
(in-package :swank)
-;; Subclass `backend-inspector' so that backend specific methods are
-;; also considered.
-(defclass fancy-inspector (backend-inspector) ())
-
-(defmethod inspect-for-emacs ((symbol symbol) (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((symbol symbol))
(let ((package (symbol-package symbol)))
(multiple-value-bind (_symbol status)
(and package (find-symbol (string symbol) package))
@@ -94,8 +89,7 @@
(t
(list label ": " '(:newline) " " docstring '(:newline))))))
-(defmethod inspect-for-emacs ((f function) inspector)
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((f function))
(values "A function."
(append
(label-value-line "Name" (function-name f))
@@ -128,12 +122,11 @@
(swank-mop:method-qualifiers method)
(method-specializers-for-inspect method)))
-(defmethod inspect-for-emacs ((object standard-object)
- (inspector fancy-inspector))
+(defmethod inspect-for-emacs ((object standard-object))
(let ((class (class-of object)))
(values "An object."
`("Class: " (:value ,class) (:newline)
- ,@(all-slots-for-inspector object inspector)))))
+ ,@(all-slots-for-inspector object)))))
(defvar *gf-method-getter* 'methods-by-applicability
"This function is called to get the methods of a generic function.
@@ -193,8 +186,8 @@
`(" " (:action "[make unbound]"
,(lambda () (swank-mop:slot-makunbound-using-class class object slot)))))))))
-(defgeneric all-slots-for-inspector (object inspector)
- (:method ((object standard-object) inspector)
+(defgeneric all-slots-for-inspector (object)
+ (:method ((object standard-object))
(declare (ignore inspector))
(append '("--------------------" (:newline)
"All Slots:" (:newline))
@@ -231,8 +224,7 @@
append slot-presentation
collect '(:newline))))))
-(defmethod inspect-for-emacs ((gf standard-generic-function)
- (inspector fancy-inspector))
+(defmethod inspect-for-emacs ((gf standard-generic-function))
(flet ((lv (label value) (label-value-line label value)))
(values
"A generic function."
@@ -255,10 +247,9 @@
(remove-method gf m))))
(:newline)))
`((:newline))
- (all-slots-for-inspector gf inspector)))))
+ (all-slots-for-inspector gf)))))
-(defmethod inspect-for-emacs ((method standard-method)
- (inspector fancy-inspector))
+(defmethod inspect-for-emacs ((method standard-method))
(values "A method."
`("Method defined on the generic function "
(:value ,(swank-mop:method-generic-function method)
@@ -276,10 +267,9 @@
(:newline)
"Method function: " (:value ,(swank-mop:method-function method))
(:newline)
- ,@(all-slots-for-inspector method inspector))))
+ ,@(all-slots-for-inspector method))))
-(defmethod inspect-for-emacs ((class standard-class)
- (inspector fancy-inspector))
+(defmethod inspect-for-emacs ((class standard-class))
(values "A class."
`("Name: " (:value ,(class-name class))
(:newline)
@@ -336,10 +326,9 @@
`(:value ,(swank-mop:class-prototype class))
'"#<N/A (class not finalized)>")
(:newline)
- ,@(all-slots-for-inspector class inspector))))
+ ,@(all-slots-for-inspector class))))
-(defmethod inspect-for-emacs ((slot swank-mop:standard-slot-definition)
- (inspector fancy-inspector))
+(defmethod inspect-for-emacs ((slot swank-mop:standard-slot-definition))
(values "A slot."
`("Name: " (:value ,(swank-mop:slot-definition-name slot))
(:newline)
@@ -353,7 +342,7 @@
"#<unspecified>") (:newline)
"Init function: " (:value ,(swank-mop:slot-definition-initfunction slot))
(:newline)
- ,@(all-slots-for-inspector slot inspector))))
+ ,@(all-slots-for-inspector slot))))
;; Wrapper structure over the list of symbols of a package that should
@@ -445,9 +434,7 @@
(:newline)
)))))
-(defmethod inspect-for-emacs ((%container %package-symbols-container)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((%container %package-symbols-container))
(with-struct (%container. title description symbols grouping-kind) %container
(values title
`(, at description
@@ -464,10 +451,7 @@
(:newline) (:newline)
,@(make-symbols-listing grouping-kind symbols)))))
-
-(defmethod inspect-for-emacs ((package package)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((package package))
(let ((package-name (package-name package))
(package-nicknames (package-nicknames package))
(package-use-list (package-use-list package))
@@ -561,9 +545,7 @@
:description nil)))))))
-(defmethod inspect-for-emacs ((pathname pathname)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((pathname pathname))
(values (if (wild-pathname-p pathname)
"A wild pathname."
"A pathname.")
@@ -579,9 +561,7 @@
(not (probe-file pathname)))
(label-value-line "Truename" (truename pathname))))))
-(defmethod inspect-for-emacs ((pathname logical-pathname)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((pathname logical-pathname))
(values "A logical pathname."
(append
(label-value-line*
@@ -601,9 +581,7 @@
("Truename" (if (not (wild-pathname-p pathname))
(probe-file pathname)))))))
-(defmethod inspect-for-emacs ((n number)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((n number))
(values "A number." `("Value: " ,(princ-to-string n))))
(defun format-iso8601-time (time-value &optional include-timezone-p)
@@ -626,9 +604,7 @@
year month day hour minute second
include-timezone-p (format-iso8601-timezone zone)))))
-(defmethod inspect-for-emacs ((i integer)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((i integer))
(values "A number."
(append
`(,(format nil "Value: ~D = #x~8,'0X = #o~O = #b~,,' ,8:B~@[ = ~E~]"
@@ -640,26 +616,20 @@
(ignore-errors
(label-value-line "Universal-time" (format-iso8601-time i t))))))
-(defmethod inspect-for-emacs ((c complex)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((c complex))
(values "A complex number."
(label-value-line*
("Real part" (realpart c))
("Imaginary part" (imagpart c)))))
-(defmethod inspect-for-emacs ((r ratio)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((r ratio))
(values "A non-integer ratio."
(label-value-line*
("Numerator" (numerator r))
("Denominator" (denominator r))
("As float" (float r)))))
-(defmethod inspect-for-emacs ((f float)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((f float))
(values "A floating point number."
(cond
((> f most-positive-long-float)
@@ -679,9 +649,7 @@
(label-value-line "Digits" (float-digits f))
(label-value-line "Precision" (float-precision f))))))))
-(defmethod inspect-for-emacs ((stream file-stream)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((stream file-stream))
(multiple-value-bind (title content)
(call-next-method)
(declare (ignore title))
@@ -699,9 +667,7 @@
(:newline))
content))))
-(defmethod inspect-for-emacs ((condition stream-error)
- (inspector fancy-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((condition stream-error))
(multiple-value-bind (title content)
(call-next-method)
(let ((stream (stream-error-stream condition)))
@@ -724,14 +690,10 @@
(defvar *fancy-inpector-undo-list* nil)
(defslimefun fancy-inspector-init ()
- (let ((i *default-inspector*))
- (push (lambda () (setq *default-inspector* i))
- *fancy-inpector-undo-list*))
- (setq *default-inspector* (make-instance 'fancy-inspector))
t)
(defslimefun fancy-inspector-unload ()
(loop while *fancy-inpector-undo-list* do
(funcall (pop *fancy-inpector-undo-list*))))
-(provide :swank-fancy-inspector)
\ No newline at end of file
+(provide :swank-fancy-inspector)
Modified: branches/trunk-reorg/thirdparty/slime/contrib/swank-presentation-streams.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/contrib/swank-presentation-streams.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/contrib/swank-presentation-streams.lisp Thu Feb 7 03:32:58 2008
@@ -210,6 +210,9 @@
(defun presenting-object-1 (object stream continue)
"Uses the bridge mechanism with two messages >id and <id. The first one
says that I am starting to print an object with this id. The second says I am finished"
+ ;; this declare special is to let the compiler know that *record-repl-results* will eventually be
+ ;; a global special, even if it isn't when this file is compiled/loaded.
+ (declare (special *record-repl-results*))
(let ((slime-stream-p
(and *record-repl-results* (slime-stream-p stream))))
(if slime-stream-p
Modified: branches/trunk-reorg/thirdparty/slime/doc/CVS/Entries
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/doc/CVS/Entries (original)
+++ branches/trunk-reorg/thirdparty/slime/doc/CVS/Entries Thu Feb 7 03:32:58 2008
@@ -1,9 +1,9 @@
-/.cvsignore/1.1/Mon Jul 24 14:13:23 2006//
-/Makefile/1.12/Sun Jan 27 22:03:22 2008//
-/slime-refcard.pdf/1.1/Sun Jan 27 22:03:22 2008//
-/slime-refcard.tex/1.1/Sun Jan 27 22:03:22 2008//
-/slime-small.eps/1.1/Sun Jan 27 22:03:22 2008//
-/slime-small.pdf/1.1/Sun Jan 27 22:03:22 2008//
-/slime.texi/1.64/Sun Jan 27 22:03:22 2008//
-/texinfo-tabulate.awk/1.2/Sun Jan 27 22:03:22 2008//
+/.cvsignore/1.1/Thu Oct 11 14:10:24 2007//
+/Makefile/1.12/Thu Oct 11 14:10:24 2007//
+/slime-refcard.pdf/1.1/Thu Oct 11 14:10:24 2007//
+/slime-refcard.tex/1.1/Thu Oct 11 14:10:24 2007//
+/slime-small.eps/1.1/Thu Oct 11 14:10:24 2007//
+/slime-small.pdf/1.1/Thu Oct 11 14:10:24 2007//
+/slime.texi/1.64/Thu Feb 7 07:59:33 2008//
+/texinfo-tabulate.awk/1.2/Thu Oct 11 14:10:24 2007//
D
Modified: branches/trunk-reorg/thirdparty/slime/slime-autoloads.el
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/slime-autoloads.el (original)
+++ branches/trunk-reorg/thirdparty/slime/slime-autoloads.el Thu Feb 7 03:32:58 2008
@@ -39,11 +39,16 @@
(defvar slime-setup-contribs nil)
(defun slime-setup-contribs ()
- (dolist (c slime-setup-contribs)
- (require c)
- (let ((init (intern (format "%s-init" c))))
- (when (fboundp init)
- (funcall init)))))
+ (when slime-setup-contribs
+ (pushnew (file-name-as-directory
+ (expand-file-name (concat slime-path "contribs")))
+ load-path
+ :test 'string=)
+ (dolist (c slime-setup-contribs)
+ (require c)
+ (let ((init (intern (format "%s-init" c))))
+ (when (fboundp init)
+ (funcall init))))))
(provide 'slime-autoloads)
Modified: branches/trunk-reorg/thirdparty/slime/slime.el
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/slime.el (original)
+++ branches/trunk-reorg/thirdparty/slime/slime.el Thu Feb 7 03:32:58 2008
@@ -71,11 +71,16 @@
CONTRIBS is a list of contrib packages to load."
(when (member 'lisp-mode slime-lisp-modes)
(add-hook 'lisp-mode-hook 'slime-lisp-mode-hook))
- (dolist (c contribs)
- (require c)
- (let ((init (intern (format "%s-init" c))))
- (when (fboundp init)
- (funcall init)))))
+ (when contribs
+ (pushnew (file-name-as-directory
+ (expand-file-name (concat slime-path "contribs")))
+ load-path
+ :test 'string=)
+ (dolist (c contribs)
+ (require c)
+ (let ((init (intern (format "%s-init" c))))
+ (when (fboundp init)
+ (funcall init))))))
(defun slime-lisp-mode-hook ()
(slime-mode 1)
@@ -2262,7 +2267,11 @@
(save-excursion
(when (or (re-search-backward regexp nil t)
(re-search-forward regexp nil t))
- (match-string-no-properties 2)))))
+ ;; package name can be a string designator, convert it to a string.
+ ;;(slime-eval `(cl:string (cl:second (cl:read-from-string ,(match-string-no-properties 0))))
+ ;; "COMMON-LISP-USER")
+ (match-string-no-properties 2)
+ ))))
;;; Synchronous requests are implemented in terms of asynchronous
;;; ones. We make an asynchronous request with a continuation function
@@ -3312,8 +3321,12 @@
(defun slime-repl-set-package (package)
"Set the package of the REPL buffer to PACKAGE."
- (interactive (list (slime-read-package-name
- "Package: " (slime-pretty-find-buffer-package))))
+ (interactive (list (slime-read-package-name "Package: "
+ (if (string= (slime-current-package)
+ (with-current-buffer (slime-repl-buffer)
+ (slime-current-package)))
+ nil
+ (slime-pretty-find-buffer-package)))))
(with-current-buffer (slime-output-buffer)
(let ((unfinished-input (slime-repl-current-input)))
(destructuring-bind (name prompt-string)
@@ -6551,6 +6564,7 @@
(">" 'sldb-end-of-backtrace)
("t" 'sldb-toggle-details)
("r" 'sldb-restart-frame)
+ ("I" 'sldb-invoke-restart-by-name)
("R" 'sldb-return-from-frame)
("c" 'sldb-continue)
("s" 'sldb-step)
@@ -6573,23 +6587,14 @@
(define-key sldb-mode-map key command)))))
;; Keys 0-9 are shortcuts to invoke particular restarts.
-(defmacro define-sldb-invoke-restart-key (number key)
+(dotimes (number 10)
(let ((fname (intern (format "sldb-invoke-restart-%S" number)))
(docstring (format "Invoke restart numbered %S." number)))
- `(progn
- (defun ,fname ()
- ,docstring
- (interactive)
- (sldb-invoke-restart ,number))
- (define-key sldb-mode-map ,key ',fname))))
-
-(defmacro define-sldb-invoke-restart-keys (from to)
- `(progn
- ,@(loop for n from from to to
- collect `(define-sldb-invoke-restart-key ,n
- ,(number-to-string n)))))
-
-(define-sldb-invoke-restart-keys 0 9)
+ (eval `(defun ,fname ()
+ ,docstring
+ (interactive)
+ (sldb-invoke-restart ,number)))
+ (define-key sldb-mode-map (number-to-string number) fname)))
;;;;; SLDB buffer creation & update
@@ -7223,6 +7228,14 @@
((:ok value) (message "Restart returned: %s" value))
((:abort)))))
+(defun sldb-invoke-restart-by-name (restart-name)
+ (interactive (list (completing-read "Restart: "
+ sldb-restarts nil t
+ ""
+ 'sldb-invoke-restart-by-name)))
+ (sldb-invoke-restart (position restart-name sldb-restarts
+ :test 'string= :key 'first)))
+
(defun sldb-break-with-default-debugger ()
"Enter default debugger."
(interactive)
Modified: branches/trunk-reorg/thirdparty/slime/swank-abcl.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-abcl.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-abcl.lisp Thu Feb 7 03:32:58 2008
@@ -421,14 +421,7 @@
;;;; Inspecting
-(defclass abcl-inspector (backend-inspector) ())
-
-(defimplementation make-default-inspector ()
- (make-instance 'abcl-inspector))
-
-(defmethod inspect-for-emacs ((slot mop::slot-definition)
- (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((slot mop::slot-definition))
(values "A slot."
`("Name: " (:value ,(mop::%slot-definition-name slot))
(:newline)
@@ -443,8 +436,7 @@
" Function: " (:value ,(mop::%slot-definition-initfunction slot))
(:newline))))
-(defmethod inspect-for-emacs ((f function) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((f function))
(values "A function."
`(,@(when (function-name f)
`("Name: "
@@ -461,7 +453,7 @@
#|
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
+(defmethod inspect-for-emacs ((o t))
(let* ((class (class-of o))
(slots (mop::class-slots class)))
(values (format nil "~A~% is a ~A" o class)
Modified: branches/trunk-reorg/thirdparty/slime/swank-allegro.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-allegro.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-allegro.lisp Thu Feb 7 03:32:58 2008
@@ -564,13 +564,7 @@
;;;; Inspecting
-(defclass acl-inspector (backend-inspector) ())
-
-(defimplementation make-default-inspector ()
- (make-instance 'acl-inspector))
-
-(defmethod inspect-for-emacs ((f function) inspector)
- inspector
+(defmethod inspect-for-emacs ((f function))
(values "A function."
(append
(label-value-line "Name" (function-name f))
@@ -579,17 +573,13 @@
(when doc
`("Documentation:" (:newline) ,doc))))))
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
- inspector
+(defmethod inspect-for-emacs ((o t))
(values "A value." (allegro-inspect o)))
-(defmethod inspect-for-emacs ((o function) (inspector backend-inspector))
- inspector
+(defmethod inspect-for-emacs ((o function))
(values "A function." (allegro-inspect o)))
-(defmethod inspect-for-emacs ((o standard-object)
- (inspector backend-inspector))
- inspector
+(defmethod inspect-for-emacs ((o standard-object))
(values (format nil "~A is a standard-object." o) (allegro-inspect o)))
(defun allegro-inspect (o)
Modified: branches/trunk-reorg/thirdparty/slime/swank-backend.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-backend.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-backend.lisp Thu Feb 7 03:32:58 2008
@@ -840,26 +840,10 @@
;;;; Inspector
-(defclass inspector ()
- ()
- (:documentation "Super class of inspector objects.
-
-Implementations should sub class in order to dispatch off of the
-inspect-for-emacs method."))
-
-(defclass backend-inspector (inspector) ())
-
-(definterface make-default-inspector ()
- "Return an inspector object suitable for passing to inspect-for-emacs.")
-
-(defgeneric inspect-for-emacs (object inspector)
+(defgeneric inspect-for-emacs (object)
(:documentation
"Explain to Emacs how to inspect OBJECT.
-The argument INSPECTOR is an object representing how to get at
-the internals of OBJECT, it is usually an implementation specific
-class used simply for dispatching to the proper method.
-
Returns two values: a string which will be used as the title of
the inspector buffer and a list specifying how to render the
object for inspection.
@@ -880,12 +864,11 @@
NIL - do nothing."))
-(defmethod inspect-for-emacs ((object t) (inspector t))
+(defmethod inspect-for-emacs ((object t))
"Generic method for inspecting any kind of object.
Since we don't know how to deal with OBJECT we simply dump the
output of CL:DESCRIBE."
- (declare (ignore inspector))
(values
"A value."
`("Type: " (:value ,(type-of object)) (:newline)
Modified: branches/trunk-reorg/thirdparty/slime/swank-clisp.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-clisp.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-clisp.lisp Thu Feb 7 03:32:58 2008
@@ -627,12 +627,7 @@
;;;; Inspecting
-(defclass clisp-inspector (backend-inspector) ())
-
-(defimplementation make-default-inspector () (make-instance 'clisp-inspector))
-
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o t))
(let* ((*print-array* nil) (*print-pretty* t)
(*print-circle* t) (*print-escape* t)
(*print-lines* custom:*inspect-print-lines*)
Modified: branches/trunk-reorg/thirdparty/slime/swank-cmucl.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-cmucl.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-cmucl.lisp Thu Feb 7 03:32:58 2008
@@ -1869,7 +1869,7 @@
:key #'symbol-value)))
(format t ", type: ~A" type-symbol))))))
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
+(defmethod inspect-for-emacs ((o t))
(cond ((di::indirect-value-cell-p o)
(values (format nil "~A is a value cell." o)
`("Value: " (:value ,(c:value-cell-ref o)))))
@@ -1887,8 +1887,7 @@
(loop for value in parts for i from 0
append (label-value-line i value))))))
-(defmethod inspect-for-emacs ((o function) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o function))
(let ((header (kernel:get-type o)))
(cond ((= header vm:function-header-type)
(values (format nil "~A is a function." o)
@@ -1915,9 +1914,7 @@
(t
(call-next-method)))))
-(defmethod inspect-for-emacs ((o kernel:funcallable-instance)
- (i backend-inspector))
- (declare (ignore i))
+(defmethod inspect-for-emacs ((o kernel:funcallable-instance))
(values
(format nil "~A is a funcallable-instance." o)
(append (label-value-line*
@@ -1926,8 +1923,7 @@
(:layout (kernel:%funcallable-instance-layout o)))
(nth-value 1 (cmucl-inspect o)))))
-(defmethod inspect-for-emacs ((o kernel:code-component) (_ backend-inspector))
- (declare (ignore _))
+(defmethod inspect-for-emacs ((o kernel:code-component))
(values (format nil "~A is a code data-block." o)
(append
(label-value-line*
@@ -1954,8 +1950,7 @@
(ash (kernel:%code-code-size o) vm:word-shift)
:stream s))))))))
-(defmethod inspect-for-emacs ((o kernel:fdefn) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o kernel:fdefn))
(values (format nil "~A is a fdenf object." o)
(label-value-line*
("name" (kernel:fdefn-name o))
@@ -1964,8 +1959,7 @@
(sys:int-sap (kernel:get-lisp-obj-address o))
(* vm:fdefn-raw-addr-slot vm:word-bytes))))))
-(defmethod inspect-for-emacs ((o array) (inspector backend-inspector))
- inspector
+(defmethod inspect-for-emacs ((o array))
(if (typep o 'simple-array)
(call-next-method)
(values (format nil "~A is an array." o)
@@ -1980,8 +1974,7 @@
(:displaced-p (kernel:%array-displaced-p o))
(:dimensions (array-dimensions o))))))
-(defmethod inspect-for-emacs ((o simple-vector) (inspector backend-inspector))
- inspector
+(defmethod inspect-for-emacs ((o simple-vector))
(values (format nil "~A is a simple-vector." o)
(append
(label-value-line*
Modified: branches/trunk-reorg/thirdparty/slime/swank-corman.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-corman.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-corman.lisp Thu Feb 7 03:32:58 2008
@@ -387,21 +387,13 @@
;; Hack to make swank.lisp load, at least
(defclass file-stream ())
-(defclass corman-inspector (backend-inspector)
- ())
-
-(defimplementation make-default-inspector ()
- (make-instance 'corman-inspector))
-
(defun comma-separated (list &optional (callback (lambda (v)
`(:value ,v))))
(butlast (loop for e in list
collect (funcall callback e)
collect ", ")))
-(defmethod inspect-for-emacs ((class standard-class)
- (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((class standard-class))
(values "A class."
`("Name: " (:value ,(class-name class))
(:newline)
@@ -438,9 +430,8 @@
'("#<N/A (class not finalized)>"))
(:newline))))
-(defmethod inspect-for-emacs ((slot cons) (inspector backend-inspector))
+(defmethod inspect-for-emacs ((slot cons))
;; Inspects slot definitions
- (declare (ignore inspector))
(if (eq (car slot) :name)
(values "A slot."
`("Name: " (:value ,(swank-mop:slot-definition-name slot))
@@ -457,9 +448,7 @@
(:newline)))
(call-next-method)))
-(defmethod inspect-for-emacs ((pathname pathnames::pathname-internal)
- inspector)
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((pathname pathnames::pathname-internal))
(values (if (wild-pathname-p pathname)
"A wild pathname."
"A pathname.")
@@ -475,7 +464,7 @@
(not (probe-file pathname)))
(label-value-line "Truename" (truename pathname))))))
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
+(defmethod inspect-for-emacs ((o t))
(cond ((cl::structurep o) (inspect-structure o))
(t (call-next-method))))
Modified: branches/trunk-reorg/thirdparty/slime/swank-ecl.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-ecl.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-ecl.lisp Thu Feb 7 03:32:58 2008
@@ -248,13 +248,7 @@
;;;; Inspector
-(defclass ecl-inspector (inspector)
- ())
-
-(defimplementation make-default-inspector ()
- (make-instance 'ecl-inspector))
-
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
+(defmethod inspect-for-emacs ((o t))
; ecl clos support leaves some to be desired
(cond
((streamp o)
Modified: branches/trunk-reorg/thirdparty/slime/swank-lispworks.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-lispworks.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-lispworks.lisp Thu Feb 7 03:32:58 2008
@@ -629,20 +629,15 @@
(defimplementation make-default-inspector ()
(make-instance 'lispworks-inspector))
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o t))
(lispworks-inspect o))
-(defmethod inspect-for-emacs ((o function)
- (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o function))
(lispworks-inspect o))
;; FIXME: slot-boundp-using-class in LW works with names so we can't
;; use our method in swank.lisp.
-(defmethod inspect-for-emacs ((o standard-object)
- (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o standard-object))
(lispworks-inspect o))
(defun lispworks-inspect (o)
Modified: branches/trunk-reorg/thirdparty/slime/swank-loader.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-loader.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-loader.lisp Thu Feb 7 03:32:58 2008
@@ -18,6 +18,12 @@
;; (defparameter swank-loader::*fasl-directory* "/tmp/fasl/")
;; (load ".../swank-loader.lisp")
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (when (find-package :swank)
+ (delete-package :swank)
+ (delete-package :swank-io-package)
+ (delete-package :swank-backend)))
+
(cl:defpackage :swank-loader
(:use :cl)
(:export :load-swank
@@ -60,14 +66,9 @@
:sparc64 :sparc :hppa64 :hppa))
(defun lisp-version-string ()
- #+cmu (substitute-if #\_ (lambda (x) (find x " /"))
+ #+(or openmcl cmu) (substitute-if #\_ (lambda (x) (find x " /"))
(lisp-implementation-version))
- #+scl (lisp-implementation-version)
- #+sbcl (lisp-implementation-version)
- #+ecl (lisp-implementation-version)
- #+openmcl (format nil "~d.~d"
- ccl::*openmcl-major-version*
- ccl::*openmcl-minor-version*)
+ #+(or cormanlisp scl sbcl ecl) (lisp-implementation-version)
#+lispworks (lisp-implementation-version)
#+allegro (format nil
"~A~A~A"
@@ -76,8 +77,7 @@
(if (member :64bit *features*) "-64bit" ""))
#+clisp (let ((s (lisp-implementation-version)))
(subseq s 0 (position #\space s)))
- #+armedbear (lisp-implementation-version)
- #+cormanlisp (lisp-implementation-version))
+ #+armedbear (lisp-implementation-version))
(defun unique-directory-name ()
"Return a name that can be used as a directory name that is
Modified: branches/trunk-reorg/thirdparty/slime/swank-openmcl.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-openmcl.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-openmcl.lisp Thu Feb 7 03:32:58 2008
@@ -211,14 +211,18 @@
(defvar *break-in-sldb* t)
+
(let ((ccl::*warn-if-redefine-kernel* nil))
- (ccl::advise
- cl::break
+ (ccl::advise
+ ccl::cbreak-loop
(if (and *break-in-sldb*
- (find ccl::*current-process* (symbol-value (intern "*CONNECTIONS*" 'swank))
- :key (intern "CONNECTION.REPL-THREAD" 'swank)))
+ (find ccl::*current-process*
+ (symbol-value (intern (string :*connections*) :swank))
+ :key (intern (string :connection.repl-thread) :swank)))
(apply 'break-in-sldb ccl::arglist)
- (:do-it)) :when :around :name sldb-break))
+ (:do-it))
+ :when :around
+ :name sldb-break))
(defun break-in-sldb (&optional string &rest args)
(let ((c (make-condition 'simple-condition
@@ -335,8 +339,7 @@
for (value nil name) = (multiple-value-list (ccl::nth-value-in-frame p count context lfun pc vsp parent-vsp))
when name do (incf varcount)
until (= varcount var)
- finally (return value))
- )))))))
+ finally (return value)))))))))
(defun xref-locations (relation name &optional (inverse nil))
(flet ((function-source-location (entry)
@@ -345,8 +348,8 @@
(ccl::%db-key-from-xref-entry entry)
(if (eql (ccl::xref-entry-type entry)
'macro)
- 'function
- (ccl::xref-entry-type entry)))
+ 'function
+ (ccl::xref-entry-type entry)))
(cond ((not info)
(list :error
(format nil "No source info available for ~A"
@@ -466,7 +469,8 @@
(setq ccl::*fasl-save-definitions* nil)
(setq ccl::*fasl-save-doc-strings* t)
(setq ccl::*fasl-save-local-symbols* t)
- (setq ccl::*ppc2-compiler-register-save-label* t)
+ #+ppc (setq ccl::*ppc2-compiler-register-save-label* t)
+ #+x86-64 (setq ccl::*x862-compiler-register-save-label* t)
(setq ccl::*save-arglist-info* t)
(setq ccl::*save-definitions* nil)
(setq ccl::*save-doc-strings* t)
@@ -513,9 +517,8 @@
(defun frame-arguments (p context lfun pc)
"Returns a string representing the arguments of a frame."
- (multiple-value-bind (args types names count nclosed)
+ (multiple-value-bind (args types names)
(ccl::frame-supplied-args p lfun pc nil context)
- (declare (ignore count nclosed))
(let ((result nil))
(loop named loop
for var = (cond
@@ -575,7 +578,9 @@
(push (list
:name name
:id 0
- :value var)
+ :value (if (typep var 'ccl::value-cell)
+ (ccl::uvref var 0)
+ var))
result))))
(return-from frame-locals (nreverse result)))))))))
@@ -610,19 +615,24 @@
(when (= frame-number the-frame-number)
(setq function-to-disassemble lfun)
(return-from find-frame)))))
- (ccl::print-ppc-instructions
- *standard-output*
- (ccl::function-to-dll-header function-to-disassemble) nil)))
+ #+ppc (ccl::print-ppc-instructions
+ *standard-output*
+ (ccl::function-to-dll-header function-to-disassemble)
+ nil)
+ #+x86-64 (ccl::x8664-xdisassemble function-to-disassemble)))
;;;
-(defun canonicalize-location (file symbol)
+(defun canonicalize-location (file symbol &optional snippet)
(etypecase file
((or string pathname)
(multiple-value-bind (truename c) (ignore-errors (namestring (truename file)))
(cond (c (list :error (princ-to-string c)))
(t (make-location (list :file (remove-filename-quoting truename))
- (list :function-name (princ-to-string symbol)))))))))
+ (list :function-name (princ-to-string symbol))
+ (if snippet
+ (list :snippet snippet)
+ '()))))))))
(defun remove-filename-quoting (string)
(if (search "\\" string)
@@ -644,20 +654,20 @@
(list (list type symbol)
(canonicalize-location file symbol))))))
-
(defun function-source-location (function)
- (multiple-value-bind (info name) (ccl::edit-definition-p function)
+ (multiple-value-bind (info name)
+ (ccl::edit-definition-p function)
(cond ((not info) (list :error (format nil "No source info available for ~A" function)))
((typep (caar info) 'ccl::method)
`(:location
(:file ,(remove-filename-quoting (namestring (translate-logical-pathname (cdr (car info))) )))
(:method ,(princ-to-string (ccl::method-name (caar info)))
- ,(mapcar 'princ-to-string
- (mapcar #'specializer-name
- (ccl::method-specializers (caar info))))
- ,@(mapcar 'princ-to-string (ccl::method-qualifiers (caar info))))
+ ,(mapcar 'princ-to-string
+ (mapcar #'specializer-name
+ (ccl::method-specializers (caar info))))
+ ,@(mapcar 'princ-to-string (ccl::method-qualifiers (caar info))))
nil))
- (t (canonicalize-location (cdr (first info)) name)))))
+ (t (canonicalize-location (second (first info)) name (third (first info)))))))
(defimplementation frame-source-location-for-emacs (index)
"Return to Emacs the location of the source code for the
@@ -693,6 +703,7 @@
,form)))
)))))))
+#+ppc
(defimplementation return-from-frame (index form)
(let ((values (multiple-value-list (eval-in-frame form index))))
(map-backtrace
@@ -700,7 +711,8 @@
(declare (ignore context lfun pc))
(when (= frame-number index)
(ccl::apply-in-frame p #'values values))))))
-
+
+#+ppc
(defimplementation restart-frame (index)
(map-backtrace
(lambda (frame-number p context lfun pc)
@@ -784,19 +796,13 @@
;;;; Inspection
-(defclass openmcl-inspector (backend-inspector) ())
-
-(defimplementation make-default-inspector ()
- (make-instance 'openmcl-inspector))
-
(defimplementation describe-primitive-type (thing)
(let ((typecode (ccl::typecode thing)))
(if (gethash typecode *value2tag*)
(string (gethash typecode *value2tag*))
(string (nth typecode '(tag-fixnum tag-list tag-misc tag-imm))))))
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o t))
(let* ((i (inspector::make-inspector o))
(count (inspector::compute-line-count i))
(lines
@@ -814,7 +820,7 @@
(pprint o s)))
lines)))
-(defmethod inspect-for-emacs :around ((o t) (inspector backend-inspector))
+(defmethod inspect-for-emacs :around ((o t))
(if (or (uvector-inspector-p o)
(not (ccl:uvectorp o)))
(call-next-method)
@@ -834,8 +840,7 @@
(:method ((object t)) nil)
(:method ((object uvector-inspector)) t))
-(defmethod inspect-for-emacs ((uv uvector-inspector)
- (inspector backend-inspector))
+(defmethod inspect-for-emacs ((uv uvector-inspector))
(with-slots (object)
uv
(values (format nil "The UVECTOR for ~S." object)
@@ -855,8 +860,7 @@
(cellp (ccl::closed-over-value-p value)))
(list label (if cellp (ccl::closed-over-value value) value))))))
-(defmethod inspect-for-emacs ((c ccl::compiled-lexical-closure) (inspector t))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((c ccl::compiled-lexical-closure))
(values
(format nil "A closure: ~a" c)
`(,@(if (arglist c)
Modified: branches/trunk-reorg/thirdparty/slime/swank-sbcl.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-sbcl.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-sbcl.lisp Thu Feb 7 03:32:58 2008
@@ -1001,13 +1001,7 @@
;;;; Inspector
-(defclass sbcl-inspector (backend-inspector) ())
-
-(defimplementation make-default-inspector ()
- (make-instance 'sbcl-inspector))
-
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o t))
(cond ((sb-di::indirect-value-cell-p o)
(values "A value cell." (label-value-line*
(:value (sb-kernel:value-cell-ref o)))))
@@ -1019,8 +1013,7 @@
(values text (loop for value in parts for i from 0
append (label-value-line i value))))))))
-(defmethod inspect-for-emacs ((o function) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o function))
(let ((header (sb-kernel:widetag-of o)))
(cond ((= header sb-vm:simple-fun-header-widetag)
(values "A simple-fun."
@@ -1041,8 +1034,7 @@
i (sb-kernel:%closure-index-ref o i))))))
(t (call-next-method o)))))
-(defmethod inspect-for-emacs ((o sb-kernel:code-component) (_ backend-inspector))
- (declare (ignore _))
+(defmethod inspect-for-emacs ((o sb-kernel:code-component))
(values (format nil "~A is a code data-block." o)
(append
(label-value-line*
@@ -1070,22 +1062,18 @@
(ash (sb-kernel:%code-code-size o) sb-vm:word-shift)
:stream s))))))))
-(defmethod inspect-for-emacs ((o sb-ext:weak-pointer) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o sb-ext:weak-pointer))
(values "A weak pointer."
(label-value-line*
(:value (sb-ext:weak-pointer-value o)))))
-(defmethod inspect-for-emacs ((o sb-kernel:fdefn) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o sb-kernel:fdefn))
(values "A fdefn object."
(label-value-line*
(:name (sb-kernel:fdefn-name o))
(:function (sb-kernel:fdefn-fun o)))))
-(defmethod inspect-for-emacs :around ((o generic-function)
- (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs :around ((o generic-function))
(multiple-value-bind (title contents) (call-next-method)
(values title
(append
Modified: branches/trunk-reorg/thirdparty/slime/swank-scl.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank-scl.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank-scl.lisp Thu Feb 7 03:32:58 2008
@@ -1740,7 +1740,7 @@
:key #'symbol-value)))
(format t ", type: ~A" type-symbol))))))
-(defmethod inspect-for-emacs ((o t) (inspector backend-inspector))
+(defmethod inspect-for-emacs ((o t))
(cond ((di::indirect-value-cell-p o)
(values (format nil "~A is a value cell." o)
`("Value: " (:value ,(c:value-cell-ref o)))))
@@ -1759,8 +1759,7 @@
(loop for value in parts for i from 0
append (label-value-line i value))))))
-(defmethod inspect-for-emacs ((o function) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o function))
(let ((header (kernel:get-type o)))
(cond ((= header vm:function-header-type)
(values (format nil "~A is a function." o)
@@ -1789,8 +1788,7 @@
(call-next-method)))))
-(defmethod inspect-for-emacs ((o kernel:code-component) (_ backend-inspector))
- (declare (ignore _))
+(defmethod inspect-for-emacs ((o kernel:code-component))
(values (format nil "~A is a code data-block." o)
(append
(label-value-line*
@@ -1817,8 +1815,7 @@
(ash (kernel:%code-code-size o) vm:word-shift)
:stream s))))))))
-(defmethod inspect-for-emacs ((o kernel:fdefn) (inspector backend-inspector))
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((o kernel:fdefn))
(values (format nil "~A is a fdenf object." o)
(label-value-line*
("name" (kernel:fdefn-name o))
@@ -1827,8 +1824,7 @@
(sys:int-sap (kernel:get-lisp-obj-address o))
(* vm:fdefn-raw-addr-slot vm:word-bytes))))))
-(defmethod inspect-for-emacs ((o array) (inspector backend-inspector))
- inspector
+(defmethod inspect-for-emacs ((o array))
(cond ((kernel:array-header-p o)
(values (format nil "~A is an array." o)
(label-value-line*
@@ -1847,8 +1843,7 @@
(:header (describe-primitive-type o))
(:length (length o)))))))
-(defmethod inspect-for-emacs ((o simple-vector) (inspector backend-inspector))
- inspector
+(defmethod inspect-for-emacs ((o simple-vector))
(values (format nil "~A is a vector." o)
(append
(label-value-line*
Modified: branches/trunk-reorg/thirdparty/slime/swank.lisp
==============================================================================
--- branches/trunk-reorg/thirdparty/slime/swank.lisp (original)
+++ branches/trunk-reorg/thirdparty/slime/swank.lisp Thu Feb 7 03:32:58 2008
@@ -415,43 +415,6 @@
(<= (char-code c) 127))
-;;;;; Misc
-
-(defun length= (seq n)
- "Test for whether SEQ contains N number of elements. I.e. it's equivalent
- to (= (LENGTH SEQ) N), but besides being more concise, it may also be more
- efficiently implemented."
- (etypecase seq
- (list (do ((i n (1- i))
- (list seq (cdr list)))
- ((or (<= i 0) (null list))
- (and (zerop i) (null list)))))
- (sequence (= (length seq) n))))
-
-(defun ensure-list (thing)
- (if (listp thing) thing (list thing)))
-
-(defun recursively-empty-p (list)
- "Returns whether LIST consists only of arbitrarily nested empty lists."
- (cond ((not (listp list)) nil)
- ((null list) t)
- (t (every #'recursively-empty-p list))))
-
-(defun maybecall (bool fn &rest args)
- "Call FN with ARGS if BOOL is T. Otherwise return ARGS as multiple values."
- (if bool (apply fn args) (values-list args)))
-
-(defun exactly-one-p (&rest values)
- "If exactly one value in VALUES is non-NIL, this value is returned.
-Otherwise NIL is returned."
- (let ((found nil))
- (dolist (v values)
- (when v (if found
- (return-from exactly-one-p nil)
- (setq found v))))
- found))
-
-
;;;;; Symbols
(defun symbol-status (symbol &optional (package (symbol-package symbol)))
@@ -1569,30 +1532,6 @@
(let ((*read-suppress* nil))
(read-from-string string))))
-(defun read-softly-from-string (string)
- "Returns three values:
-
- 1. the object resulting from READing STRING.
-
- 2. The index of the first character in STRING that was not read.
-
- 3. T if the object is a symbol that had to be newly interned
- in some package. (This does not work for symbols in
- compound forms like lists or vectors.)"
- (multiple-value-bind (symbol found? symbol-name package) (parse-symbol string)
- (if found?
- (values symbol (length string) nil)
- (multiple-value-bind (sexp pos) (read-from-string string)
- (values sexp pos
- (when (symbolp sexp)
- (prog1 t
- ;; assert that PARSE-SYMBOL didn't parse incorrectly.
- (assert (and (equal symbol-name (symbol-name sexp))
- (eq package (symbol-package sexp)))))))))))
-
-(defun unintern-in-home-package (symbol)
- (unintern symbol (symbol-package symbol)))
-
;; FIXME: deal with #\| etc. hard to do portably.
(defun tokenize-symbol (string)
"STRING is interpreted as the string representation of a symbol
@@ -1755,7 +1694,7 @@
(with-buffer-syntax ()
(let ((*print-readably* nil))
(cond ((null values) "; No value")
- ((and (length= values 1) (integerp (car values)))
+ ((and (integerp (car values)) (null (cdr values)))
(let ((i (car values)))
(format nil "~A~D (#x~X, #o~O, #b~B)"
*echo-area-prefix* i i i i)))
@@ -2056,12 +1995,15 @@
,(princ-to-string real-condition))))
(throw 'sldb-loop-catcher nil))
+(defvar *sldb-condition-printer* #'format-sldb-condition
+ "Function called to print a condition to an SLDB buffer.")
+
(defun safe-condition-message (condition)
"Safely print condition to a string, handling any errors during
printing."
(let ((*print-pretty* t) (*print-right-margin* 65))
(handler-case
- (format-sldb-condition condition)
+ (funcall *sldb-condition-printer* condition)
(error (cond)
;; Beware of recursive errors in printing, so only use the condition
;; if it is printable itself:
@@ -2750,8 +2692,7 @@
(set-pprint-dispatch '(cons (member function)) nil)
(princ-to-string list)))
-(defmethod inspect-for-emacs ((object cons) inspector)
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((object cons))
(if (consp (cdr object))
(inspect-for-emacs-list object)
(inspect-for-emacs-simple-cons object)))
@@ -2811,8 +2752,7 @@
a hash table or array to show by default. If table has more than
this then offer actions to view more. Set to nil for no limit." )
-(defmethod inspect-for-emacs ((ht hash-table) inspector)
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((ht hash-table))
(values (prin1-to-string ht)
(append
(label-value-line*
@@ -2864,8 +2804,7 @@
(progn (format t "How many elements should be shown? ") (read))))
(swank::inspect-object thing)))))
-(defmethod inspect-for-emacs ((array array) inspector)
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((array array))
(values "An array."
(append
(label-value-line*
@@ -2883,8 +2822,7 @@
(loop for i below (or *slime-inspect-contents-limit* (array-total-size array))
append (label-value-line i (row-major-aref array i))))))
-(defmethod inspect-for-emacs ((char character) inspector)
- (declare (ignore inspector))
+(defmethod inspect-for-emacs ((char character))
(values "A character."
(append
(label-value-line*
@@ -2903,7 +2841,6 @@
(defvar *inspector-history* (make-array 10 :adjustable t :fill-pointer 0))
(declaim (type vector *inspector-history*))
(defvar *inspect-length* 30)
-(defvar *default-inspector* (make-default-inspector))
(defun reset-inspector ()
(setq *inspectee* nil
@@ -2912,14 +2849,6 @@
*inspectee-actions* (make-array 10 :adjustable t :fill-pointer 0)
*inspector-history* (make-array 10 :adjustable t :fill-pointer 0)))
-(defun valid-function-name-p (form)
- (or (symbolp form)
- (and (consp form)
- (second form)
- (not (third form))
- (eq (first form) 'setf)
- (symbolp (second form)))))
-
(defslimefun init-inspector (string)
(with-buffer-syntax ()
(reset-inspector)
@@ -2960,14 +2889,14 @@
(list :action label (assign-index (list lambda refreshp)
*inspectee-actions*)))
-(defun inspect-object (object &optional (inspector *default-inspector*))
+(defun inspect-object (object)
(push (setq *inspectee* object) *inspector-stack*)
(unless (find object *inspector-history*)
(vector-push-extend object *inspector-history*))
(let ((*print-pretty* nil) ; print everything in the same line
(*print-circle* t)
(*print-readably* nil))
- (multiple-value-bind (_ content) (inspect-for-emacs object inspector)
+ (multiple-value-bind (_ content) (inspect-for-emacs object)
(declare (ignore _))
(list :title (with-output-to-string (s)
(print-unreadable-object (object s :type t :identity t)))
More information about the Bknr-cvs
mailing list