Skip to content

trivial-gray-streams/trivial-gray-streams

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
trivial-gray-streams
====================

Gray streams is an interface proposed for inclusion with ANSI CL
by David N. Gray in Issue STREAM-DEFINITION-BY-USER
(http://www.nhplace.com/kent/CL/Issues/stream-definition-by-user.html).
The proposal did not make it into ANSI CL, but most popular
CL implementations implement this facility anyway.

This system provides an extremely thin compatibility layer for gray
streams.

How to use it
=============

Use the package TRIVIAL-GRAY-STREAMS to refer Gray stream
classes to inherit from, generic functions to implement.

Extensions
==========

The Gray proposal was made before the ANCI CL standard was finalized,
and was based on the Common Lisp The Language book.

The book does not have cl:file-position, cl:read-sequence, cl:write-sequence
functions. That's why (we think) the Gray proposal does not specify
their counterparts: stream-file-position, stream-read-sequence, stream-write-sequence.

trivial-gray-streams supports these functions:

Generic function STREAM-READ-SEQUENCE (stream sequence start end &key)
Generic function STREAM-WRITE-SEQUENCE (stream sequence start end &key)

    Notice that we use two required arguments and allow additional
    keyword arguments. Your methods on these function should have
    compliant lambda lists:
        (stream sequence start end &key)

Generic function STREAM-FILE-POSITION (stream) => file position
Generic function (SETF STREAM-FILE-POSITION) (position-spec stream) => successp

About

Portability library for CL gray streams.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published