1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; indent-tabs-mode: nil -*-
3 ;;; --- Package definition.
6 (in-package :common-lisp-user
)
8 (defpackage :io.streams
9 (:use
:iolib.base
:cffi
)
12 #:dual-channel-fd-mixin
13 #:dual-channel-gray-stream
14 #:dual-channel-single-fd-mixin
15 #:dual-channel-single-fd-gray-stream
32 #:input-fd-non-blocking
34 #:output-fd-non-blocking
39 #:write-buffer-empty-p
47 (eval-when (:compile-toplevel
:load-toplevel
:execute
)
48 (require :gray-streams
))
51 (eval-when (:compile-toplevel
:load-toplevel
:execute
)
52 (unless (fboundp 'stream
:stream-write-string
)
53 (require "streamc.fasl")))
55 (defvar *gray-stream-symbols
*
56 '(#:fundamental-stream
#:fundamental-input-stream
57 #:fundamental-output-stream
#:fundamental-character-stream
58 #:fundamental-binary-stream
#:fundamental-character-input-stream
59 #:fundamental-character-output-stream
60 #:fundamental-binary-input-stream
61 #:fundamental-binary-output-stream
#:stream-read-char
62 #:stream-unread-char
#:stream-read-char-no-hang
63 #:stream-peek-char
#:stream-listen
#:stream-read-line
64 #:stream-clear-input
#:stream-write-char
#:stream-line-column
65 #:stream-start-line-p
#:stream-write-string
#:stream-terpri
66 #:stream-fresh-line
#:stream-finish-output
#:stream-force-output
67 #:stream-clear-output
#:stream-advance-to-column
68 #:stream-read-byte
#:stream-write-byte
))
70 (defparameter *gray-stream-package
*
75 #+(or ccl openmcl
) :ccl
78 #-
(or allegro cmu clisp ecl ccl openmcl lispworks sbcl
)
79 (error "Your CL implementation isn't supported."))
81 (import (mapcar #'(lambda (s) (find-symbol (string s
) *gray-stream-package
*))
82 *gray-stream-symbols
*)