[iolib-devel] Re: #+lispworks missing in iolib/io.streams/pkgdcl.lisp

Chun Tian binghe binghe.lisp at gmail.com
Thu Jun 7 19:35:21 UTC 2007


Another problem is that LispWorks' stream-read-sequence and stream-write-sequence
generic function's lambda list is a little different: no "&optional".

After last patch, now I can got this compile error:

Error: Lambda list (STREAM SEQ &OPTIONAL START END) is not congruent
 with the lambda list (STREAM SEQUENCE SYSTEM::START SYSTEM::END) of
 #<STANDARD-GENERIC-FUNCTION STREAM-WRITE-SEQUENCE 41E03239C4>.

After use another trivial patch, I think this problem can be solved:

diff -rN old-iolib/io.streams/gray-stream-methods.lisp new-iolib/io.streams/gray-stream-methods.lisp
139c139
<             &optional (start 0) end)
---
>             #-lispworks &optional #-lispworks (start 0) #+lispworks start end)
288c288
<             &optional (start 0) end)
---
>             #-lispworks &optional #-lispworks (start 0) #+lispworks start end)

But this still cannot solve all problems. There are serious memory access bug in IOlib
 on 64bit platform, I'm trying to debug and fix it. (both 64bit SBCL and 64bit LispWorks
 cannot use net.socket)

In LispWorks like this:

CL-USER 4 > (net.smtp-client:send-email "mail.163.org" "binghe at 163.org"
             "binghe at 163.org" "test mail from lispworks" "Hi, binghe.")

Error: Signal B [code 0] at 41E093E83F {inside #<Function 1 subfunction of
 (TOP-LEVEL-FORM 19) 41E093E83C>}
rax     E093E80C ; rbx   41E093E83C ; rcx            2 ; rdx   41C0293B40
rsp   4040136DF8 ; rbp   4040136E00 ; rdi 6C07C000002AAA ; rsi            0
r8    40000530F9 ; r9            38 ; r10            8 ; r11   4040137101
r12   40502DB583 ; r13   40502DD1FB ; r14   4000049809 ; r15   414001772C
  1 (abort) Return to level 0.
  2 Return to top loop level 0.

Type :b for backtrace, :c <option number> to proceed,  or :? for other options

CL-USER 5 : 1 > :b
Call to ERROR
Call to NET.SOCKETS::SOCKADDR-STORAGE->SOCKADDR
Call to NET.SOCKETS::MAKE-HOST-FROM-ADDRINFO
Call to (METHOD NET.SOCKETS:LOOKUP-HOST (STRING))
Call to NET.SOCKETS:CONVERT-OR-LOOKUP-INET-ADDRESS
Call to NET.SOCKETS:MAKE-SOCKET
Call to NET.SMTP-CLIENT::MAKE-SMTP-SOCKET
Call to NET.SMTP-CLIENT::SEND-SMTP
Call to NET.SMTP-CLIENT:SEND-EMAIL
Call to EVAL
Call to CAPI::CAPI-TOP-LEVEL-FUNCTION
Call to CAPI::INTERACTIVE-PANE-TOP-LOOP
Call to (SUBFUNCTION MP::PROCESS-SG-FUNCTION MP::INITIALIZE-PROCESS-STACK)

Have you any 64-bit test platform to identify this? (SBCL has the same problem)

  Thanks.

Chun Tian (binghe)

Stelian Ionescu <sionescu at common-lisp.net> writes:

> On Fri, Jun 08, 2007 at 02:20:24AM +0800, Chun Tian (binghe) wrote:
>>Hi, IOLib
>>
>>The line 31 of iolib/io.streams/pkgdcl.lisp miss a "lispworks" feature. This caused io.streams package cannot import symbols from lispworks' stream package, and cause a error when I use net.smtp-client:
>>
>>Error: The class #<STANDARD-CLASS IO.STREAMS:DUAL-CHANNEL-GRAY-STREAM 40D0347A5B> cannot be finalized because the following superclass is not defined: #<FORWARD-REFERENCED-CLASS IO.STREAMS:FUNDAMENTAL-BINARY-INPUT-STREAM 40D03479CB>.
>>  1 (abort) Return to level 0.
>>  2 Return to top loop level 0.
>>
>>Type :b for backtrace, :c <option number> to proceed,  or :? for other options
>>
>>A trivial patch may fix this.
> thanks, I've committed your patch :)
>
> -- 
> (sign :name "Stelian Ionescu" :aka "fe[nl]ix"
>       :quote "Quidquid latine dictum sit, altum videtur.")
> _______________________________________________
> iolib-devel mailing list
> iolib-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/iolib-devel

-- 
'()




More information about the iolib-devel mailing list