diff options
| author | 2025-11-04 08:24:27 -0500 | |
|---|---|---|
| committer | 2025-11-04 08:24:27 -0500 | |
| commit | f1c3054215f58b4a4cca3a7716993c273c87ca74 (patch) | |
| tree | 1ee2cad102f87ff65f5ef12eda019c79110792a0 /lib/cuprate/implementation/foment.sld | |
| parent | start moving implementation-dependent code into separate libraries (diff) | |
move rewriters to implementation file, make rewriter cycle-detecting
Diffstat (limited to 'lib/cuprate/implementation/foment.sld')
| -rw-r--r-- | lib/cuprate/implementation/foment.sld | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/cuprate/implementation/foment.sld b/lib/cuprate/implementation/foment.sld index 2ad53dc..907decd 100644 --- a/lib/cuprate/implementation/foment.sld +++ b/lib/cuprate/implementation/foment.sld @@ -1,10 +1,22 @@ (define-library (cuprate implementation foment) - (import (scheme base) (srfi 166) (srfi 225)) + (import (foment base) (scheme base) (srfi 166) (srfi 225) (srfi 128) (srfi 125)) (export pretty-print default-test-dto - alist->default-dictionary) + alist->default-dictionary + make-eq-map implementation-rewriters) + (include "srfi-125-eq-map.scm") (begin (define (pretty-print obj) (show #t (pretty obj)) (newline)) (define default-test-dto eqv-alist-dto) - (define (alist->default-dictionary x) x)))
\ No newline at end of file + (define (alist->default-dictionary x) x) + (define (default-on-error rewrite error) + (let ((msg (error-object-message error)) + (irritants (error-object-irritants error))) + `(error (type ,(rewrite (error-object-type error))) + (who ,(rewrite (error-object-who error))) + (kind ,(rewrite (error-object-kind error))) + (msg ,(rewrite (error-object-message error))) + (irritants ,@(map rewrite (error-object-irritants error)))))) + (define implementation-rewriters + (list (cons error-object? default-on-error)))))
\ No newline at end of file |
