changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/lib/io/pkg.lisp

changeset 690: 90417ae14b21
parent: 29fe829a7ac3
child: 2bad47888dbf
author: Richard Westhaver <ellis@rwest.io>
date: Tue, 01 Oct 2024 23:34:01 -0400
permissions: -rw-r--r--
description: added io/fast, moved obj/music -> aud/music
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 
19 (defpackage :io/fast
20  (:use :cl :std :io/proto)
21  (:export
22  #:fast-read-byte #:fast-write-byte
23  #:fast-read-sequence #:fast-write-sequence
24  #:with-fast-input #:with-fast-output
25  #:write8 #:writeu8
26  #:write8-le #:writeu8-le #:write8-be #:writeu8-be
27  #:write16-le #:writeu16-le #:write16-be #:writeu16-be
28  #:write24-le #:writeu24-le #:write24-be #:writeu24-be
29  #:write32-le #:writeu32-le #:write32-be #:writeu32-be
30  #:write64-le #:writeu64-le #:write64-be #:writeu64-be
31  #:write128-le #:writeu128-le #:write128-be #:writeu128-be
32  #:read8 #:readu8
33  #:read8-le #:readu8-le #:read8-be #:readu8-be
34  #:read16-le #:readu16-le #:read16-be #:readu16-be
35  #:read32-le #:readu32-le #:read32-be #:readu32-be
36  #:read64-le #:readu64-le #:read64-be #:readu64-be
37  #:read128-le #:readu128-le #:read128-be #:readu128-be
38  #:fast-output-stream #:fast-input-stream))
39 
40 (defpackage :io/ring
41  (:use :cl :uring :io/proto)
42  (:import-from :sb-alien :addr)
43  (:import-from :std :deferror :eval-always))
44 
45 (defpackage :io/stream
46  (:use :cl :io/proto)
47  (:import-from :std :deferror :eval-always)
48  (:export :io-stream-error :io-stream))
49 
50 (defpackage :io/socket
51  (:use :cl :io/proto)
52  (:import-from :std :deferror :eval-always)
53  (:export :io-socket-error :io-socket :sockopt-receive-timeout))
54 
55 (defpackage :io/flate
56  (:use :cl :io/proto)
57  (:import-from :std :deferror :eval-always)
58  (:export :flate-error :compression-error :decompression-error
59  :*compression-buffer-size* :decompression-buffer-size* :finish-compression :finish-decompression
60  :reset-compressor :reset-decompressor :make-compressing-stream :make-decompressing-stream
61  :compress-object :decompress-object :compress :decompress
62  :compressor :compressing-stream :decompressor :decompressing-stream))
63 
64 (defpackage :io/zstd
65  (:use :cl :std :io/proto :io/flate)
66  (:import-from :std :deferror :eval-always)
67  (:export :zstd-error :zstd-compressor :zstd-decompressor))
68 
69 (defpackage :io/kbd
70  (:use :cl :std :io/proto :xkb)
71  (:export :kbd-error))
72 
73 (pkg:defpkg :io
74  (:use :cl)
75  (:use-reexport :io/proto :io/ring :io/flate :io/zstd :io/stream :io/socket))