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.