- Generalized Coding Systems

  - Lisp API for Defining Coding Systems

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
User-defined coding systems.

(define-coding-system-type 'type
  :encode-function FUN
  :decode-function FUN
  :detect-function FUN
  :buffering (number = at least this many chars
              line   = buffer up to end of line
              regexp = buffer until this regexp is found in match
              source data.  match data will be appropriate when fun is
              called

encode fun is called as

(encode INSTREAM OUTSTREAM)

should read data from instream and write converted result onto
outstream.  Can leave some data stuff in stream, it will reappear
next time.  Generally, there is a finite amount of data in instream
and further attempts to read lead to would-block errors or retvals.
Can use instream properties to record state.  May use read-stream
functionality to read everything into a vector or string.

->Need vectors + string exposed to resizing of Lisp implementation
  where necessary.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  - UI/design changes for Coding System Pipelining