Helmut Eller heller@common-lisp.net writes:
+(defun read-next-form ()
- (handler-case
(let* ((length (logior (ash (read-byte *emacs-io*) 16)
(ash (read-byte *emacs-io*) 8)
(read-byte *emacs-io*)))
(string (make-string length)))
- (sys:read-n-bytes *emacs-io* string 0 length)
- (read-form string))
- (condition (c)
(throw 'serve-request-catcher c))))
OK, so what is the problem with CMUCL that means it can't use read-sequence here? I know it used to be broken (did partial reads) but I thought that was fixed ages ago. Can we not report this as a bug to the cmucl developers?
Thanks for cleaning up my other mess. Now I have to look through your structure stuff and who-calls, see what I can steal for sbcl :-)
-dan
Daniel Barlow dan@telent.net writes:
Helmut Eller heller@common-lisp.net writes:
+(defun read-next-form ()
- (handler-case
(let* ((length (logior (ash (read-byte *emacs-io*) 16)
(ash (read-byte *emacs-io*) 8)
(read-byte *emacs-io*)))
(string (make-string length)))
- (sys:read-n-bytes *emacs-io* string 0 length)
- (read-form string))
- (condition (c)
(throw 'serve-request-catcher c))))
OK, so what is the problem with CMUCL that means it can't use read-sequence here? I know it used to be broken (did partial reads) but I thought that was fixed ages ago. Can we not report this as a bug to the cmucl developers?
I think you can't read bytes and characters from the same stream. If that's a bug, then a proper fix is of course preferable.
--helmut.
Helmut Eller e9626484@stud3.tuwien.ac.at writes:
I think you can't read bytes and characters from the same stream. If that's a bug, then a proper fix is of course preferable.
You're right, I'm dumb. Sigh.
-dan