I've just published draft #4 of SRFI 209. It was submitted by Wolfgang Corcoran-Mathe, co-author of the SRFI.
John and Wolfgang have asked me to announce last call for this SRFI. They believe that it is ready for finalization, but would like to give reviewers one last chance to submit corrections and feedback before we finalize it.
In particular, I appeal to anyone reading this to try the sample implementation, run the tests, and send feedback about your results.
If you're interested in this SRFI, please give your feedback via the SRFI 209 mailing list before 2020-11-23. After that, assuming that no major revisions are required, we will declare it final. It is important that we get your feedback before 2020-11-23. If that deadline is too soon for you, but you would like to contribute, please let me know so that I can extend the last-call period.
Here are Wolfgang's comments on the draft:
These commits include John's recent additions of the R6RS enums forms, as well as the implementations of same.
Here is the commit summary:
- Use eq? in the enum comparator type test and equality predicate.
- Refactor enum=?.
- Use exact-integer? in utility predicate.
- Tests: Fix typos and import (scheme write).
- Use mappings instead of hashmaps, per performance tests.
- Add test suite for chibi-scheme.
- Tidy and improve error handling.
- enum-empty-set constructor, functional mutators
- Add enum-empty-set.
- Add non-destructive mutator procedures.
- Added syntax, enum-set-complement, functional logical ops
- Enum-set constructors take an enum-type argument.
- Update enum-set-projection.
- Add new enum-set constructors.
- Add non-linear-update set-theoretical operations.
- Use same helper proc. for all set-theoretical operations.
- make-enum-type: Argument type-check.
- Export enum-set-type.
- Emend enum-set-constructor.
- Add enum-set-member?.
- enum-set-contains?: Remove unneeded equality check.
- Add enum-set-subset? as an alias of enum-set<=?.
- Add enum-set-complement(!).
- Update tests.
- Add enum-set-indexer.
- Add define-enum.
- Add define-enumeration.
- define-enum: Fix typo.
- Tests for new procedures and syntax.
- Remove duplicate import.
- Comment cleanup.
- Reformat export list.
- Remove trailing whitespace.
- Fix HTML errors, remove copypasta R6RS HTML.
- Publish fourth draft.
Here's the diff: