Defend against strange symtbl-%cells in "CL" package internals
[sbcl.git] / contrib / sb-simple-streams / package.lisp
blobc9c38bca3dc1f16514bed47138c03a06462d86b1
1 ;;; -*- lisp -*-
3 ;;; This code is in the public domain.
5 ;;; The cmucl implementation of simple-streams was done by Paul Foley,
6 ;;; who placed the code in the public domain. Sbcl port by Rudi
7 ;;; Schlatte.
10 (defpackage sb-simple-streams
11 (:use #:common-lisp)
12 (:import-from #:sb-kernel #:ansi-stream #:charpos #:line-length)
13 (:import-from #:sb-gray #:fundamental-stream)
14 (:import-from #:sb-impl
15 #:in-stream-from-designator #:out-stream-from-designator)
16 ;; FIXME: Using deffoo! or equivalent might be nicer.
17 (:implement #:common-lisp #:sb-impl)
18 (:export ;; Stream classes
19 #:STREAM
20 #:SIMPLE-STREAM
21 #:PROBE-SIMPLE-STREAM
22 #:SINGLE-CHANNEL-SIMPLE-STREAM
23 #:DIRECT-SIMPLE-STREAM
24 #:BUFFER-INPUT-SIMPLE-STREAM
25 #:BUFFER-OUTPUT-SIMPLE-STREAM
26 #:NULL-SIMPLE-STREAM
27 #:FILE-SIMPLE-STREAM
28 #:MAPPED-FILE-SIMPLE-STREAM
29 #:DUAL-CHANNEL-SIMPLE-STREAM
30 #:TERMINAL-SIMPLE-STREAM
31 #:SOCKET-SIMPLE-STREAM
32 #:SOCKET-BASE-SIMPLE-STREAM
33 #:HIPER-SOCKET-SIMPLE-STREAM
34 #:STRING-SIMPLE-STREAM
35 #:COMPOSING-STREAM
36 #:STRING-INPUT-SIMPLE-STREAM
37 #:STRING-OUTPUT-SIMPLE-STREAM
38 #:FILL-POINTER-OUTPUT-SIMPLE-STREAM
39 #:LIMITED-STRING-OUTPUT-SIMPLE-STREAM
40 #:XP-SIMPLE-STREAM
41 #:ANNOTATION-OUTPUT-SIMPLE-STREAM
42 ;; Streams
43 #:*STANDARD-INPUT* #:*STANDARD-OUTPUT* #:*ERROR-OUTPUT*
44 #:*QUERY-IO* #:*DEBUG-IO* #:*TRACE-OUTPUT* #:*TERMINAL-IO*
45 ;; Slot accessors
46 #:STREAM-INPUT-HANDLE #:STREAM-OUTPUT-HANDLE
47 #:STREAM-PLIST
48 ;; Device-level functions
49 #:DEVICE-OPEN #:DEVICE-CLOSE #:DEVICE-BUFFER-LENGTH
50 #:DEVICE-FILE-POSITION #:DEVICE-FILE-LENGTH #:DEVICE-READ
51 #:DEVICE-CLEAR-INPUT #:DEVICE-WRITE #:DEVICE-CLEAR-OUTPUT
52 #:DEVICE-EXTEND #:DEVICE-FINISH-RECORD
53 ;; Implementation functions/macros
54 #:WITH-STREAM-CLASS #:SM #:FUNCALL-STM-HANDLER
55 #:FUNCALL-STM-HANDLER-2 #:ADD-STREAM-INSTANCE-FLAGS
56 #:REMOVE-STREAM-INSTANCE-FLAGS
57 ;; User-level functions (mostly reexported from COMMON-LISP)
58 #:PARSE-FILESPEC #:DEFINE-FILESPEC #:DEFAULT-OPEN-CLASS #:OPEN
59 #:CLOSE #:READ-BYTE #:READ-CHAR #:READ-CHAR-NO-HANG #:UNREAD-CHAR
60 #:PEEK-CHAR #:LISTEN #:READ-LINE #:READ-SEQUENCE #:CLEAR-INPUT
61 #:WRITE-BYTE #:WRITE-CHAR #:WRITE-STRING #:WRITE-SEQUENCE #:TERPRI
62 #:FRESH-LINE #:FINISH-OUTPUT #:FORCE-OUTPUT #:CLEAR-OUTPUT
63 #:FILE-POSITION #:FILE-LENGTH #:LINE-LENGTH #:CHARPOS
64 #:STREAM-ELEMENT-TYPE #:STREAM-EXTERNAL-FORMAT #:STREAMP
65 #:OPEN-STREAM-P #:INPUT-STREAM-P #:OUTPUT-STREAM-P
66 #:INTERACTIVE-STREAM-P #:READ-VECTOR #:WRITE-VECTOR #:READ-OCTETS
67 #:WRITE-OCTETS #:DEF-STREAM-CLASS #:WAIT-FOR-INPUT-AVAILABLE
68 ;; higher level things (reexported from COMMON-LISP)
69 #:WITH-OPEN-FILE #:WITH-OPEN-STREAM #:FORMAT #:PPRINT #:PRIN1
70 #:PRIN1-TO-STRING #:PRINC #:PRINC-TO-STRING #:PRINT #:READ
71 #:READ-DELIMITED-LIST #:READ-FROM-STRING #:WRITE #:WRITE-LINE
72 #:WRITE-TO-STRING #:READ-PRESERVING-WHITESPACE))
73 (eval-when (:compile-toplevel :load-toplevel :execute)
74 (setf (sb-int:system-package-p (find-package "SB-SIMPLE-STREAMS")) t))
76 #||
77 (in-package "SB-EXT")
78 (defgeneric stream-file-position (stream &optional position))
79 (defgeneric stream-file-length (stream))
80 (export '(stream-file-position stream-file-length))
81 ||#