CHICKEN SRFI compliance

This page describes CHICKEN 4 only; a more up-to-date description for all CHICKEN versions can be found here: supported-standards.

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.

builtin
the SRFI is provided in the basic CHICKEN system.
library
the SRFI is provided with the basic CHICKEN system, but a (use ...) must be performed in order to access it.
egg-name
the SRFI is provided in a separate egg, which can be downloaded via chicken-install.
NA
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.)

Final SRFIs

SRFI Description Status Notes
0 Feature-based conditional expansion builtin
1 List library library
2 AND-LET* 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
13 String library library
14 Character-set library library
16 Syntax for procedures of variable arity builtin
17 Generalized set! builtin
18 Multithreading support library
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
29 Localization srfi-29
30 Nested multi-line comments builtin
31 Special form for recursive evaluation builtin 2
34 Exception handling for programs srfi-34 4
35 Conditions NA
36 I/O Conditions NA
37 args-fold: a program argument processor srfi-37
38 External representation for data srfi-38
39 Parameter objects builtin
40 A library of streams (deprecated) srfi-40
41 Streams srfi-41
42 Eager comprehensions srfi-42, srfi-4-comprehensions
43 Vector library vector-lib, dyn-vector
44 Collections NA
45 Expressing iterative lazy algorithms srfi-45
46 Basic syntax-rules Extensions NA
47 Array srfi-47, array-lib
48 Intermediate Format Strings format, format-modular 5
49 Indentation-sensitive syntax NA
51 Handling rest list NA
54 Formatting NA
55 require-extension builtin
57 Records NA
58 Array notation array-lib 6
59 Vicinity NA
60 Integers as bits srfi-60
61 A more general cond clause extended-cond
62 S-expression comments builtin 2
63 Homogeneous and heterogeneous arrays array-lib
64 A Scheme API for test suites NA
66 Octet vectors srfi-66
67 Compare procedures NA
69 Basic hash tables builtin
70 Numbers NA
71 let syntax for multiple values NA
72 Simple hygienic macros simple-macros
74 Octet-addressed binary blocks NA
78 Lightweight testing check
86 MU and NU NA
87 => in case clauses extended-cond
88 Keyword objects builtin 7
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

Notes

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.

Withdrawn SRFIs

SRFI Description Status Notes
12 Exception handling builtin 1
85 Recursive equivalence predicates srfi-85

Notes

1. CHICKEN implements the now-withdrawn SRFI-12 for error handling. Users can choose to install the srfi-34 egg instead.