1.1--- a/emacs/lib/publish.el Sun Aug 18 22:00:23 2024 -0400
1.2+++ b/emacs/lib/publish.el Mon Aug 19 19:25:55 2024 -0400
1.3@@ -185,7 +185,7 @@
1.4 (inc-suffixf ref)))
1.5 ref)))
1.6
1.7-(advice-add #'org-export-get-reference :override #'org-export-get-reference-title)
1.8+;; (advice-add #'org-export-get-reference :override #'org-export-get-reference-title)
1.9
1.10 ;;;###autoload
1.11 (defun publish (&optional sitemap static force async)
2.1--- a/emacs/lib/ulang.el Sun Aug 18 22:00:23 2024 -0400
2.2+++ b/emacs/lib/ulang.el Mon Aug 19 19:25:55 2024 -0400
2.3@@ -54,7 +54,7 @@
2.4 (sequence "FIND(q!)" "READ(r@!)" "WATCH(W@!)" "|")
2.5 (sequence "RESEARCH(s!)" "RECORD(e!)" "|")
2.6 (sequence "OUTLINE(O!)" "RESEARCH(A!)" "DRAFT(M!)" "REVIEW(V!)" "|")
2.7- (type "FIXME(i!)" "TEST(t!)" "BENCH(b!)" "DEPLOY(D!)" "RUN(X!)" "LOG(L!)" "|")
2.8+ (type "FIXME(i!)" "TEST(T!)" "BENCH(b!)" "DEPLOY(D!)" "RUN(X!)" "LOG(L!)" "|")
2.9 (type "KLUDGE(k@!)" "HACK(h!)" "NOTE(n!)" "CODE(c!)" "LINK(l!)" "|")
2.10 (type "PROJECT(p!)" "PRODUCT(P!)" "SPRINT(S!)" "RELEASE(R!)" "|")
2.11 (type "GOTO(g!)" "|")
3.1--- a/lisp/ffi/rocksdb/compaction.lisp Sun Aug 18 22:00:23 2024 -0400
3.2+++ b/lisp/ffi/rocksdb/compaction.lisp Mon Aug 19 19:25:55 2024 -0400
3.3@@ -89,8 +89,8 @@
3.4 (key-length size-t)
3.5 (existing-val (array unsigned-char))
3.6 (existing-val-length size-t)
3.7- (new-val (array unsigned-char))
3.8- (new-val-length size-t)
3.9+ (new-val (* (array unsigned-char)))
3.10+ (new-val-length (* size-t))
3.11 (value-changed (* unsigned-char)))
3.12 (declare (ignore state level key key-length existing-val existing-val-length new-val new-val-length value-changed))
3.13 0)
4.1--- a/lisp/ffi/rocksdb/macs.lisp Sun Aug 18 22:00:23 2024 -0400
4.2+++ b/lisp/ffi/rocksdb/macs.lisp Mon Aug 19 19:25:55 2024 -0400
4.3@@ -5,6 +5,20 @@
4.4 ;;; Code:
4.5 (in-package :rocksdb)
4.6
4.7+(deftype rocksdb-mergeoperator-function ()
4.8+ '(function (octet-vector (or octet-vector null) &rest t) (or null octet-vector)))
4.9+
4.10+(deftype rocksdb-comparator-function ()
4.11+ '(function (octet-vector octet-vector) (integer -1 1)))
4.12+
4.13+(deftype rocksdb-compactionfilter-function ()
4.14+ ;; level key val new changed
4.15+ '(function ((unsigned-byte 32) octet-vector octet-vector octet-vector) boolean))
4.16+
4.17+(deftype rocksdb-logger-function ()
4.18+ '(function (unsigned-byte string) (values)))
4.19+
4.20+;;; Merge Ops
4.21 (defmacro define-full-merge-op (name &body body)
4.22 `(define-alien-callable ,name (* t)
4.23 ,*rocksdb-full-merge-lambda-list*
4.24@@ -15,9 +29,6 @@
4.25 ,*rocksdb-partial-merge-lambda-list*
4.26 ,@body))
4.27
4.28-(defvar *rocksdb-destructor-callback* (alien-callable-function 'rocksdb-destructor))
4.29-(defvar *rocksdb-delete-callback* (alien-callable-function 'rocksdb-delete-value))
4.30-
4.31 (defmacro define-merge-operator (name state &key full
4.32 partial
4.33 (destructor 'rocksdb-destructor)
4.34@@ -38,5 +49,3 @@
4.35 (alien-sap (alien-callable-function ',pmerge))
4.36 (alien-sap (alien-callable-function ',delete))
4.37 (alien-sap (alien-callable-function ',mname)))))))
4.38-
4.39-
5.1--- a/lisp/ffi/rocksdb/merge.lisp Sun Aug 18 22:00:23 2024 -0400
5.2+++ b/lisp/ffi/rocksdb/merge.lisp Mon Aug 19 19:25:55 2024 -0400
5.3@@ -122,10 +122,6 @@
5.4
5.5 (define-alien-routine rocksdb-mergeoperator-destroy void (self (* rocksdb-mergeoperator)))
5.6
5.7-;; TODO 2023-12-11:
5.8-(deftype rocksdb-mergeoperator-function ()
5.9- '(function (octet-vector (or octet-vector null) &rest t) (or null octet-vector)))
5.10-
5.11 (define-alien-callable rocksdb-destructor void ((self (* t)))
5.12 (free-alien self)
5.13 (values))
5.14@@ -148,7 +144,7 @@
5.15 (success (array unsigned-char))
5.16 (new-vlen (* size-t)))
5.17 (log:debug! (list key klen existing-val existing-vlen ops ops-length num-ops success new-vlen))
5.18- 1)
5.19+ t)
5.20
5.21 (define-alien-callable rocksdb-concat-partial-merge boolean
5.22 ((key (array unsigned-char))
5.23@@ -159,7 +155,7 @@
5.24 (success (array unsigned-char))
5.25 (new-vlen (* size-t)))
5.26 (log:debug! (list key klen ops ops-length num-ops success new-vlen))
5.27- 0)
5.28+ nil)
5.29
5.30 (define-alien-callable rocksdb-delete-value void
5.31 ((state (* t))
6.1--- a/lisp/ffi/rocksdb/pkg.lisp Sun Aug 18 22:00:23 2024 -0400
6.2+++ b/lisp/ffi/rocksdb/pkg.lisp Mon Aug 19 19:25:55 2024 -0400
6.3@@ -307,7 +307,14 @@
6.4 :rocksdb-writebatch-clear
6.5 :rocksdb-writebatch-wi-create-with-params
6.6 :rocksdb-writebatch-wi-create-from
6.7- :rocksdb-writebatch-wi-create))
6.8+ :rocksdb-writebatch-wi-create
6.9+ :rocksdb-transform-function
6.10+ :rocksdb-in-domain-function
6.11+ :rocksdb-in-range-function
6.12+ :rocksdb-mergeoperator-function
6.13+ :rocksdb-logger-function
6.14+ :rocksdb-compactionfilter-function
6.15+ :rocksdb-comparator-function))
6.16
6.17 (in-package :rocksdb)
6.18
7.1--- a/lisp/ffi/rocksdb/rocksdb.asd Sun Aug 18 22:00:23 2024 -0400
7.2+++ b/lisp/ffi/rocksdb/rocksdb.asd Mon Aug 19 19:25:55 2024 -0400
7.3@@ -15,7 +15,7 @@
7.4 (:file "types")
7.5 (:file "opts")
7.6 (:file "sst")
7.7- (:file "slice")
7.8+ (:file "slicetransform")
7.9 (:file "db")
7.10 (:file "metadata")
7.11 (:file "merge")
8.1--- a/lisp/ffi/rocksdb/slice.lisp Sun Aug 18 22:00:23 2024 -0400
8.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
8.3@@ -1,27 +0,0 @@
8.4-;;; rocksdb/slice.lisp --- RocksDB SliceTransform and PinnableSlice
8.5-
8.6-;; These are used primarily in transactions
8.7-
8.8-;;; Refs:
8.9-
8.10-;; https://rocksdb.org/blog/2017/08/24/pinnableslice.html
8.11-
8.12-;; https://github.com/facebook/rocksdb/blob/main/include/rocksdb/slice_transform.h
8.13-
8.14-;;; Code:
8.15-(in-package :rocksdb)
8.16-
8.17-(define-alien-routine rocksdb-slicetransform-create (* rocksdb-slicetransform)
8.18- (state (* t))
8.19- (destructor (* t))
8.20- (transform (* t))
8.21- (in-domain (* t))
8.22- (in-range (* t))
8.23- (name (* t)))
8.24-
8.25-(define-alien-routine rocksdb-slicetransform-create-noop (* rocksdb-slicetransform))
8.26-
8.27-(define-alien-routine rocksdb-slicetransform-create-fixed-prefix (* rocksdb-slicetransform)
8.28- (n size-t))
8.29-
8.30-(define-alien-routine rocksdb-slicetransform-destroy void (st (* rocksdb-slicetransform)))
9.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2+++ b/lisp/ffi/rocksdb/slicetransform.lisp Mon Aug 19 19:25:55 2024 -0400
9.3@@ -0,0 +1,45 @@
9.4+;;; rocksdb/slicetransform.lisp --- RocksDB SliceTransform
9.5+
9.6+;; These are used primarily in transactions
9.7+
9.8+;;; Refs:
9.9+
9.10+;; https://rocksdb.org/blog/2017/08/24/pinnableslice.html
9.11+
9.12+;; https://github.com/facebook/rocksdb/blob/main/include/rocksdb/slice_transform.h
9.13+
9.14+;;; Code:
9.15+(in-package :rocksdb)
9.16+
9.17+(define-alien-type rocksdb-transform-function
9.18+ (function (array unsigned-char)
9.19+ (array unsigned-char)
9.20+ size-t
9.21+ (* size-t)))
9.22+
9.23+(define-alien-type rocksdb-in-domain-function
9.24+ (function unsigned-char
9.25+ (* t)
9.26+ (array unsigned-char)
9.27+ size-t))
9.28+
9.29+(define-alien-type rocksdb-in-range-function
9.30+ (function unsigned-char
9.31+ (* t)
9.32+ (array unsigned-char)
9.33+ size-t))
9.34+
9.35+(define-alien-routine rocksdb-slicetransform-create (* rocksdb-slicetransform)
9.36+ (state (* t))
9.37+ (destructor (* rocksdb-destructor-function))
9.38+ (transform (* rocksdb-transform-function))
9.39+ (in-domain (* rocksdb-in-domain-function))
9.40+ (in-range (* rocksdb-in-range-function))
9.41+ (name (* rocksdb-name-function)))
9.42+
9.43+(define-alien-routine rocksdb-slicetransform-create-noop (* rocksdb-slicetransform))
9.44+
9.45+(define-alien-routine rocksdb-slicetransform-create-fixed-prefix (* rocksdb-slicetransform)
9.46+ (n size-t))
9.47+
9.48+(define-alien-routine rocksdb-slicetransform-destroy void (st (* rocksdb-slicetransform)))
10.1--- a/lisp/ffi/rocksdb/tests.lisp Sun Aug 18 22:00:23 2024 -0400
10.2+++ b/lisp/ffi/rocksdb/tests.lisp Mon Aug 19 19:25:55 2024 -0400
10.3@@ -466,3 +466,7 @@
10.4 (deftest writebatch ()
10.5 "Test writebatch functionality."
10.6 nil)
10.7+
10.8+(deftest slicetransform ()
10.9+ "Test slicetransform functionality."
10.10+ nil)
11.1--- a/lisp/ffi/rocksdb/vars.lisp Sun Aug 18 22:00:23 2024 -0400
11.2+++ b/lisp/ffi/rocksdb/vars.lisp Mon Aug 19 19:25:55 2024 -0400
11.3@@ -5,6 +5,13 @@
11.4 ;;; Code:
11.5 (in-package :rocksdb)
11.6
11.7+;;; Callbacks
11.8+(defvar *rocksdb-destructor-callback* (alien-callable-function 'rocksdb-destructor))
11.9+(defvar *rocksdb-delete-value-callback* (alien-callable-function 'rocksdb-delete-value))
11.10+(defvar *rocksdb-name-callback* (alien-callable-function 'rocksdb-name))
11.11+(defvar *rocksdb-log-callback* (alien-callable-function 'rocksdb-log-default))
11.12+
11.13+;;; Opts
11.14 (defvar *rocksdb-compression-backends*
11.15 (map 'vector (lambda (x) (string-downcase (symbol-name x)))
11.16 '(none snappy zlib bz2 lz4 lz4hc xpress zstd)))
12.1--- a/lisp/ffi/rocksdb/writebatch.lisp Sun Aug 18 22:00:23 2024 -0400
12.2+++ b/lisp/ffi/rocksdb/writebatch.lisp Mon Aug 19 19:25:55 2024 -0400
12.3@@ -21,6 +21,44 @@
12.4 (define-alien-routine rocksdb-writebatch-clear void (b (* rocksdb-writebatch)))
12.5 (define-alien-routine rocksdb-writebatch-count int (b (* rocksdb-writebatch)))
12.6
12.7+(define-alien-routine rocksdb-writebatch-put-log-data void
12.8+ (batch (* rocksdb-writebatch))
12.9+ (blob (array unsigned-char))
12.10+ (len size-t))
12.11+
12.12+(define-alien-routine rocksdb-writebatch-iterate void
12.13+ (batch (* rocksdb-writebatch))
12.14+ (state (* t))
12.15+ (put (* t)) ;; function
12.16+ (deleted (* t))) ;; function
12.17+
12.18+(define-alien-routine rocksdb-writebatch-iterate-cf void
12.19+ (batch (* rocksdb-writebatch))
12.20+ (state (* t))
12.21+ (put-cf (* t)) ;; function
12.22+ (deleted-cf (* t)) ;; function
12.23+ (merge-cf (* t))) ;; function
12.24+
12.25+(define-alien-routine rocksdb-writebatch-data (array unsigned-char)
12.26+ (batch (* rocksdb-writebatch))
12.27+ (size (* size-t)))
12.28+
12.29+(define-alien-routine rocksdb-writebatch-set-save-point void
12.30+ (batch (* rocksdb-writebatch)))
12.31+
12.32+(def-with-errptr rocksdb-writebatch-rollback-to-save-point void
12.33+ (batch (* rocksdb-writebatch)))
12.34+
12.35+(def-with-errptr rocksdb-writebatch-pop-save-point void
12.36+ (batch (* rocksdb-writebatch)))
12.37+
12.38+(def-with-errptr rocksdb-writebatch-update-timestamps void
12.39+ (batch (* rocksdb-writebatch))
12.40+ (ts (array unsigned-char))
12.41+ (tslen size-t)
12.42+ (state (* t))
12.43+ (get-ts-size (* t))) ;; function
12.44+
12.45 ;; put
12.46 (define-alien-routine rocksdb-writebatch-put void
12.47 (batch (* rocksdb-writebatch))
12.48@@ -72,12 +110,31 @@
12.49 (key (array unsigned-char))
12.50 (klen size-t))
12.51
12.52+(define-alien-routine rocksdb-writebatch-singledelete void
12.53+ (batch (* rocksdb-writebatch))
12.54+ (key (array unsigned-char))
12.55+ (klen size-t))
12.56+
12.57 (define-alien-routine rocksdb-writebatch-delete-cf void
12.58 (batch (* rocksdb-writebatch))
12.59 (cf (* rocksdb-column-family-handle))
12.60 (key (array unsigned-char))
12.61 (klen size-t))
12.62
12.63+(define-alien-routine rocksdb-writebatch-singledelete-cf void
12.64+ (batch (* rocksdb-writebatch))
12.65+ (cf (* rocksdb-column-family-handle))
12.66+ (key (array unsigned-char))
12.67+ (klen size-t))
12.68+
12.69+(define-alien-routine rocksdb-writebatch-singledelete-cf-with-ts void
12.70+ (batch (* rocksdb-writebatch))
12.71+ (cf (* rocksdb-column-family-handle))
12.72+ (key (array unsigned-char))
12.73+ (klen size-t)
12.74+ (ts (array unsigned-char))
12.75+ (tslen size-t))
12.76+
12.77 (define-alien-routine rocksdb-writebatch-delete-cf-with-ts void
12.78 (batch (* rocksdb-writebatch))
12.79 (cf (* rocksdb-column-family-handle))
12.80@@ -86,12 +143,87 @@
12.81 (ts (array unsigned-char))
12.82 (tslen size-t))
12.83
12.84-;; merge
12.85+(define-alien-routine rocksdb-writebatch-deletev void
12.86+ (batch (* rocksdb-writebatch))
12.87+ (num-keys int)
12.88+ (keys-list (array (array unsigned-char)))
12.89+ (keys-list-sizes (array size-t)))
12.90+
12.91+(define-alien-routine rocksdb-writebatch-deletev-cf void
12.92+ (batch (* rocksdb-writebatch))
12.93+ (cf (* rocksdb-column-family-handle))
12.94+ (num-keys int)
12.95+ (keys-list (array (array unsigned-char)))
12.96+ (keys-list-sizes (array size-t)))
12.97+
12.98+(define-alien-routine rocksdb-writebatch-delete-range void
12.99+ (batch (* rocksdb-writebatch))
12.100+ (start-key (array unsigned-char))
12.101+ (start-key-len size-t)
12.102+ (end-key (array unsigned-char))
12.103+ (end-key-len size-t))
12.104+
12.105+(define-alien-routine rocksdb-writebatch-delete-range-cf void
12.106+ (batch (* rocksdb-writebatch))
12.107+ (cf (* rocksdb-column-family-handle))
12.108+ (start-key (array unsigned-char))
12.109+ (start-key-len size-t)
12.110+ (end-key (array unsigned-char))
12.111+ (end-key-len size-t))
12.112+
12.113+(define-alien-routine rocksdb-writebatch-delete-rangev void
12.114+ (batch (* rocksdb-writebatch))
12.115+ (num-keys int)
12.116+ (start-keys-list (array (array unsigned-char)))
12.117+ (start-keys-list-sizes (array size-t))
12.118+ (end-keys-list (array (array unsigned-char)))
12.119+ (end-keys-list-sizes (array size-t)))
12.120
12.121-;; savepoints
12.122+(define-alien-routine rocksdb-writebatch-delete-rangev-cf void
12.123+ (batch (* rocksdb-writebatch))
12.124+ (cf (* rocksdb-column-family-handle))
12.125+ (num-keys int)
12.126+ (start-keys-list (array (array unsigned-char)))
12.127+ (start-keys-list-sizes (array size-t))
12.128+ (end-keys-list (array (array unsigned-char)))
12.129+ (end-keys-list-sizes (array size-t)))
12.130+
12.131+;; merge
12.132+(define-alien-routine rocksdb-writebatch-merge void
12.133+ (batch (* rocksdb-writebatch))
12.134+ (key (array unsigned-char))
12.135+ (klen size-t)
12.136+ (val (array unsigned-char))
12.137+ (vlen size-t))
12.138
12.139-;; with-index (wi)
12.140+(define-alien-routine rocksdb-writebatch-merge-cf void
12.141+ (batch (* rocksdb-writebatch))
12.142+ (cf (* rocksdb-column-family-handle))
12.143+ (key (array unsigned-char))
12.144+ (klen size-t)
12.145+ (val (array unsigned-char))
12.146+ (vlen size-t))
12.147
12.148+(define-alien-routine rocksdb-writebatch-mergev void
12.149+ (batch (* rocksdb-writebatch))
12.150+ (num-keys int)
12.151+ (keys-list (array (array unsigned-char)))
12.152+ (keys-list-sizes (array size-t))
12.153+ (num-values int)
12.154+ (values-list (array (array unsigned-char)))
12.155+ (values-list-sizes (array size-t)))
12.156+
12.157+(define-alien-routine rocksdb-writebatch-mergev-cf void
12.158+ (batch (* rocksdb-writebatch))
12.159+ (cf (* rocksdb-column-family-handle))
12.160+ (num-keys int)
12.161+ (keys-list (array (array unsigned-char)))
12.162+ (keys-list-sizes (array size-t))
12.163+ (num-values int)
12.164+ (values-list (array (array unsigned-char)))
12.165+ (values-list-sizes (array size-t)))
12.166+
12.167+;;; with-index (wi)
12.168 (define-alien-routine rocksdb-writebatch-wi-create (* rocksdb-writebatch-wi)
12.169 (reserved-bytes size-t)
12.170 (overwrite-keys unsigned-char))
12.171@@ -106,3 +238,63 @@
12.172 (overwrite-key unsigned-char)
12.173 (max-bytes size-t)
12.174 (protection-bytes-per-key size-t))
12.175+
12.176+(define-alien-routine rocksdb-writebatch-wi-destroy void
12.177+ (batch (* rocksdb-writebatch-wi)))
12.178+
12.179+(define-alien-routine rocksdb-writebatch-wi-clear void
12.180+ (batch (* rocksdb-writebatch-wi)))
12.181+
12.182+(define-alien-routine rocksdb-writebatch-wi-count void
12.183+ (batch (* rocksdb-writebatch-wi)))
12.184+
12.185+(define-alien-routine rocksdb-writebatch-wi-put void
12.186+ (batch (* rocksdb-writebatch-wi))
12.187+ (key (array unsigned-char))
12.188+ (klen size-t)
12.189+ (val (array unsigned-char))
12.190+ (vlen size-t))
12.191+
12.192+(define-alien-routine rocksdb-writebatch-wi-put-cf void
12.193+ (batch (* rocksdb-writebatch-wi))
12.194+ (cf (* rocksdb-column-family-handle))
12.195+ (key (array unsigned-char))
12.196+ (klen size-t)
12.197+ (val (array unsigned-char))
12.198+ (vlen size-t))
12.199+
12.200+(define-alien-routine rocksdb-writebatch-wi-putv void
12.201+ (batch (* rocksdb-writebatch-wi))
12.202+ (num-keys int)
12.203+ (keys-list (array (array unsigned-char)))
12.204+ (keys-list-sizes (array size-t))
12.205+ (num-values int)
12.206+ (values-list (array (array unsigned-char)))
12.207+ (values-list-sizes (array size-t)))
12.208+
12.209+(define-alien-routine rocksdb-writebatch-wi-putv-cf void
12.210+ (batch (* rocksdb-writebatch-wi))
12.211+ (cf (* rocksdb-column-family-handle))
12.212+ (num-keys int)
12.213+ (keys-list (array (array unsigned-char)))
12.214+ (keys-list-sizes (array size-t))
12.215+ (num-values int)
12.216+ (values-list (array (array unsigned-char)))
12.217+ (values-list-sizes (array size-t)))
12.218+
12.219+(define-alien-routine rocksdb-writebatch-wi-merge void
12.220+ (batch (* rocksdb-writebatch))
12.221+ (key (array unsigned-char))
12.222+ (klen size-t)
12.223+ (val (array unsigned-char))
12.224+ (vlen size-t))
12.225+
12.226+(define-alien-routine rocksdb-writebatch-wi-merge-cf void
12.227+ (batch (* rocksdb-writebatch))
12.228+ (cf (* rocksdb-column-family-handle))
12.229+ (key (array unsigned-char))
12.230+ (klen size-t)
12.231+ (val (array unsigned-char))
12.232+ (vlen size-t))
12.233+
12.234+;; TODO 2024-08-19: