[Armedbear-ticket] [armedbear] #377: DRAKMA:HTTP-REQUEST failing with #<FLEXI-STREAMS:FLEXI-IO-STREAM {1254E5CE}> is not of type STREAM

armedbear armedbear-devel at common-lisp.net
Mon Dec 8 10:42:32 UTC 2014


#377: DRAKMA:HTTP-REQUEST failing with #<FLEXI-STREAMS:FLEXI-IO-STREAM
{1254E5CE}> is not of type STREAM
--------------------------+-----------------------
 Reporter:  mevenson      |      Owner:
     Type:  defect        |     Status:  new
 Priority:  major         |  Milestone:  1.4.0
Component:  compiler      |    Version:  1.4.0-dev
 Keywords:  gray-streams  |
--------------------------+-----------------------
 A simple request to the DRAKMA installed with quicklisp-2014-11-06:
 {{{
 CL-USER> (drakma:http-request "http://google.com")
 }}}

 is now signalling errors where previously this sort of call was working.

 {{{

 The value #<FLEXI-STREAMS:FLEXI-IO-STREAM {1254E5CE}> is not of type
 STREAM.
    [Condition of type TYPE-ERROR]

 Restarts:
  0: [RETRY] Retry SLIME REPL evaluation request.
  1: [*ABORT] Return to SLIME's top level.
  2: [ABORT] Abort thread.

 Backtrace:
   0: (#<FUNCTION {709AF5A0}> #<TYPE-ERROR {4299100A}> #<FUNCTION
 {709AF5A0}>)
   1: (APPLY #<FUNCTION {709AF5A0}> (#<TYPE-ERROR {4299100A}> #<FUNCTION
 {709AF5A0}>))
   2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<TYPE-ERROR
 {4299100A}> #<FUNCTION {709AF5A0}>)
   3: (INVOKE-DEBUGGER #<TYPE-ERROR {4299100A}>)
   4: org.armedbear.lisp.Lisp.error(Lisp.java:382)
   5: org.armedbear.lisp.Lisp.type_error(Lisp.java:435)
   6: org.armedbear.lisp.request_TMP_14.execute(request.lisp:128)
   7: org.armedbear.lisp.Symbol.execute(Symbol.java:814)
   8: org.armedbear.lisp.LispThread.execute(LispThread.java:832)
   9: org.armedbear.lisp.request_TMP_15.execute(request.lisp:140)
  10: org.armedbear.lisp.Symbol.execute(Symbol.java:826)
  11: org.armedbear.lisp.LispThread.execute(LispThread.java:851)
  12: org.armedbear.lisp.request_TMP_31.execute(request.lisp:182)
  13: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98)
  14: org.armedbear.lisp.request_TMP_17.execute(request.lisp:182)
  15: org.armedbear.lisp.LispThread.execute(LispThread.java:986)
  16: org.armedbear.lisp.Lisp.funcall(Lisp.java:192)
  17: org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2845)
  18: (DRAKMA::%READ-BODY #<FLEXI-STREAMS:FLEXI-IO-STREAM {1254E5CE}>
 CHARACTER)
  19: (DRAKMA::READ-BODY #<FLEXI-STREAMS:FLEXI-IO-STREAM {78ACD5DF}>
 ((:DATE . "Mon, 08 Dec 2014 10:24:26 GMT") (:EXPIRES . "-1") (:CACHE-
 CONTROL . "private, max-age=0") (:CONTENT-TYPE . "text/html; charset..

 }}}

 The problem stems from the kludgey way in which ABCL currently implements
 GRAY-STREAMS, namely by "gray-streams.lisp" changing the values of
 functions like CL:READ-SEQUENCE with versions that dispatch depending on
 whether they are invoked on an ANSI stream or a Gray stream.

 If one uses the interpreted form of DRAKMA::%READ-BODY this dispatch
 works, but the compiled form does not.

 We have many problems with our use of streams, but this case might provide
 an insight into figuring out how to move forward.  Did a change in DRAKMA
 cause this problem to surface or is this a regression in the ABCL
 compiler?

--
Ticket URL: <http://abcl.org/trac/ticket/377>
armedbear <http://abcl.org>
armedbear


More information about the armedbear-ticket mailing list