[slime-devel] slime choking on large output

Helmut Eller e9626484 at stud3.tuwien.ac.at
Wed Feb 18 19:56:19 UTC 2004


"E. Tyurin" <evgeny at tyurin.com> writes:

> Error in function COMMON-LISP::ASSERT-ERROR:  Short read: length=5910572  pos=28]
> 
> Any suggestions??

This is a bug in CMUCL's read-sequence and has been fixed in newer
CMUCLs.  I added a workaround for 18e in the latest SLIME version.
You can either update SLIME or add the code below to your
.cmucl-init.lisp.

Helmut.


(in-package :lisp)

(defun read-into-simple-string (s stream start end)
  (declare (type simple-string s))
  (declare (type stream stream))
  (declare (type index start end))
  (unless (subtypep (stream-element-type stream) 'character)
    (error 'type-error
           :datum (read-char stream nil #\Null)
           :expected-type (stream-element-type stream)
           :format-control "Trying to read characters from a binary stream."))
  ;; Let's go as low level as it seems reasonable.
  (let* ((numbytes (- end start))
         (bytes-read (system:read-n-bytes stream s start numbytes t)))
    (if (< bytes-read numbytes)
        (+ start bytes-read)
        end)))





More information about the slime-devel mailing list