1.1--- a/lisp/lib/io/pkg.lisp Sat Jun 08 01:38:26 2024 -0400
1.2+++ b/lisp/lib/io/pkg.lisp Sun Jun 09 02:04:18 2024 -0400
1.3@@ -12,27 +12,39 @@
1.4 ;; class, something like IO-STREAM.
1.5
1.6 ;;; Code:
1.7-(defpackage :io
1.8- (:use :cl :std :obj/id :uring :sb-bsd-sockets)
1.9+(defpackage :io/proto
1.10+ (:use :cl :std/err)
1.11+ (:export :io-error))
1.12+
1.13+(defpackage :io/ring
1.14+ (:use :cl :uring :io/proto)
1.15 (:import-from :sb-alien :addr)
1.16- (:import-from :uring :build)
1.17- (:shadowing-import-from :uring :load-uring)
1.18- (:export :load-uring :*io*
1.19- :init-io :enter-io :exit-io))
1.20+ (:import-from :std/err :deferror))
1.21
1.22-(in-package :io)
1.23-
1.24-(load-uring)
1.25+(defpackage :io/stream
1.26+ (:use :cl :io/proto)
1.27+ (:import-from :std/err :deferror)
1.28+ (:export :io-stream-error :io-stream))
1.29
1.30-(defvar *io* nil)
1.31+(defpackage :io/socket
1.32+ (:use :cl :io/proto)
1.33+ (:import-from :std/err :deferror)
1.34+ (:export :io-socket-error :io-socket))
1.35
1.36-(defun init-io (&optional (entries 256) (flags 0))
1.37- "Initialize the *IO* variable to an io-uring alien-value type using a
1.38-queue size of ENTRIES and settings FLAGS."
1.39- (with-new-io-uring r
1.40- (if (= 0 (io-uring-queue-init entries (addr r) flags))
1.41- (setf *io* r)
1.42- (error "failed to initialize io-uring"))))
1.43+(defpackage :io/flate
1.44+ (:use :cl :io/proto)
1.45+ (:import-from :std/err :deferror)
1.46+ (:export :flate-error :compression-error :decompression-error
1.47+ :*compression-buffer-size* :decompression-buffer-size* :finish-compression :finish-decompression
1.48+ :reset-compressor :reset-decompressor :make-compressing-stream :make-decompressing-stream
1.49+ :compress-object :decompress-object :compress :decompress
1.50+ :compressor :compressing-stream :decompressor :decompressing-stream))
1.51
1.52-(defun enter-io (ring))
1.53-(defun exit-io (ring))
1.54+(defpackage :io/zstd
1.55+ (:use :cl :io/proto :io/flate)
1.56+ (:import-from :std/err :deferror)
1.57+ (:export :zstd-error :zstd-compressor :zstd-decompressor))
1.58+
1.59+(pkg:defpkg :io
1.60+ (:use :cl)
1.61+ (:use-reexport :io/proto :io/ring :io/flate :io/zstd :io/stream :io/socket))