aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-11-01 22:29:42 -0400
committerGravatar Peter McGoron 2025-11-01 22:29:42 -0400
commit44e4fd1e1f914e5b307435769c8909da8a72aafb (patch)
tree0c5e707c836f646229462adb08314ac8988e2d14 /README.md
parentadd expect-to-fail (diff)
Big rewrite:
1. Rename to "cuprate". 2. Remove mutexes. 3. Move rewriters to other library. 4. Move the DTO out of the `test-info` parameter. They are now separate parameters, with the expectation that the DTO will not change over time. This significantly reduces the complexity of the code. 5. Use SRFI-146 for Chicken.
Diffstat (limited to 'README.md')
-rw-r--r--README.md58
1 files changed, 28 insertions, 30 deletions
diff --git a/README.md b/README.md
index 7250ebc..cb61eb8 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-# Conspire
+# Cuprate
TODO: pretty printing
-Conspire is an experiment in providing a portable R6RS/R7RS testing
+Cuprate is an experiment in providing a portable R6RS/R7RS testing
library. It uses purely functional data structures in a mutable parameter
object, allowing for procedural programming inside of a dynamic extent
to not affect the rest of the test system.
@@ -11,22 +11,26 @@ to not affect the rest of the test system.
### `test-info` procedures
- `test-info`
+ test-info
+ test-info?
+ test-dto
-What SRFI-64 would call the "test runner" is in Conspire the `test-info`,
-which contains a pure SRFI-225 dictionary with an associated DTO. The
+What SRFI-64 would call the "test runner" is in Cuprate the `test-info`,
+which contains test-info record containing a pure SRFI-225 dictionary. The
dictionary must map at least symbols to values (including procedures).
Whenever a test group or a test is entered, a new dynamic extent is
entered with a new test-info object. Destructive updates to the new test
info are not reflected in the test info of the call.
-The `test-info` is a parameter and can be modified with the `parameterize`
-form. The inputs to `test-info` must be one of:
+When `test-info` is parameterized with a value satisfying `test-info?`,
+then that test-info is used in the dynamic extent of the invocation of
+`parameterize`. Otherwise, a new record is allocated, and the value passed
+to `parameterize` is inserted into that record. This new record does not
+share state with any other test-info.
-* `copy`: Return an unchanged copy of the `test-info`
-* `replace dict [dto]`: In the new dynamic extent, the dictionary is
- replaced with `dict`, optionally with new dto `dto`.
+The dictionary inside the `test-info` parameter must be a dictionary
+according to the DTO in `test-dto`. The value in `test-dto` must be a DTO.
test-set!
test-update!
@@ -47,15 +51,14 @@ is equivalent to `(dict-set! dto dict key value)`.
(modify-test-info! proc)
-Evaluates `(proc dto dict)`, where `dto` is the current `test-info` DTO
-and `dict` is the current `test-info` dict. The procedure must return
-a dict satisfying the same DTO. This dictionary is set as the current
-`test-info` dictionary within the dynamic extent.
+Evaluates `(proc dict)`, where `dict` is the current `test-info` dict. The
+procedure must return a dict satisfying the same DTO. This dictionary
+is set as the current `test-info` dictionary within the dynamic extent.
(inspect-test-info proc)
-Evaluates `(proc dto dict)`, where `dto` is the current `test-info` DTO
-and `dict` is the current `test-info` dict, and returns the result.
+Evaluates `(proc dict)`, where `dict` is the current `test-info` dict,
+and returns the result.
### `test-info` Standard Procedure Keys
@@ -70,15 +73,15 @@ false, then the test is skipped.
A procedure of zero arguments. Called in the dynamic extent of a
test. Used to set up parts of a test.
- after-test (default-after-test dto dict)
+ after-test (default-after-test dict)
-A procedure of two arguments (the DTO and dictionary of the test). Called
+A procedure of one argument (the dictionary of the test). Called
in the dynamic extent of the caller. Used to report information about
the test, and to merge desired information into the calling test info.
- report-test (default-report-test dto dict)
+ report-test (default-report-test dict)
-A procedure of two arguments (the DTO and dictionary of the test). Used by
+A procedure of one argument (the dictionary of the test). Used by
`default-after-test` to report the result of the test to the user.
group-begin (default-group-begin name)
@@ -86,11 +89,11 @@ A procedure of two arguments (the DTO and dictionary of the test). Used by
A procedure of one argument (the name of the group). Called in the dynamic
extent of the group. Used to set up common information for a whole group.
- group-end (default-group-end dto dict)
+ group-end (default-group-end dict)
-A procedure of two arguments (the DTO and the dictionary of the
-test). Called in the dynamic extent containing the group. Used to report
-information about the group and merge it with the containing test info.
+A procedure of one (the dictionary of the test). Called in the dynamic
+extent containing the group. Used to report information about the group
+and merge it with the containing test info.
### `test-info` Standard Keys
@@ -181,16 +184,11 @@ This library requires `make-parameter` and `parameterize` to work like
in R7RS. Most R6RS implementations should support dynamic parameters out
of the box.
-Multi-threaded implementations must export an SRFI-18 compatible
-interface for mutexes. Single threaded implementations can use the
-`compat.single-threaded.sld` (`compat.single-threaded.sls` for R6RS)
-implementations.
-
## Instructions Per Implementation
### CHICKEN
-Just run `chicken-install conspire`.
+Just run `chicken-install cuprate`.
### Foment
n-id: svn://svn.linux1394.org/libraw1394/trunk@40 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-13Fix raw1394_start_iso_write() which uses wrong variable.Gravatar aeb 1-1/+1 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@39 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-10Work around compiler warnings for int/ptr casts.Gravatar aeb 6-10/+20 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@38 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-10Added control files for Debian packages.Gravatar aeb 6-8/+106 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@37 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-01Added missing prototypes for iso send functions.Gravatar aeb 1-0/+7 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@36 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-08-08Added raw1394_get_irm_id().Gravatar aeb 7-7/+39 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@35 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-08-06Added support for isochronous sending.Gravatar aeb 3-0/+35 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@34 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-07-05Added raw1394_reset_bus() call.Gravatar aeb 4-0/+23 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@33 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-22- Set library version info in configure.in, use in src/Makefile.am.Gravatar aeb 4-2/+16 - Enable compiler warnings. git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@32 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-15Update libtool version number.Gravatar aeb 2-2/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@31 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-14Added copyright headers.Gravatar aeb 6-0/+54 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@30 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-11Added explicit AC_PROG_INSTALL call.Gravatar aeb 1-0/+1 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@29 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-09Fix size of error field.Gravatar aeb 1-2/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@28 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-02Modified support for 32/64 bit environments, control struct fields have ↵Gravatar aeb 7-43/+28 fixed size now. git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@27 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-05-28Added support for environments with 64 bit kernel and 32 bit userland.Gravatar aeb 8-7/+45 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@26 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-27Fixed missing setting of ext code in raw1394_start_lock()Gravatar aeb 1-0/+1 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@25 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-15Fixed lock transaction to actually return response value.Gravatar aeb 3-5/+11 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@24 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-12Add userdata functions as news.Gravatar aeb 1-0/+4 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@23 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-05Add userdata functions.Gravatar aeb 3-0/+18 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@22 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Bump version number to 0.6.Gravatar aeb 3-5/+6 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@21 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Mention byte order change.Gravatar aeb 1-0/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@20 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Mention SourceForge home.Gravatar aeb 1-1/+5 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@19 53a565d1-3bb7-0310-b661-cf11e63c67ab