All,
I'm currently trying to use DRAKMA on CLISP to write a script that will automatically fetch a web page and scrape some information out of a table. While trying to get this to work, I ran into an issue that I'm able to reproduce with only FLEXI-STREAMS.
Given a fresh CLISP (with flexi-streams loaded via ASDF) I'm getting the following behavior:
CL-USER> (format *standard-output* "Hello World!") Hello World!NIL
CL-USER> (setq my-flexi-stream (flexi-streams:make-flexi-stream *standard-output*)) #<FLEXI-STREAMS:FLEXI-OUTPUT-STREAM #x1A0285F9>
CL-USER> (format my-flexi-stream "Hello World!")
At this point, I get the following error:
NO-APPLICABLE-METHOD: When calling #1=#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-BYTE-SEQUENCE> with arguments #2=(#(72 101 108 108 111 32 87 111 114 108 ...) #<FLEXI-STREAMS:FLEXI-OUTPUT-STREAM #x1A00D595> NIL 12), no method is applicable. [Condition of type METHOD-CALL-ERROR]
The original error I encountered in Drakma is also easy to reproduce. I get the following error on the first call to DRAKMA:HTTP-REQUEST:
NO-APPLICABLE-METHOD: When calling #1=#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-BYTE-SEQUENCE> with arguments #2=(#(71 69 84) #<FLEXI-STREAMS:FLEXI-IO-STREAM #x1A0F01E5> NIL 3), no method is applicable. [Condition of type METHOD-CALL-ERROR]
The #(71 69 84) is basically "GET", so this looks like the first write to the stream for the outgoing HTTP request.
I'm still ascending the learning curve, so I'm not quite sure what to make of these errors, but my best guess is that maybe I have an inconsistent set of packages installed. Has anybody seen anything like this before? Google seems to think not. I've attached the output from the ASDF call (stripped of some directory names) at the end of this mail, if it's useful. Other possibly relevant information is that this is CLISP 2.45 (2008-05-15) and it's running on a Windows XP SP3 machine.
Any help would be very much appreciated.
Thanks, Mike
; loading system definition from ...\lisp\flexi-streams-1.0.7\flexi-streams.asd into #<PACKAGE ASDF0> ;; Loading file ...\lisp\flexi-streams-1.0.7\flexi-streams.asd ... ; registering #<SYSTEM :FLEXI-STREAMS #x19FA77A1> as FLEXI-STREAMS ; registering #<SYSTEM :FLEXI-STREAMS-TEST #x19F74771> as FLEXI-STREAMS-TEST ;; Loaded file ...\lisp\flexi-streams-1.0.7\flexi-streams.asd ; loading system definition from ...\lisp\trivial-gray-streams-2006-09-16\trivial-gray-streams.asd into #<PACKAGE ASDF0> ;; Loading file ...\lisp\trivial-gray-streams-2006-09-16\trivial-gray-streams.asd ... ; registering #<SYSTEM :TRIVIAL-GRAY-STREAMS #x19FD06A9> as TRIVIAL-GRAY-STREAMS ;; Loaded file ...\lisp\trivial-gray-streams-2006-09-16\trivial-gray-streams.asd ;; Loading file ...\lisp\trivial-gray-streams-2006-09-16\package.fas ... ;; Loaded file ...\lisp\trivial-gray-streams-2006-09-16\package.fas ;; Loading file ...\lisp\trivial-gray-streams-2006-09-16\mixin.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION GRAY:STREAM-WRITE-CHAR-SEQUENCE> is being modified, but has already been called. ;; Loaded file ...\lisp\trivial-gray-streams-2006-09-16\mixin.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\packages.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\packages.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\mapping.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\mapping.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\ascii.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\ascii.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\koi8-r.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\koi8-r.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\iso-8859.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\iso-8859.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\code-pages.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\code-pages.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\specials.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\specials.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\util.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\util.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\conditions.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\conditions.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\external-format.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\external-format.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\length.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\length.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\encode.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\encode.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\decode.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\decode.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\in-memory.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-ELEMENT-TYPE> is being modified, but has already been called. ;; Loaded file ...\lisp\flexi-streams-1.0.7\in-memory.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\stream.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION CLOSE> is being modified, but has already been called. ;; Loaded file ...\lisp\flexi-streams-1.0.7\stream.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\output.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-WRITE-CHAR> is being modified, but has already been called. WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-FINISH-OUTPUT> is being modified, but has already been called. WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-FORCE-OUTPUT> is being modified, but has already been called. WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-LINE-COLUMN> is being modified, but has already been called. ;; Loaded file ...\lisp\flexi-streams-1.0.7\output.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\input.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-CLEAR-INPUT> is being modified, but has already been called. ;; Loaded file ...\lisp\flexi-streams-1.0.7\input.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\io.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-WRITE-CHAR> is being modified, but has already been called. ;; Loaded file ...\lisp\flexi-streams-1.0.7\io.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\strings.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\strings.fas 0 errors, 0 warnings
Hello Mike,
try to apply this patch to trival-gray-streams, maybe it will help: http://common-lisp.net/pipermail/cl-plus-ssl-devel/2008-June/000061.html
Best regards, - Anton
on Thursday, October 16, 2008, 12:46:09 AM Mike wrote:
All,
I'm currently trying to use DRAKMA on CLISP to write a script that will automatically fetch a web page and scrape some information out of a table. While trying to get this to work, I ran into an issue that I'm able to reproduce with only FLEXI-STREAMS.
Given a fresh CLISP (with flexi-streams loaded via ASDF) I'm getting the following behavior:
CL-USER> (format *standard-output* "Hello World!") Hello World!NIL
CL-USER> (setq my-flexi-stream (flexi-streams:make-flexi-stream
*standard-output*)) #<FLEXI-STREAMS:FLEXI-OUTPUT-STREAM #x1A0285F9>
CL-USER> (format my-flexi-stream "Hello World!")
At this point, I get the following error:
NO-APPLICABLE-METHOD: When calling #1=#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-BYTE-SEQUENCE> with arguments #2=(#(72 101 108 108 111 32 87 111 114 108 ...) #<FLEXI-STREAMS:FLEXI-OUTPUT-STREAM #x1A00D595> NIL 12), no
method is applicable. [Condition of type METHOD-CALL-ERROR]
The original error I encountered in Drakma is also easy to reproduce. I get the following error on the first call to DRAKMA:HTTP-REQUEST:
NO-APPLICABLE-METHOD: When calling #1=#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-BYTE-SEQUENCE> with arguments #2=(#(71 69 84) #<FLEXI-STREAMS:FLEXI-IO-STREAM #x1A0F01E5> NIL 3), no method
is applicable. [Condition of type METHOD-CALL-ERROR]
The #(71 69 84) is basically "GET", so this looks like the first write to the stream for the outgoing HTTP request.
I'm still ascending the learning curve, so I'm not quite sure what to make of these errors, but my best guess is that maybe I have an inconsistent set of packages installed. Has anybody seen anything like this before? Google seems to think not. I've attached the output from the ASDF call (stripped of some directory names) at the end of this mail, if it's useful. Other possibly relevant information is that this is CLISP 2.45 (2008-05-15) and it's running on a Windows XP SP3 machine.
Any help would be very much appreciated.
Thanks, Mike
; loading system definition from ...\lisp\flexi-streams-1.0.7\flexi-streams.asd into #<PACKAGE ASDF0> ;; Loading file ...\lisp\flexi-streams-1.0.7\flexi-streams.asd ... ; registering #<SYSTEM :FLEXI-STREAMS #x19FA77A1> as FLEXI-STREAMS ; registering #<SYSTEM :FLEXI-STREAMS-TEST #x19F74771> as FLEXI-STREAMS-TEST ;; Loaded file ...\lisp\flexi-streams-1.0.7\flexi-streams.asd ; loading system definition from ...\lisp\trivial-gray-streams-2006-09-16\trivial-gray-streams.asd into #<PACKAGE ASDF0> ;; Loading file ...\lisp\trivial-gray-streams-2006-09-16\trivial-gray-streams.asd ... ; registering #<SYSTEM :TRIVIAL-GRAY-STREAMS #x19FD06A9> as TRIVIAL-GRAY-STREAMS ;; Loaded file ...\lisp\trivial-gray-streams-2006-09-16\trivial-gray-streams.asd ;; Loading file ...\lisp\trivial-gray-streams-2006-09-16\package.fas ... ;; Loaded file ...\lisp\trivial-gray-streams-2006-09-16\package.fas ;; Loading file ...\lisp\trivial-gray-streams-2006-09-16\mixin.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION GRAY:STREAM-WRITE-CHAR-SEQUENCE> is being modified, but has already been called. ;; Loaded file ...\lisp\trivial-gray-streams-2006-09-16\mixin.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\packages.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\packages.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\mapping.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\mapping.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\ascii.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\ascii.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\koi8-r.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\koi8-r.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\iso-8859.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\iso-8859.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\code-pages.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\code-pages.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\specials.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\specials.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\util.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\util.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\conditions.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\conditions.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\external-format.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\external-format.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\length.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\length.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\encode.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\encode.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\decode.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\decode.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\in-memory.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION
STREAM-ELEMENT-TYPE>> is being modified, but has already been called.
;; Loaded file ...\lisp\flexi-streams-1.0.7\in-memory.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\stream.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION CLOSE> is being modified, but has already been called. ;; Loaded file ...\lisp\flexi-streams-1.0.7\stream.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\output.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION
STREAM-WRITE-CHAR>> is being modified, but has already been called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-FINISH-OUTPUT> is being modified, but has already been called. WARNING: The generic function #<STANDARD-GENERIC-FUNCTION
STREAM-FORCE-OUTPUT>> is being modified, but has already been called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION
STREAM-LINE-COLUMN>> is being modified, but has already been called.
;; Loaded file ...\lisp\flexi-streams-1.0.7\output.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\input.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION
STREAM-CLEAR-INPUT>> is being modified, but has already been called.
;; Loaded file ...\lisp\flexi-streams-1.0.7\input.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\io.fas ... WARNING: The generic function #<STANDARD-GENERIC-FUNCTION
STREAM-WRITE-CHAR>> is being modified, but has already been called.
;; Loaded file ...\lisp\flexi-streams-1.0.7\io.fas ;; Loading file ...\lisp\flexi-streams-1.0.7\strings.fas ... ;; Loaded file ...\lisp\flexi-streams-1.0.7\strings.fas 0 errors, 0 warnings
flexi-streams-devel mailing list flexi-streams-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/flexi-streams-devel
flexi-streams-devel@common-lisp.net