README 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. trivial-gray-streams
  2. ====================
  3. This system provides an extremely thin compatibility layer for gray
  4. streams. It is nearly *too* trivial for a complete package, except that
  5. I have copy&pasted this code into enough projects now that I decided to
  6. factor it out once again now, and then *never* have to touch it again.
  7. How to use it
  8. =============
  9. 1. Use the package TRIVIAL-GRAY-STREAMS instead of whatever
  10. implementation-specific package you would have to use otherwise to
  11. get at gray stream symbols.
  12. 2. For STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE, notice that we
  13. use two required arguments and allow additional keyword arguments.
  14. So the lambda list when defining a method on either function should look
  15. like this:
  16. (stream sequence start end &key)
  17. 3. In order for (2) to work on all Lisps, make sure to subclass all your
  18. stream classes from TRIVIAL-GRAY-STREAM-MIXIN if you intend to define
  19. methods on those two generic functions.
  20. Extensions
  21. ==========
  22. Generic function STREAM-READ-SEQUENCE (stream sequence start end &key)
  23. Generic function STREAM-WRITE-SEQUENCE (stream sequence start end &key)
  24. See above.
  25. Generic function STREAM-FILE-POSITION (stream) => file position
  26. Generic function (SETF STREAM-FILE-POSITION) (position-spec stream) => successp
  27. Will only be called by LispWorks and CLISP.