Commitd2dd06a0Recorded1 Mar 2026Repositorysigil-sqlite
Integrate content-addressable store with build system
Message
Wire the store into the build pipeline so compiled modules are cached by content hash. Second builds of unchanged modules show CACHED instead of COMPILE. Adds --no-cache flag to bypass the store.
Key changes: - Add store field to build context, cache-aware compile-sigil-modules - Dynamic store loading in CLI with module-exists? guard - Register sigil store CLI subcommands (gc, stats) - Convert sigil-crypto and sigil-sqlite to define-native for bootstrap compatibility (boot binary lacks these natives) - Add compile-sigil-modules step to sigil-crypto package.sgl
Changed
src/sigil/sqlite.sgl | 64 ++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 32 insertions(+), 32 deletions(-)Diff
src/sigil/sqlite.sglmodified
@@ -69,8 +69,8 @@
69
;;; (sqlite-db? db) ; => #t 70
;;; (sqlite-db? "not a db") ; => #f 71
;;; ```−72
(%set-docstring! sqlite-db?)−73
(%set-spec! sqlite-db? '(any? -> boolean?))+72
(define-native (sqlite-db? obj)+73
(: any? -> boolean?)) 74
75
;;; Check if a value is a SQLite prepared statement. 76
;;;@@ -78,8 +78,8 @@
78
;;; (sqlite-stmt? stmt) ; => #t 79
;;; (sqlite-stmt? "not stmt") ; => #f 80
;;; ```−81
(%set-docstring! sqlite-stmt?)−82
(%set-spec! sqlite-stmt? '(any? -> boolean?))+81
(define-native (sqlite-stmt? obj)+82
(: any? -> boolean?)) 83
84
;;; Open a SQLite database file. 85
;;;@@ -91,8 +91,8 @@
91
;;; (sqlite-open "app.db") ; => #<sqlite-db> 92
;;; (sqlite-open ":memory:") ; => #<sqlite-db> 93
;;; ```−94
(%set-docstring! sqlite-open)−95
(%set-spec! sqlite-open '(string? -> (maybe sqlite-db?)))+94
(define-native (sqlite-open path)+95
(: string? -> (maybe sqlite-db?))) 96
97
;;; Close a SQLite database handle. 98
;;;@@ -101,8 +101,8 @@
101
;;; ```scheme 102
;;; (sqlite-close db) 103
;;; ```−104
(%set-docstring! sqlite-close)−105
(%set-spec! sqlite-close '(sqlite-db? -> void?))+104
(define-native (sqlite-close db)+105
(: sqlite-db? -> void?)) 106
107
;;; Execute a SQL string directly. 108
;;;@@ -113,8 +113,8 @@
113
;;; (sqlite-exec db "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)") 114
;;; (sqlite-exec db "PRAGMA journal_mode=WAL") 115
;;; ```−116
(%set-docstring! sqlite-exec)−117
(%set-spec! sqlite-exec '(sqlite-db? string? -> boolean?))+116
(define-native (sqlite-exec db sql)+117
(: sqlite-db? string? -> boolean?)) 118
119
;;; Prepare a SQL statement for execution. 120
;;;@@ -124,8 +124,8 @@
124
;;; ```scheme 125
;;; (define stmt (sqlite-prepare db "SELECT * FROM users WHERE id = ?")) 126
;;; ```−127
(%set-docstring! sqlite-prepare)−128
(%set-spec! sqlite-prepare '(sqlite-db? string? -> (maybe sqlite-stmt?)))+127
(define-native (sqlite-prepare db sql)+128
(: sqlite-db? string? -> (maybe sqlite-stmt?))) 129
130
;;; Bind a value to a parameter in a prepared statement. 131
;;;@@ -136,8 +136,8 @@
136
;;; (sqlite-bind stmt 1 "Alice") 137
;;; (sqlite-bind stmt 2 42) 138
;;; ```−139
(%set-docstring! sqlite-bind)−140
(%set-spec! sqlite-bind '(sqlite-stmt? integer? any? -> boolean?))+139
(define-native (sqlite-bind stmt idx val)+140
(: sqlite-stmt? integer? any? -> boolean?)) 141
142
;;; Step through a prepared statement. 143
;;;@@ -147,8 +147,8 @@
147
;;; ```scheme 148
;;; (sqlite-step stmt) ; => 'row, 'done, or #f 149
;;; ```−150
(%set-docstring! sqlite-step)−151
(%set-spec! sqlite-step '(sqlite-stmt? -> any?))+150
(define-native (sqlite-step stmt)+151
(: sqlite-stmt? -> any?)) 152
153
;;; Reset a prepared statement to its initial state. 154
;;;@@ -157,8 +157,8 @@
157
;;; ```scheme 158
;;; (sqlite-reset stmt) 159
;;; ```−160
(%set-docstring! sqlite-reset)−161
(%set-spec! sqlite-reset '(sqlite-stmt? -> void?))+160
(define-native (sqlite-reset stmt)+161
(: sqlite-stmt? -> void?)) 162
163
;;; Finalize a prepared statement and release its resources. 164
;;;@@ -167,16 +167,16 @@
167
;;; ```scheme 168
;;; (sqlite-finalize stmt) 169
;;; ```−170
(%set-docstring! sqlite-finalize)−171
(%set-spec! sqlite-finalize '(sqlite-stmt? -> void?))+170
(define-native (sqlite-finalize stmt)+171
(: sqlite-stmt? -> void?)) 172
173
;;; Get the number of columns in a result set. 174
;;; 175
;;; ```scheme 176
;;; (sqlite-column-count stmt) ; => 3 177
;;; ```−178
(%set-docstring! sqlite-column-count)−179
(%set-spec! sqlite-column-count '(sqlite-stmt? -> integer?))+178
(define-native (sqlite-column-count stmt)+179
(: sqlite-stmt? -> integer?)) 180
181
;;; Get the name of a result column by index. 182
;;;@@ -186,8 +186,8 @@
186
;;; (sqlite-column-name stmt 0) ; => "id" 187
;;; (sqlite-column-name stmt 1) ; => "name" 188
;;; ```−189
(%set-docstring! sqlite-column-name)−190
(%set-spec! sqlite-column-name '(sqlite-stmt? integer? -> string?))+189
(define-native (sqlite-column-name stmt idx)+190
(: sqlite-stmt? integer? -> string?)) 191
192
;;; Get the value of a result column by index. 193
;;;@@ -198,8 +198,8 @@
198
;;; (sqlite-column stmt 0) ; => 1 199
;;; (sqlite-column stmt 1) ; => "Alice" 200
;;; ```−201
(%set-docstring! sqlite-column)−202
(%set-spec! sqlite-column '(sqlite-stmt? integer? -> any?))+201
(define-native (sqlite-column stmt idx)+202
(: sqlite-stmt? integer? -> any?)) 203
204
;;; Get the rowid of the last inserted row. 205
;;;@@ -207,8 +207,8 @@
207
;;; (sqlite-run db "INSERT INTO users (name) VALUES (?)" "Bob") 208
;;; (sqlite-last-insert-rowid db) ; => 5 209
;;; ```−210
(%set-docstring! sqlite-last-insert-rowid)−211
(%set-spec! sqlite-last-insert-rowid '(sqlite-db? -> integer?))+210
(define-native (sqlite-last-insert-rowid db)+211
(: sqlite-db? -> integer?)) 212
213
;;; Get the number of rows changed by the last statement. 214
;;;@@ -216,16 +216,16 @@
216
;;; (sqlite-run db "UPDATE users SET name = ? WHERE id = ?" "Robert" 1) 217
;;; (sqlite-changes db) ; => 1 218
;;; ```−219
(%set-docstring! sqlite-changes)−220
(%set-spec! sqlite-changes '(sqlite-db? -> integer?))+219
(define-native (sqlite-changes db)+220
(: sqlite-db? -> integer?)) 221
222
;;; Get the last error message from the database. 223
;;; 224
;;; ```scheme 225
;;; (sqlite-errmsg db) ; => "not an error" 226
;;; ```−227
(%set-docstring! sqlite-errmsg)−228
(%set-spec! sqlite-errmsg '(sqlite-db? -> string?))+227
(define-native (sqlite-errmsg db)+228
(: sqlite-db? -> string?)) 229
230
;; ========== High-Level API ========== 231