Coverage report: /home/ellis/comp/core/lib/io/pkg.lisp

KindCoveredAll%
expression013 0.0
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; io/pkg.lisp --- high-level IO API
2
 
3
 ;;
4
 
5
 ;;; Commentary:
6
 
7
 ;; pay close attention to the spec for opportunities to replace io
8
 ;; primitives -- for example WITH-OPEN-FILE accepts a :CLASS keyword
9
 ;; argument, which defaults to SB-SYS:FD-STREAM.
10
 
11
 ;; this package would be responsible for providing an alternative
12
 ;; class, something like IO-STREAM.
13
 
14
 ;;; Code:
15
 (defpackage :io/proto
16
   (:use :cl :std/condition)
17
   (:export :io-error
18
    :output :input
19
    :output-size :input-size
20
    :output-buffer :input-buffer
21
    :input-position :output-position
22
    :output-available-p :input-available-p
23
    :fill-buffer :header
24
    :header-type :header-length
25
    :offset
26
    :snapshot
27
    :sync))
28
 
29
 (defpackage :io/stream
30
   (:use :cl :io/proto :sb-gray :std/meta)
31
   (:import-from :std :deferror :eval-always :stream-of :wrapped-stream)
32
   (:export :io-stream-error :io-stream :make-bound-stream
33
    :bound-input-stream :ensure-file-position
34
    :peeking-input-stream :peeked
35
    :peeked-count
36
    :peeked-size
37
    :make-decoding-stream
38
    :decoding-stream
39
    :+buffer-size+
40
    :dec-fill-buffer
41
    :needs-to-fill-buffer-p))
42
 
43
 (defpackage :io/static
44
   (:use :cl :std :sb-alien :io/stream)
45
   (:shadow :constantp)
46
   (:export
47
    ;; Constructors and destructors
48
    :make-static-vector
49
    :free-static-vector
50
    :with-static-vector
51
    :with-static-vectors
52
    ;; Accessors
53
    :static-vector-pointer
54
    ;; Alien wrapper type
55
    :static-vector
56
    ;; Foreign memory operations
57
    :replace-foreign-memory
58
    :fill-foreign-memory
59
    :static-stream
60
    :*default-static-stream-size*
61
    :with-static-stream
62
    :with-static-streams))
63
 
64
 (defpackage :io/fast
65
   (:use :cl :std :io/proto :io/stream)
66
   (:import-from :io/static :make-static-vector)
67
   (:import-from :std/macs :once-only)
68
   (:export
69
    #:fast-read-byte #:fast-write-byte
70
    #:fast-read-sequence #:fast-write-sequence
71
    #:with-fast-input #:with-fast-output
72
    #:write8 #:writeu8
73
    #:write8-le #:writeu8-le #:write8-be #:writeu8-be
74
    #:write16-le #:writeu16-le #:write16-be #:writeu16-be
75
    #:write24-le #:writeu24-le #:write24-be #:writeu24-be
76
    #:write32-le #:writeu32-le #:write32-be #:writeu32-be
77
    #:write64-le #:writeu64-le #:write64-be #:writeu64-be
78
    #:write128-le #:writeu128-le #:write128-be #:writeu128-be
79
    #:read8 #:readu8
80
    #:read8-le #:readu8-le #:read8-be #:readu8-be
81
    #:read16-le #:readu16-le #:read16-be #:readu16-be
82
    #:read32-le #:readu32-le #:read32-be #:readu32-be
83
    #:read64-le #:readu64-le #:read64-be #:readu64-be
84
    #:read128-le #:readu128-le #:read128-be #:readu128-be
85
    #:fast-output-stream #:fast-input-stream))
86
 
87
 (defpackage :io/uring
88
   (:use :cl :uring :io/proto)
89
   (:import-from :sb-alien :addr)
90
   (:import-from :std :deferror :eval-always))
91
 
92
 (defpackage :io/chunky
93
   (:nicknames :chunky)
94
   (:use :cl :std/stream :io/proto :io/stream :sb-gray :std/meta)
95
   (:import-from :std :deferror :when-let :define-constant :eval-always)
96
   (:export
97
    #:output-chunking-p
98
    #:chunked-input-stream
99
    #:chunked-stream
100
    :chunked-output-stream
101
    #:+default-chunked-output-size+
102
    #:input-chunking-p
103
    #:simple-chunked-input-stream
104
    #:chunked-input-stream-extensions
105
    #:chunked-input-stream-trailers
106
    #:signal-eof
107
    #:expecting-crlf-p
108
    #:chunked-io-stream
109
    #:make-chunked-stream
110
    #:blocked-stream
111
    #:blocked-io-stream
112
    #:blocked-output-stream
113
    #:blocked-input-stream
114
    #:read-char*
115
    #:unread-char*
116
    #:peek-char*
117
    #:assert-char
118
    #:assert-crlf
119
    #:with-character-stream-semantics))
120
 
121
 (defpackage :io/socket
122
   (:use :cl :io/proto :sb-alien)
123
   (:import-from :std :deferror :eval-always :timeval)
124
   (:export :io-socket-error 
125
    :io-socket :sockopt-receive-timeout :sockopt-send-timeout :sockopt-linger
126
    :sockopt-peercred))
127
 
128
 (defpackage :io/flate
129
   (:use :cl :io/proto :sb-gray)
130
   (:import-from :std :deferror :eval-always)
131
   (:import-from :std/stream :wrapped-stream)
132
   (:export :flate-error :compression-error :decompression-error
133
    :*compression-buffer-size* :decompression-buffer-size* :finish-compression :finish-decompression
134
    :reset-compressor :reset-decompressor
135
    :compress-object :decompress-object :compress :decompress
136
    :compressor :compressing-stream :decompressor :decompressing-stream
137
    :make-decompressing-stream :make-compressing-stream
138
    :*decompression-buffer-size* :*compression-level*
139
    :compress-with :decompress-with
140
    :compression-level :*compressor*
141
    :*decompressor* :*preferred-compression-type*
142
    :*compression-types*
143
    :compress-octet-vector
144
    :compress-octet
145
    :with-compressor))
146
 
147
 (defpackage :io/zstd
148
   (:use :cl :std :io/proto :io/flate :sb-alien)
149
   (:import-from :zstd :zstd-createdstream :zstd-createcstream
150
    :zstd-dstream :zstd-cstream :zstd-freecstream :zstd-freedstream
151
    :with-zstd-dstream :with-zstd-cstream :zstd-initcstream :zstd-initdstream
152
    :zstd-compressstream2 :zstd-decompressstream
153
    :allocate-zstd-inbuffer :allocate-zstd-outbuffer :zstd-outbuffer :zstd-inbuffer
154
    :zstd-inbuffer-src :zstd-inbuffer-size :zstd-outbuffer-dst :zstd-outbuffer-size
155
    :zstd-enddirective :zstd-dstreaminsize :zstd-dstreamoutsize :zstd-cstreaminsize 
156
    :zstd-cstreamoutsize :zstd-inbuffer-pos :zstd-outbuffer-pos)
157
   (:import-from :std :deferror :eval-always)
158
   (:import-from :sb-gray :stream-force-output :stream-finish-output
159
    :stream-write-sequence)
160
   (:export :zstd-error :zstd-compressor :zstd-decompressor
161
    :with-zstd-output :with-zstd-input
162
    :with-zstd-buffer :with-zstd-stream))
163
 
164
 (defpackage :io/deflate
165
   (:use :cl :std :io/proto :io/flate)
166
   (:import-from :std :deferror :eval-always)
167
   (:import-from :sb-gray :stream-force-output :stream-finish-output
168
    :stream-write-sequence)
169
   (:import-from :ironclad :make-digest :produce-digest :update-digest :copy-digest)
170
   (:export :inflate-state :bzip2-state :make-dstate 
171
    :finish-dstate :make-inflate-state :finish-inflate-state :deflate
172
    :zlib :gzip :bzip2 :invalid-format-error
173
    #:invalid-checksum-error
174
    #:premature-end-of-stream
175
    #:inflate-error
176
    #:invalid-zlib-header-error
177
    #:invalid-gzip-header-error
178
    #:reserved-block-type-error
179
    #:invalid-stored-block-length-error
180
    #:bzip2-error
181
    #:invalid-bzip2-data
182
    :deflate-compressor
183
    :zlib-compressor
184
    :gzip-compressor))
185
 
186
 (defpackage :io/kbd
187
   (:use :cl :std :io/proto :xkb :evdev :sb-alien)
188
   (:export :kbd-error
189
    :load-kbd-libs
190
    :keyboard
191
    :device-read-event
192
    :print-device-input-info
193
    :make-keyboard-from-dev
194
    :keyboard-device-p
195
    :new-device-from-path
196
    :evdev-bit-p
197
    :kbd-code-name
198
    :get-keyboards))
199
 
200
 (defpackage io/xsubseq
201
   (:use :cl)
202
   (:import-from :sb-cltl2 :variable-information)
203
   (:import-from :std/type :octet-vector)
204
   (:export :xsubseq
205
    :octet-xsubseq :string-xsubseq
206
    :concatenated-xsubseqs :null-concatenated-xsubseqs
207
    :octet-concatenated-xsubseqs :string-concatenated-xsubseqs
208
    :make-concatenated-xsubseqs :xlength
209
    :xnconc :xnconcf
210
    :coerce-to-sequence :coerce-to-string
211
    :with-xsubseqs))
212
 
213
 (defpackage io/smart-buffer
214
   (:use :cl :io/xsubseq)
215
   (:export :*default-memory-limit*
216
    :*default-disk-limit* :smart-buffer
217
    :make-smart-buffer :write-to-buffer
218
    :finalize-buffer :with-smart-buffer
219
    :buffer-on-memory-p :delete-stream-file
220
    :delete-temporary-files :buffer-limit-exceeded))