aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-11-03 18:09:22 -0500
committerGravatar Peter McGoron 2025-11-03 18:09:22 -0500
commit0400627ff280d52e19b45cb878218a9ac2f52e2d (patch)
treec73b212c877d82e111410cac2e7cb46add03a25d /README.md
parentupdate (diff)
TR7
Diffstat (limited to 'README.md')
-rw-r--r--README.md52
1 files changed, 39 insertions, 13 deletions
diff --git a/README.md b/README.md
index 0be6336..415f16b 100644
--- a/README.md
+++ b/README.md
@@ -8,8 +8,13 @@ to not affect the rest of the test system.
TODO: excise all conditional inclusion by turning them into library
forms. This will pave the way for porting to R6RS.
-Cuprate supports CHICKEN-5, Foment, Chibi, SKINT, Gauche, and Sagittarius.
-TR7, STKLOS, Mosh, Chez, Guile, Racket, and Loko support soon.
+implementation-specific things (sans `define-test-application`, which is
+a hack) are put into implementation libraries that export all relevant
+identifiers. Rewriters take a first argument that is the rewritng closure,
+that can do cycle detection.
+
+Cuprate supports TR7, CHICKEN-5, Foment, Chibi, SKINT, Gauche, and
+Sagittarius. STKLOS, Mosh, Chez, Guile, Racket, and Loko support soon.
## API
@@ -197,35 +202,56 @@ to rewrite it in a low-level macro system. (If your implementation does
not offer a low-level macro system, then bug the maintainer of your
implementation to fix hygiene in their macro expander.)
+This library requires SRFI-225. In the `compat` directory there is a
+partial implementation of SRFI-225 that only works with alists, called
+`micro-srfi-225`, that only requires base R6RS/R7RS. You can use this if
+all you need is to run the tests.
+
## Instructions Per Implementation
-### CHICKEN
+### CHICKEN-5
-Just run `chicken-install cuprate`. Because of a bug with compiled
-syntax-rules patterns, `define-test-application` has limited support.
+There is an SRFI-225 port for CHICKEN-5, so just run `chicken-install
+cuprate`. Because of a bug with compiled syntax-rules patterns,
+`define-test-application` has limited support.
### Foment
-You will need `srfi-225`. The [reference implementation][SRFI-225] will
-work out of the box. Test bodies cannot return multiple values.
+Tested with the latest checkout as of 2025-11-03.
-[SRFI-225]: https://github.com/scheme-requests-for-implementation/srfi-225
+The reference implementation SRFI-225 will work out of the box. Test
+bodies cannot return multiple values. Because of a bug with compiled
+syntax-rules patterns, `define-test-application` has limited support.
### Chibi
-You will need `srfi-225`.
+Tested with 0.10.
+
+The reference implementation of SRFI-225 will work out of the box.
### TR7
-I tried but there were some issues with loading sublibraries.
+Tested to work with 2.0.7.
+
+To use SRFI-225, you will also need SRFI-128. Mini-SRFI-225 will also
+work here.
+
+There is an issue with `call/cc` escaping out of `parameterize`d blocks.
+This doesn't affect any of the test cases, but this may break some code.
### Gauche
-You will need `srfi-225`. I had to explicitly remove some of the conditional
-exports from the reference implementation of SRFI 225 in order to get it
-to work.
+Tested with 0.9.15.
+
+I had to explicitly remove some of the conditional exports from the
+reference implementation of SRFI 225 in order to get it to work.
### SKINT
Tested to work on SKINT 0.6.7, with SRFIs. SKINT bundles SRFI-225, so all
you need to do is point SKINT to `lib` to use `cuprate`.
+
+### STKlos
+
+STKlos currently does not include files from the directory of the library.
+This will probably be fixed in 2.11, but that has not been released yet.