[Openmcl-devel] basic-tcp-stream is not binary?

Sunil Mishra smishra at sfmishras.com
Tue Jan 30 12:32:46 PST 2007


Hi,

I'm using MCL on Intel Mac OS. My MCL build is from
:pserver:cvs at clozure.com/usr/local/tmpcvs/openmcl-dev, revision
tag_070117, plus the patch Gary had sent for my last problem. Now I have
a different problem when using hunchentoot (http://weitz.de/hunchentoot/) on
openmcl. Here's a call I traced in MCL...

0> Calling (CCL::IOBLOCK-NO-BINARY-INPUT #S(CCL::IOBLOCK :STREAM
#<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/16) #x300042B3E70D> :UNTYI-CHAR
NIL :INBUF #<IO-BUFFER  (UNSIGNED-BYTE 8) 0/0/2048 #x300042B3E4DD>
:OUTBUF #<IO-BUFFER  (UNSIGNED-BYTE 8) 0/0/2048 #x300042B3E43D>
:ELEMENT-TYPE CHARACTER :ELEMENT-SHIFT 0 :CHARPOS 0 :DEVICE 16
:ADVANCE-FUNCTION CCL::FD-STREAM-ADVANCE :LISTEN-FUNCTION
CCL::FD-STREAM-LISTEN :EOFP-FUNCTION CCL::FD-STREAM-EOFP
:FORCE-OUTPUT-FUNCTION CCL::FD-STREAM-FORCE-OUTPUT :CLOSE-FUNCTION
CCL::FD-STREAM-CLOSE :INBUF-LOCK NIL :EOF NIL :INTERACTIVE T :DIRTY NIL
:OUTBUF-LOCK NIL :OWNER NIL :READ-CHAR-FUNCTION CCL::%IOBLOCK-TYI
:READ-BYTE-FUNCTION CCL::IOBLOCK-NO-BINARY-INPUT :WRITE-BYTE-FUNCTION
CCL::IOBLOCK-NO-BINARY-OUTPUT :WRITE-CHAR-FUNCTION
CCL::%IOBLOCK-WRITE-CHAR :ENCODING NIL :PENDING-BYTE-ORDER-MARK NIL
:LITERAL-CHAR-CODE-LIMIT 256 :ENCODE-OUTPUT-FUNCTION NIL
:DECODE-INPUT-FUNCTION NIL :READ-CHAR-WHEN-LOCKED-FUNCTION
CCL::%IOBLOCK-TYI :WRITE-SIMPLE-STRING-FUNCTION
CCL::%IOBLOCK-UNENCODED-WRITE-SIMPLE-STRING
:CHARACTER-READ-VECTOR-FUNCTION
CCL::%IOBLOCK-UNENCODED-CHARACTER-READ-VECTOR :READ-LINE-FUNCTION
CCL::%IOBLOCK-UNENCODED-READ-LINE :WRITE-CHAR-WHEN-LOCKED-FUNCTION
CCL::%IOBLOCK-WRITE-CHAR :READ-BYTE-WHEN-LOCKED-FUNCTION
CCL::IOBLOCK-NO-BINARY-INPUT :WRITE-BYTE-WHEN-LOCKED-FUNCTION
CCL::IOBLOCK-NO-BINARY-OUTPUT :PEEK-CHAR-FUNCTION
CCL::%IOBLOCK-PEEK-CHAR :NATIVE-BYTE-ORDER T
:READ-CHAR-WITHOUT-TRANSLATION-WHEN-LOCKED-FUNCTION
CCL::IOBLOCK-NO-CHAR-INPUT
:WRITE-CHAR-WITHOUT-TRANSLATION-WHEN-LOCKED-FUNCTION
CCL::IBLOCK-NO-CHAR-OUTPUT :SHARING NIL :LINE-TERMINATION NIL
:UNREAD-CHAR-FUNCTION CCL::%IOBLOCK-UNTYI :RESERVED2 NIL :RESERVED3 NIL))

I've been looking at some of the MCL sources. basic-tcp-stream is a
binary stream, according to the code in l1-sockets.lisp. But the ioblock
above has :READ-BYTE-FUNCTION CCL::IOBLOCK-NO-BINARY-INPUT. This doesn't
make sense to me. Can someone please explain this? If there's no problem
here, I'll report what I learn here as a bug report to hunchentoot
developers.

Thanks,

Sunil




More information about the Openmcl-devel mailing list