Hey all,
There's lots of facilities for checking arguments / types / etc. already
in CHICKEN; however, many of these are non-portable. They may include
er-macro-transformers, assume some implementation-specific type syntax
(e.g. typed-records), or otherwise just is difficult to make portable
across R7RS implementations.
SRFI-253 was finalized a couple days ago, and it standardizes many of
these things. This isn't necessarily new ground for anyone in the
community, but I want to adopt it because the transducers and
generalized-arrays eggs are pretty much only "not portable" across
implementations because they rely on the wonderful check-errors egg
rather than some cross-Scheme equivalent. SRFI-253 can more or less
replace most of my usage of the check-errors egg in a more portable way,
when I want or need something more portable over check-errors which very
likely has more "features."
Nevertheless, many of you might find this useful as well, so I packaged
SRFI-253. There were some implementation oddities in the sample
implementation, but I think I covered those over pretty well. See the
SRFI mailing list archives if you want context for that conversation.
Results of test-new-egg:
$ test-new-egg srfi-253
https://gitlab.com/ThatGeoGuy/srfi-253/-/raw/main/srfi-253.release-info
... LOTS OF TEXT ...
==== srfi-253 (1 of 1) ====
Fetching........................................[ ok ] 0s
Reading .egg....................................[ ok ] 0s
Checking dependencies...........................[ ok ] 0s
Checking category...............................[ ok ] 0s
Checking license................................[ ok ] 0s
Checking author.................................[ ok ] 0s
Installing......................................[ ok ] 2m3s
Checking version................................[ -- ]
Testing.........................................[ ok ] 11s
Checking documentation..........................[ ok ] 1s
Removing /tmp/temp194e.197835
Egg looks ok!
My repo also has CI / tests (and the tests pass), and for the most part
looks good with chicken-lint. Docs are located at
<https://wiki.call-cc.org/eggref/5/srfi-253>.
Hope it's useful, and cheers!
--
Jeremy Steward