> I installed the chicken-blob egg and then it gives:
> Syntax error: (sqlite3.scm:552) - malformed expression: (db name n step-proc 
> seed . final-proc)
> inside expression `(case-lambda ...)'

I think that's just a case of needing (scheme case-lambda).

> Is someone working on the sqlite3 egg?

I gave it a go, but some tests are failing with what looks like encoding 
issues. I did change an argument's foreign type, perhaps incorrectly? I don't 
have time to continue now but I've attached my WIP patch in case it's helpful.

Diego
Only in /tmp/sqlite3/: sqlite3.build.sh
diff '--color=auto' -ur /home/dieggsy/.cache/chicken-install/sqlite3/sqlite3.egg /tmp/sqlite3/sqlite3.egg
--- /home/dieggsy/.cache/chicken-install/sqlite3/sqlite3.egg	2026-09-08 12:47:47.407897919 -0400
+++ /tmp/sqlite3/sqlite3.egg	2026-09-08 12:41:50.080311982 -0400
@@ -5,7 +5,8 @@
  (version "3.7.3")
  (dependencies
    srfi-1 srfi-13 srfi-18 srfi-69 object-evict
-   check-errors synch miscmacros matchable sql-null)
+   check-errors synch miscmacros matchable sql-null
+   chicken-blob)
  (test-dependencies test)
  (components
    (extension sqlite3
Only in /tmp/sqlite3/: sqlite3.import.scm
Only in /tmp/sqlite3/: sqlite3.import.so
Only in /tmp/sqlite3/: sqlite3.install.sh
Only in /tmp/sqlite3/: sqlite3.link
diff '--color=auto' -ur /home/dieggsy/.cache/chicken-install/sqlite3/sqlite3.scm /tmp/sqlite3/sqlite3.scm
--- /home/dieggsy/.cache/chicken-install/sqlite3/sqlite3.scm	2026-09-08 12:47:47.407897919 -0400
+++ /tmp/sqlite3/sqlite3.scm	2026-09-08 12:43:28.859535306 -0400
@@ -118,6 +118,11 @@
   matchable
   sql-null)
 
+(cond-expand
+  (chicken-6
+   (import (scheme case-lambda))
+   (import (only (scheme base) exact-integer?)))
+  (else))
 ;;; Foreign types & values
 
 ;; Enumeration and constant definitions
@@ -194,12 +199,14 @@
   (ptr database-ptr database-ptr-set!)
   (busy-handler database-busy-handler database-busy-handler-set!))
 
-(define-record-printer (sqlite3:database db out)
-  (display
+(set-record-printer!
+ sqlite3:database
+ (lambda (db out)
+   (display
     (if (database-ptr db)
-      "#<sqlite3:database>"
-      "#<sqlite3:database zombie>")
-    out))
+        "#<sqlite3:database>"
+        "#<sqlite3:database zombie>")
+    out)))
 
 (define-check+error-type database)
 
@@ -214,12 +221,14 @@
   (ptr statement-ptr statement-ptr-set!)
   (database statement-database))
 
-(define-record-printer (sqlite3:statement stmt out)
-  (display
+(set-record-printer!
+ sqlite3:statement
+ (lambda (stmt out)
+   (display
     (if (statement-ptr stmt)
-      (sprintf "#<sqlite3:statement sql=~s>" (source-sql stmt))
-      "#<sqlite3:statement zombie>")
-    out))
+        (sprintf "#<sqlite3:statement sql=~s>" (source-sql stmt))
+        "#<sqlite3:statement zombie>")
+    out)))
 
 (define-check+error-type statement)
 
@@ -702,10 +711,10 @@
     (let-location ([stmt c-pointer] [tail c-string])
       (cond
         [((foreign-safe-lambda sqlite3:status "sqlite3_prepare_v2"
-            sqlite3:database scheme-pointer int
+            sqlite3:database (const c-string) int
             (c-pointer sqlite3:statement)
             (c-pointer (const c-string)))
-          db (string-append sql "\x00") (string-length sql) #$stmt #$tail)
+          db (string-append sql) (string-length sql) #$stmt #$tail)
           => (lambda (err)
               (case err
                 [(busy)
Only in /tmp/sqlite3/: sqlite3.so
Only in /tmp/sqlite3/: sqlite3.static.o
diff '--color=auto' -ur /home/dieggsy/.cache/chicken-install/sqlite3/TIMESTAMP /tmp/sqlite3/TIMESTAMP
--- /home/dieggsy/.cache/chicken-install/sqlite3/TIMESTAMP	2026-09-08 12:47:47.407897919 -0400
+++ /tmp/sqlite3/TIMESTAMP	2026-09-08 12:26:20.155237029 -0400
@@ -1 +1 @@
-1788886067
\ No newline at end of file
+1788884757
\ No newline at end of file

Reply via email to