changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: init cli/tools/cc.lisp for grovel experiments, add zstd tests

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