changeset 393: |
6b87df03cdaf |
parent 392: |
077e7b391758 |
child 394: |
a866723aac84 |
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Sat, 01 Jun 2024 17:36:57 -0400 |
files: |
lisp/ffi/zstd/constants.lisp lisp/ffi/zstd/pkg.lisp lisp/ffi/zstd/tests.lisp lisp/lib/cli/tools/cc.lisp lisp/std/file.lisp lisp/std/stream.lisp |
description: |
init cli/tools/cc.lisp for grovel experiments, add zstd tests |
1.1--- a/lisp/ffi/zstd/constants.lisp Sat Jun 01 15:44:55 2024 -0400
1.2+++ b/lisp/ffi/zstd/constants.lisp Sat Jun 01 17:36:57 2024 -0400
1.3@@ -1,16 +1,15 @@
1.4 ("stddef.h" "zstd_errors.h" "zstd.h")
1.5
1.6 ((:integer zstd-version-number "ZSTD_VERSION_NUMBER" nil t)
1.7-(:integer zstd-clevel-default "ZSTD_CLEVEL_DEFAULT" nil t)
1.8-(:integer zstd-magicnumber "ZSTD_MAGICNUMBER" nil t)
1.9-(:integer zstd-magic-dictionary "ZSTD_MAGIC_DICTIONARY" nil t)
1.10+ (:integer zstd-clevel-default "ZSTD_CLEVEL_DEFAULT" nil t)
1.11+ (:integer zstd-magicnumber "ZSTD_MAGICNUMBER" nil t)
1.12+ (:integer zstd-magic-dictionary "ZSTD_MAGIC_DICTIONARY" nil t)
1.13 (:integer zstd-magic-skippable-start "ZSTD_MAGIC_SKIPPABLE_START" nil t)
1.14 (:integer zstd-blocksizelog-max "ZSTD_BLOCKSIZELOG_MAX" nil t)
1.15 (:integer zstd-blocksize-max "ZSTD_BLOCKSIZE_MAX" nil t)
1.16 (:integer zstd-contentsize-unknown "ZSTD_CONTENTSIZE_UNKNOWN" nil t)
1.17 (:integer zstd-contentsize-error "ZSTD_CONTENTSIZE_ERROR" nil t)
1.18 (:integer zstd-max-input-size "ZSTD_MAX_INPUT_SIZE" nil t)
1.19-
1.20 (:enum zstd-strategy
1.21 ((zstd-fast "ZSTD_fast")
1.22 (zstd-dfast "ZSTD_dfast")
1.23@@ -21,9 +20,7 @@
1.24 (zstd_btopt "ZSTD_btopt")
1.25 (zstd_btultra "ZSTD_btultra")
1.26 (zstd_btultra2 "ZSTD_btultra2")))
1.27-
1.28 ;; (:enum zstd-cparameter)
1.29-
1.30 (:enum zstd-errorcode
1.31 ((zstd-error-no-error "ZSTD_error_no_error")
1.32 (zstd-error-generic "ZSTD_error_GENERIC")
1.33@@ -61,4 +58,12 @@
1.34 (zstd-error-sequenceproducer-failed "ZSTD_error_sequenceProducer_failed")
1.35 (zstd-error-externalsequences-invalid "ZSTD_error_externalSequences_invalid")
1.36 (zstd-error-maxcode "ZSTD_error_maxCode"))
1.37- nil t))
1.38+ nil t)
1.39+ (:structure zstd-inbuffer-s ("struct ZSTD_inBuffer_s"
1.40+ ((* t) src "const void*" "src")
1.41+ (size-t size "size_t" "size")
1.42+ (size-t pos "size-t" "pos")))
1.43+ (:structure zstd-outbuffer-s ("struct ZSTD_outBuffer_s"
1.44+ ((* t) src "void*" "dst")
1.45+ (size-t size "size_t" "size")
1.46+ (size-t pos "size-t" "pos"))))
2.1--- a/lisp/ffi/zstd/pkg.lisp Sat Jun 01 15:44:55 2024 -0400
2.2+++ b/lisp/ffi/zstd/pkg.lisp Sat Jun 01 17:36:57 2024 -0400
2.3@@ -87,15 +87,10 @@
2.4 (src (* t)) (src-size size-t))
2.5
2.6 ;;; Streaming API
2.7-(define-alien-type zstd-inbuffer (struct zstd-inbuffer-s
2.8- (src (* t))
2.9- (size size-t)
2.10- (pos size-t)))
2.11+(define-alien-type zstd-inbuffer (struct zstd-inbuffer-s))
2.12
2.13-(define-alien-type zstd-outbuffer (struct zstd-outbuffer-s
2.14- (dst (* t))
2.15- (size size-t)
2.16- (pos size-t)))
2.17+
2.18+(define-alien-type zstd-outbuffer (struct zstd-outbuffer-s))
2.19
2.20 (define-alien-type zstd-cstream zstd-cctx)
2.21
2.22@@ -103,6 +98,10 @@
2.23 (define-alien-routine "ZSTD_freeCStream" void (zcs (* zstd-cstream)))
2.24
2.25 (define-alien-type zstd-enddirective int)
2.26+;; (enum nil
2.27+;; (zstd-e-continue 0)
2.28+;; (zstd-e-flush 1)
2.29+;; (zstd-e-end 2))
2.30
2.31 (define-alien-routine "ZSTD_compressStream2" size-t
2.32 (cctx (* zstd-cctx))
2.33@@ -112,6 +111,11 @@
2.34
2.35 (define-alien-routine "ZSTD_CStreamInSize" size-t)
2.36 (define-alien-routine "ZSTD_CStreamOutSize" size-t)
2.37+(define-alien-routine "ZSTD_initCStream" size-t (zcs (* zstd-cstream)) (compression-level int))
2.38+
2.39+(define-alien-routine "ZSTD_compressStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer)) (input (* zstd-inbuffer)))
2.40+(define-alien-routine "ZSTD_flushStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer)))
2.41+(define-alien-routine "ZSTD_endStream" size-t (zcs (* zstd-cstream)) (output (* zstd-outbuffer)))
2.42
2.43 (define-alien-type zstd-dstream zstd-dctx)
2.44
3.1--- a/lisp/ffi/zstd/tests.lisp Sat Jun 01 15:44:55 2024 -0400
3.2+++ b/lisp/ffi/zstd/tests.lisp Sat Jun 01 17:36:57 2024 -0400
3.3@@ -4,6 +4,7 @@
3.4 (defsuite :zstd)
3.5 (in-suite :zstd)
3.6 (load-zstd)
3.7+
3.8 (deftest sanity ()
3.9 (mapc (lambda (x)
3.10 (is (= (car x) (cdr x))))
3.11@@ -15,5 +16,23 @@
3.12 (,zstd::zstd-contentsize-unknown . -1)
3.13 (,zstd::zstd-contentsize-error . -2)
3.14 (,zstd::zstd-max-input-size . -71777214294589696)
3.15- (,zstd::zstd-version-number . 10506)
3.16+ (,zstd::zstd-version-number . (zstd::zstd-versionnumber))
3.17 (,zstd::zstd-magic-dictionary . -332356553))))
3.18+
3.19+(deftest simple ()
3.20+ ;; (zstd::zstd-compress)
3.21+ ;; (zstd::zstd-decompress)
3.22+)
3.23+
3.24+(deftest cstream ()
3.25+ (let ((ret 0)
3.26+ (in (zstd::allocate-zstd-inbuffer-s))
3.27+ (out (zstd::allocate-zstd-outbuffer-s))
3.28+ (cst (zstd::zstd-createcstream)))
3.29+ (setf ret (zstd::zstd-initcstream cst 9))
3.30+ (is (= 0 (zstd::zstd-iserror ret)))
3.31+ (zstd::zstd-compressstream cst out in)
3.32+ (is (= 0 (zstd::zstd-compressstream2 cst out in 0)))))
3.33+
3.34+
3.35+
4.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2+++ b/lisp/lib/cli/tools/cc.lisp Sat Jun 01 17:36:57 2024 -0400
4.3@@ -0,0 +1,9 @@
4.4+;;; cli/tools/cc.lisp --- C Compilers
4.5+
4.6+;; Use C Compiler tooling from Lisp.
4.7+
4.8+;;; Commentary:
4.9+
4.10+;;
4.11+
4.12+;;; Code:
5.1--- a/lisp/std/file.lisp Sat Jun 01 15:44:55 2024 -0400
5.2+++ b/lisp/std/file.lisp Sat Jun 01 17:36:57 2024 -0400
5.3@@ -245,7 +245,9 @@
5.4 :space space)))
5.5
5.6 (defmacro with-open-files ((&rest args) &body body)
5.7- "A simple macro to open one or more files providing the streams for the BODY. The ARGS is a list of `(stream filespec options*)` as supplied to WITH-OPEN-FILE."
5.8+ "A simple macro to open one or more files providing the streams for the
5.9+BODY. The ARGS is a list of `(stream filespec options*)` as supplied to
5.10+WITH-OPEN-FILE."
5.11 (case (length args)
5.12 ((0)
5.13 `(progn ,@body))
6.1--- a/lisp/std/stream.lisp Sat Jun 01 15:44:55 2024 -0400
6.2+++ b/lisp/std/stream.lisp Sat Jun 01 17:36:57 2024 -0400
6.3@@ -50,6 +50,7 @@
6.4 output-position))
6.5
6.6 ;; from SBCL manual
6.7+;;; Wrapped Streams
6.8 (defclass wrapped-stream (fundamental-stream)
6.9 ((stream :initarg :stream :reader stream-of)))
6.10