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