aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cuprate/implementation/sagittarius.sld
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-11-03 22:55:50 -0500
committerGravatar Peter McGoron 2025-11-03 22:55:50 -0500
commit860e3809928b6bcca55e38131e279cdcb01d8be7 (patch)
tree66d866be9b2034394ab4427e80574377ef02e71f /lib/cuprate/implementation/sagittarius.sld
parentconsidering continuations (diff)
start moving implementation-dependent code into separate libraries
Diffstat (limited to 'lib/cuprate/implementation/sagittarius.sld')
-rw-r--r--lib/cuprate/implementation/sagittarius.sld20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/cuprate/implementation/sagittarius.sld b/lib/cuprate/implementation/sagittarius.sld
new file mode 100644
index 0000000..ba630f0
--- /dev/null
+++ b/lib/cuprate/implementation/sagittarius.sld
@@ -0,0 +1,20 @@
+(define-library (cuprate implementation sagittarius)
+ (import (scheme base) (scheme format) (srfi 146 hash) (srfi 225))
+ (export pretty-print default-test-dto
+ alist->default-dictionary)
+ (begin
+ (define (pretty-print obj)
+ (show #t (pretty obj))))
+ (cond-expand
+ ;; Sagittarius has SRFI-146 hashmaps. If the full SRFI-225 is loaded
+ ;; (which is hackily checked by checking if micro-srfi-225 is NOT
+ ;; loadable) then use them.
+ ((library (micro-srfi-225))
+ (begin
+ (define default-test-dto eqv-alist-dto)
+ (define (alist->default-dictionary x) x)))
+ (else
+ (begin
+ (define default-test-dto hash-mapping-dto)
+ (define (alist->default-dictionary x)
+ (alist->hashmap (make-default-comparator) x)))))) \ No newline at end of file