There is a dangling reference to split-sequence but split-sequence itself is no longer marked as a dependency in the defsystem spec. This means that usocket cannot currently be loaded using asdf unless split-sequence has already been loaded by some other system.
The attached patch just replaces calls to split-sequence:split-sequence with corresponding calls to cl-utilities:split-sequence.
Also I think a few of the tests might need to be rewritten. Both before and after applying this patch, 6 out of 15 tests fail for me.
Regards, Andy Chambers
(format t "type: ~a version: ~a" (lisp-implementation-type) (lisp-implementation-version)) type: SBCL version: 1.0.18.debian
(usocket-test:run-usocket-tests) Doing 15 pending tests of 15 tests total. USOCKET-TEST::MAKE-SOCKET.1 USOCKET-TEST::MAKE-SOCKET.2 #<USOCKET:UNSUPPORTED {B075EB9}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-NO-CONNECT.1 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:SOCKET-ERROR NIL) (USOCKET:SOCKET-CONNECT "127.0.0.0" USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) T) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B075EB9}>. #<USOCKET:UNSUPPORTED {B20A2B1}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-NO-CONNECT.2 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:SOCKET-ERROR NIL) (USOCKET:SOCKET-CONNECT #(127 0 0 0) USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) T) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B20A2B1}>. #<USOCKET:UNSUPPORTED {B3A5D81}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-NO-CONNECT.3 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:SOCKET-ERROR NIL) (USOCKET:SOCKET-CONNECT 2130706432 USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) T) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B3A5D81}>. #<USOCKET:UNSUPPORTED {B5461D9}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-FAILURE.1 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:NETWORK-UNREACHABLE-ERROR NIL) (USOCKET:SOCKET-CONNECT 2130706432 USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) :UNREACH) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B5461D9}>. #<USOCKET:UNSUPPORTED {B9C8229}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-FAILURE.2 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:HOST-UNREACHABLE-ERROR NIL) (USOCKET:SOCKET-CONNECT USOCKET-TEST::+NON-EXISTING-HOST+ 80 :TIMEOUT 0) :UNREACH) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B9C8229}>. USOCKET-TEST::SOCKET-CONNECT.1 USOCKET-TEST::SOCKET-CONNECT.2 USOCKET-TEST::SOCKET-CONNECT.3 USOCKET-TEST::SOCKET-STREAM.1 USOCKET-TEST::SOCKET-NAME.1 USOCKET-TEST::SOCKET-NAME.2 USOCKET-TEST::SOCKET-NAME.3 Test USOCKET-TEST::SOCKET-NAME.4 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (NIL NIL) (LET ((USOCKET-TEST::SOCK (USOCKET:SOCKET-CONNECT
USOCKET-TEST::+COMMON-LISP-NET+ 80))) (UNWIND-PROTECT (USOCKET:GET-LOCAL-ADDRESS USOCKET-TEST::SOCK) (USOCKET:SOCKET-CLOSE USOCKET-TEST::SOCK)))) Expected value: #(192 168 1 25) Actual value: #(192 168 0 3). 6 out of 15 total tests failed: USOCKET-TEST::SOCKET-NO-CONNECT.1, USOCKET-TEST::SOCKET-NO-CONNECT.2, USOCKET-TEST::SOCKET-NO-CONNECT.3, USOCKET-TEST::SOCKET-FAILURE.1, USOCKET-TEST::SOCKET-FAILURE.2, USOCKET-TEST::SOCKET-NAME.4. NIL CL-USER>
Hi, Andy, Attila and James
Thanks all of you pointing out the split-sequence issue.
For the dependency as split-sequence or cl-utilities, I compared the split-sequence code between the two packages, they're completely the same.
So, considering split-sequence.lisp is such stable, and:
1) If usocket depends on split-sequence, some one will say it's a too-old and out-of-maintained package 2) If usocket depends on cl-utlities, there're more issues: 2.1) The package is too big and we only use a single function in it 2.2) If cl-utilities was loaded first without the :split-sequence-deprecated feature, it won't create package "split-sequence", and then usocket loaded, the call to SPLIT-SEQUENCE:SPLIT-SEQUENCE will fail. 3) Usocket should depends other package as less as possible
Now I added split-sequence.lisp as a "vendor file", it will define the function SPLIT-SEQUENCE in USOCKET package.
Committed as r518 on usocket trunk [1], I hope all of you could satisfy with this choice. More opinion is welcome.
Andy: For the test results you attached, I'll check it and see what I can do.
Regards,
Chun Tian (binghe)
[1] svn://common-lisp.net/project/usocket/svn/usocket/trunk
在 2010-1-9,08:47, Andy Chambers 写道:
There is a dangling reference to split-sequence but split-sequence itself is no longer marked as a dependency in the defsystem spec. This means that usocket cannot currently be loaded using asdf unless split-sequence has already been loaded by some other system.
The attached patch just replaces calls to split-sequence:split-sequence with corresponding calls to cl-utilities:split-sequence.
Also I think a few of the tests might need to be rewritten. Both before and after applying this patch, 6 out of 15 tests fail for me.
Regards, Andy Chambers
(format t "type: ~a version: ~a" (lisp-implementation-type) (lisp-implementation-version)) type: SBCL version: 1.0.18.debian
(usocket-test:run-usocket-tests) Doing 15 pending tests of 15 tests total. USOCKET-TEST::MAKE-SOCKET.1 USOCKET-TEST::MAKE-SOCKET.2 #<USOCKET:UNSUPPORTED {B075EB9}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-NO-CONNECT.1 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:SOCKET-ERROR NIL) (USOCKET:SOCKET-CONNECT "127.0.0.0" USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) T) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B075EB9}>. #<USOCKET:UNSUPPORTED {B20A2B1}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-NO-CONNECT.2 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:SOCKET-ERROR NIL) (USOCKET:SOCKET-CONNECT #(127 0 0 0) USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) T) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B20A2B1}>. #<USOCKET:UNSUPPORTED {B3A5D81}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-NO-CONNECT.3 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:SOCKET-ERROR NIL) (USOCKET:SOCKET-CONNECT 2130706432 USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) T) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B3A5D81}>. #<USOCKET:UNSUPPORTED {B5461D9}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-FAILURE.1 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:NETWORK-UNREACHABLE-ERROR NIL) (USOCKET:SOCKET-CONNECT 2130706432 USOCKET-TEST::+UNUSED-LOCAL-PORT+ :TIMEOUT 0) :UNREACH) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B5461D9}>. #<USOCKET:UNSUPPORTED {B9C8229}> is a USOCKET:UNSUPPORTED. Its slot values are (:FEATURE USOCKET::TIMEOUT :CONTEXT USOCKET:SOCKET-CONNECT :MINIMUM NIL). Test USOCKET-TEST::SOCKET-FAILURE.2 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS ('USOCKET:HOST-UNREACHABLE-ERROR NIL) (USOCKET:SOCKET-CONNECT USOCKET-TEST::+NON-EXISTING-HOST+ 80 :TIMEOUT 0) :UNREACH) Expected value: NIL Actual value: #<USOCKET:UNSUPPORTED {B9C8229}>. USOCKET-TEST::SOCKET-CONNECT.1 USOCKET-TEST::SOCKET-CONNECT.2 USOCKET-TEST::SOCKET-CONNECT.3 USOCKET-TEST::SOCKET-STREAM.1 USOCKET-TEST::SOCKET-NAME.1 USOCKET-TEST::SOCKET-NAME.2 USOCKET-TEST::SOCKET-NAME.3 Test USOCKET-TEST::SOCKET-NAME.4 failed Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (NIL NIL) (LET ((USOCKET-TEST::SOCK (USOCKET:SOCKET-CONNECT
USOCKET-TEST::+COMMON-LISP-NET+ 80))) (UNWIND-PROTECT (USOCKET:GET-LOCAL-ADDRESS USOCKET-TEST::SOCK) (USOCKET:SOCKET-CLOSE USOCKET-TEST::SOCK)))) Expected value: #(192 168 1 25) Actual value: #(192 168 0 3). 6 out of 15 total tests failed: USOCKET-TEST::SOCKET-NO-CONNECT.1, USOCKET-TEST::SOCKET-NO-CONNECT.2, USOCKET-TEST::SOCKET-NO-CONNECT.3, USOCKET-TEST::SOCKET-FAILURE.1, USOCKET-TEST::SOCKET-FAILURE.2, USOCKET-TEST::SOCKET-NAME.4. NIL CL-USER>
--
Andy Chambers Formedix Ltd <replace-cl-utilities.patch>_______________________________________________ usocket-devel mailing list usocket-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel