Opened 13 years ago
Closed 13 years ago
#300 closed defect (fixed)
Gray streams aren't streams
| Reported by: | rschlatte | Owned by: | Mark Evenson | 
|---|---|---|---|
| Priority: | major | Milestone: | 1.2.0 | 
| Component: | streams | Version: | 1.2.0-dev | 
| Keywords: | streams | Cc: | |
| Parent Tickets: | 
Description
(require :gray-streams) (subtypep 'gray-streams:fundamental-stream 'stream) ;; => NIL, T
This doesn't matter for flexi-streams and other libs, but cl-store has
a few DECLAREs. I don't know exactly when a type declaration is an
assertion in ABCL, but at least it is for a stream with nonzero safety.
(Reported by James M. Lawrence)
Change History (4)
comment:1 Changed 13 years ago by
| Keywords: | streams added | 
|---|---|
| Milestone: | → 1.2.0 | 
| Version: | → 1.2.0-dev | 
comment:2 Changed 13 years ago by
Observed that the behavior changes once a GRAY-STREAM instance has been created:
CL-USER> (require :gray-streams)
; Loading jar:file:/home/evenson/work/abcl/dist/abcl.jar!/org/armedbear/lisp/gray-streams.abcl ...
; Loaded jar:file:/home/evenson/work/abcl/dist/abcl.jar!/org/armedbear/lisp/gray-streams.abcl (0.396 seconds)
("GRAY-STREAMS")
CL-USER> (subtypep 'gray-streams:fundamental-stream 'stream)
NIL
T
CL-USER> (make-instance 'gray-streams:fundamental-stream)
#<GRAY-STREAMS:FUNDAMENTAL-STREAM {3FF6929C}>
CL-USER> (subtypep 'gray-streams:fundamental-stream 'stream)
T
T
maybe this exposes a problem with CLOS?
comment:3 Changed 13 years ago by
MOP:FINALIZE-INHERITANCE is never called in gray-streams.lisp, so there is not a valid class precedence list.
Should we finalize the inheritance of all the classes in GRAY-STREAMS?  
comment:4 Changed 13 years ago by
| Resolution: | → fixed | 
|---|---|
| Status: | new → closed | 
Note: See
        TracTickets for help on using
        tickets.
    

This is a longstanding problem, that I will try to address in the abcl-1.2.0 release cycle, as it messes up parts of FLEXI-STREAMS handling. Now that MOP is mature, it should be a bit easier to wedge the necessary work in.
See #166, #188, #223, #233.
A draft of the proposed architectural changes in trunk/abcl/doc/design/streams.