SRFI 238 (Codesets) status
Lassi Kortela 13 Dec 2022 10:49 UTC
The following sample implementations now exist for SRFI 238:
- Gambit (covering the 'errno and 'signal codesets using the C FFI).
- Gauche (covering 'errno and 'signal using the Gauche sys-* procedures).
- GNU CLISP [sic] (covering 'errno using the CLISP posix package).
IMHO these demonstrate that the goals of the SRFI are accomplished in a
way that
- is comfortable to use
- permits a wide range of implementation strategies and environments
- imposes a minimum of fuss on the implementer.
The SRFI's approach is somewhat opinionated (trading "safety" and
features for the sake of convenience and portability), so I expect that
not everyone will agree with my arguments. That's fine. One particular
point of contention is whether the symbols should come from a "safe"
enumeration. My opinion is that Scheme permits users who want safe enums
to easily create their own. So the SRFI does not require the use of safe
enums, but does not prohibit it either.
The SRFI is designed to provide a "bare minimum" foundation that can be
provided even by the most featherweight Scheme implementation. More
features can be built on top of this foundation; in particular, this
SRFI does not provide a way for users to define their own codesets.
That's something that Scheme implementation with FFI's should provide,
and that should perhaps be standardized in another SRFI.
The SRFI is not yet 60 days old, but due to its simplicity, I can't
think of anything to improve. Let me know if you'd like to change
something or have the text clarified. (With the proviso that
enumerations and creating new codesets are out of scope intentionally.)