#+lispworks Gray slime-output-stream doesn't handle non base-chars
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Slime |
New
|
Undecided
|
Unassigned |
Bug Description
Out of the box, LW chars are base-char. This can be configured, but if it isn't then the slime-output-
#+lispworks (lw:set-
#\™ is not of type BASE-CHAR.
[Condition of type TYPE-ERROR]
Restarts:
0: [RETRY] Retry SLIME REPL evaluation request.
1: [*ABORT] Return to SLIME's top level.
2: [ABORT] Quit process.
Backtrace:
0: (CONDITIONS:
1: (ERROR TYPE-ERROR :DATUM #\™ :EXPECTED-TYPE BASE-CHAR)
2: (SYSTEM:
3: ((SUBFUNCTION 2 (METHOD STREAM:
4: ((SUBFUNCTION SWANK-BACKEND:
5: ((METHOD STREAM:
6: (SYSTEM:
7: (SYSTEM::SUB-FORMAT 0 771)
8: (SYSTEM:
9: (FORMAT T ..)
Maybe a cleaner fix is to only change the string-type of the output stream buffer (and not everywhere in the current LW session), like this:
(defclass slime-output-stream (fundamental- character- output- stream)
# +lispworks #+lispworks :element-type 'lw:simple-char
) )
((output-fn :initarg :output-fn)
(buffer :initform (make-string 8000
(fill-pointer :initform 0)
(column :initform 0)
(lock :initform (make-lock :name "buffer write lock"))))