aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2026-03-11 11:53:30 -0400
committerGravatar Peter McGoron 2026-03-11 11:53:30 -0400
commiteb8f2d73c4649f38f34d182fa46d3747286c1096 (patch)
tree125d6a0d1e5e1fae4badeedc94a6834ae6cbceb3
parentactual 0.3.0 (diff)
support for TR7 (no changes for CHICKEN)HEAD0.3.1master
-rw-r--r--README.md2
-rw-r--r--lib/hascheme/base.scm11
-rw-r--r--lib/hascheme/base.sld6
3 files changed, 10 insertions, 9 deletions
diff --git a/README.md b/README.md
index b098a41..8f9eb29 100644
--- a/README.md
+++ b/README.md
@@ -53,7 +53,7 @@ See also [Lazy Racket][LazyRacket].
HaScheme is licensed under the 0BSD license.
-HaScheme is tested to work in CHICKEN 6.0.0 latest master.
+HaScheme is tested to work in CHICKEN 6.0.0 latest master and TR7 2.0.17.
## Restrictions and Implementation Notes
diff --git a/lib/hascheme/base.scm b/lib/hascheme/base.scm
index 7a2a7a5..09a04ab 100644
--- a/lib/hascheme/base.scm
+++ b/lib/hascheme/base.scm
@@ -122,11 +122,12 @@
(cstr-tmp etc ...)
predicate-tmp
(field accessor-tmp) ...)
- (define-wrappers-for-lazy ((cstr field ...) cstr-tmp))
- (define-wrappers-from-strict
- ;; Record type
- ((predicate x) predicate-tmp)
- ((accessor x) accessor-tmp) ...)
+ (define (cstr field ...)
+ (cstr-tmp field ...))
+ (define (predicate obj)
+ (predicate-tmp (! obj)))
+ (define (accessor obj)
+ (accessor-tmp (! obj))) ...
(r7rs:values cstr predicate accessor ...))))))
(define (apply proc . arguments)
diff --git a/lib/hascheme/base.sld b/lib/hascheme/base.sld
index 1935b6c..2fa1b16 100644
--- a/lib/hascheme/base.sld
+++ b/lib/hascheme/base.sld
@@ -4,13 +4,13 @@
quote define-syntax
let-syntax letrec-syntax
let* letrec letrec*)
- r7rs)
+ r7rs:)
(only (scheme base) define-syntax quote
let* letrec letrec* let-syntax letrec-syntax)))
(else (import (prefix (except (scheme base)
quote define-syntax syntax-rules
let-syntax letrec-syntax
- let* letrec letrec* ... _)
+ let* letrec letrec*)
r7rs:)
(only (scheme base) define-syntax syntax-rules quote
let* letrec letrec* ... _ let-syntax letrec-syntax))))
@@ -70,6 +70,6 @@
;; Ports
eof-object eof-object?)
(cond-expand
- ((not chicken tr7) (export _ ... =>))
+ ((not (or chicken tr7)) (export _ ... =>))
(else))
(include "base.scm")) \ No newline at end of file