CHICKEN SRFI compliance
What follows is a listing of the current SRFIs, along with the status of the SRFI in CHICKEN. Notes appear after the table.
The following statuses are defined.
- the SRFI is provided in the basic CHICKEN system.
- the SRFI is provided with the basic CHICKEN system, but a (use ...) must be performed in order to access it.
- the SRFI is provided in a separate egg, which can be downloaded via chicken-install.
- the SRFI is not presently available for CHICKEN. (This doesn't necessarily mean that the SRFI can't be implemented, only that it hasn't been so far.)
|0||Feature-based conditional expansion||builtin|
|4||Homogeneous numeric vector datatypes||library, srfi-4-utils|
|5||let form with signatures and rest arguments||NA|
|6||Basic string ports||builtin|
|7||Feature-based program configuration language||NA|
|8||receive: binding to multiple values||builtin|
|9||Defining record types||builtin|
|10||Sharp-comma external form||builtin|
|11||Syntax for receiving multiple values||builtin||2|
|16||Syntax for procedures of variable arity||builtin|
|19||Time data types and procedures||date-literals, srfi-19|
|21||Real-time multithreading support||NA|
|22||Running Scheme scripts on unix||NA||3|
|23||Error reporting mechanism||builtin|
|25||Multi-dimensional array primitives||srfi-25, array-lib|
|26||Specializing parameters without currying||builtin||2|
|27||Sources of random bits||srfi-27, gsl-srfi-27|
|28||Basic format strings||builtin||2|
|30||Nested multi-line comments||builtin|
|31||Special form for recursive evaluation||builtin||2|
|34||Exception handling for programs||srfi-34||4|
|37||args-fold: a program argument processor||srfi-37|
|38||External representation for data||srfi-38|
|40||A library of streams (deprecated)||srfi-40|
|42||Eager comprehensions||srfi-42, srfi-4-comprehensions|
|43||Vector library||vector-lib, dyn-vector|
|45||Expressing iterative lazy algorithms||srfi-45|
|46||Basic syntax-rules Extensions||NA|
|48||Intermediate Format Strings||format, format-modular||5|
|51||Handling rest list||NA|
|60||Integers as bits||srfi-60|
|61||A more general cond clause||extended-cond|
|63||Homogeneous and heterogeneous arrays||array-lib|
|64||A Scheme API for test suites||NA|
|69||Basic hash tables||builtin|
|71||let syntax for multiple values||NA|
|72||Simple hygienic macros||simple-macros|
|74||Octet-addressed binary blocks||NA|
|86||MU and NU||NA|
|87||=> in case clauses||extended-cond|
|89||Optional and named parameters||srfi-89|
|90||Extensible hash table constructor||builtin||8|
|94||Type-restricted numerical functions||NA|
|95||Sorting and merging||srfi-95|
1. Note deleted.
2. Only documented under eval-when.
3. CHICKEN supports a shebang line, but executable names don't comply with SRFI-22.
4. CHICKEN also implements the now-withdrawn SRFI-12 for error handling.
5. SRFI 48 is supported except for ~W (write circular) by both the format and format-modular eggs.
6. SRFI 58 is supported by the array-lib egg except for the #<dimensions>... form (to be released).
7. SRFI 88 is builtin except that keywords are symbols.
8. SRFI 90 is builtin except that weak-keys and weak-values are ignored. The SRFI states that these are purely advisory parameters, and that implementations may ignore them.
|85||Recursive equivalence predicates||srfi-85|
1. CHICKEN implements the now-withdrawn SRFI-12 for error handling. Users can choose to install the srfi-34 egg instead.