Opened 12 years ago

Closed 12 years ago

#54 closed defect (fixed)

pprint.lisp incompatible with gray-streams.lisp

Reported by: ehuelsmann Owned by: somebody
Priority: major Milestone:
Component: other Version:
Keywords: Cc:
Parent Tickets:


pprint.lisp special-cases the XP-STRUCTURE argument type for the stream argument specified to all the stream functions.

Although SBCL uses largely the same approach, it uses a (slightly) different approach, which is important in the details. (Isn't that where the devil usually is?)

The difference between ABCL and SBCL is that SBCL - although it uses largely the same structure to store its pprinter values - this structure extends the structure which is used to represent streams. In ABCL, this structure is a structure by itself. To compensate for the fact that the structure isn't recognised as a stream itself, all stream functions special case the XP-STRUCTURE argument handling.

Proposed solution: make streams based on dispatch tables stored in structures, just as SBCL does. This way, most of our streams "stuff" can be implemented in Lisp, instead of Java. As a bonus, this issue can be resolved along the same lines as SBCL does.

Change History (2)

comment:1 Changed 12 years ago by ehuelsmann

Forgot to mention: the above means that the pretty stream is being recognised as a stream in SBCL while it's not in ABCL.

comment:2 Changed 12 years ago by ehuelsmann

Resolution: fixed
Status: newclosed

This incompatibility has been resolved and is published in 0.17

Note: See TracTickets for help on using tickets.