Here are two test cases for exposing the bugs:
;; In ~/.swank.lisp: (setq SWANK::*SLIME-INSPECT-CONTENTS-LIMIT* 10)
;; ;; CASE I ;; (defvar *ht* (make-hash-table :test #'eql)) (loop for i below 20 do (setf (gethash i *ht*) (princ i)))
Then M-x slime-inspect *ht* (C-c I *ht*) :
The inspector window show: |Contents: |10 elements shown. Prompt for how many to inspect... |Inspect all 20 elements.
Choosing either of these two (bigger pieces action and entering the value in the REPL) or inspect whole pieces action, does not change the contents displayed in the inspector window, i.e. the number of items displayed does not change.
;; ;; CASE II ;; (defvar *array* (make-array 100 :initial-element nil)) Then M-x slime-inspect *array* (C-c I *array*)
The variable SWANK::*SLIME-INSPECT-CONTENTS-LIMIT* is not respected and the whole contents of the array is printed.
I'm guessing the following Changelog entry may apply, but haven't checked or fixed the problem against HEAD.
|2007-04-19 Tobias C. Rittweiler tcr@freebits.de | | * swank-backend.lisp (label-value-line): Add :newline as &key | argument; if true (the default) inserts a newline. | | * swank.lisp (inspect-for-emacs-list): Don't add a newline after | the last value of the list. |
-- Madhu