1 | [[tags:standards srfi rnrs]] |
---|
2 | |
---|
3 | [[toc:]] |
---|
4 | |
---|
5 | == Supported standards |
---|
6 | |
---|
7 | This page attempts to list all standards CHICKEN supports; reports, |
---|
8 | SRFIs etc. If any CHICKEN-specific documentation about extensions to |
---|
9 | or deviations from this standard is available, the text links to it. |
---|
10 | |
---|
11 | To see this information in cross-referenced table format, see: [[http://wiki.call-cc.org/srfi-support|Chicken SRFI Support]]. |
---|
12 | |
---|
13 | === CHICKEN core |
---|
14 | |
---|
15 | ==== CHICKEN 5 |
---|
16 | CHICKEN 5 supports the following extensions: |
---|
17 | |
---|
18 | ===== Scheme reports/documents |
---|
19 | |
---|
20 | * R5RS --- [[/manual/Deviations from the standard|deviations]], [[/manual/Extensions to the standard|extensions]] |
---|
21 | * [[/manual/Extensions to the standard#extended-dsssl-style-lambda-lists|Extended DSSSL style lambda lists]] |
---|
22 | |
---|
23 | ===== SRFIs |
---|
24 | |
---|
25 | * [[/manual/Extensions to the standard#cond-expand|SRFI-0]] Feature-based conditional expansion construct |
---|
26 | * [[/manual/Module (chicken base)#and-let|SRFI-2]] AND-LET*: an AND with local bindings, a guarded LET* special form |
---|
27 | * [[/manual/Module srfi-4|SRFI-4]] Homogeneous numeric vector datatypes |
---|
28 | * [[/manual/Module (chicken base)#string-ports|SRFI-6]] Basic String Ports (also see [[/manual/Unit ports|Unit ports]] for a generalisation) |
---|
29 | * [[/manual/Module (chicken base)#receive|SRFI-8]] receive: Binding to multiple values |
---|
30 | * [[/manual/Module (chicken base)#define-record-type|SRFI-9]] Defining Record Types |
---|
31 | * [[/manual/Extensions to the standard#external-representation|SRFI-10]] Sharp-Comma External Form |
---|
32 | * [[/manual/Module (chicken base)#let-values|SRFI-11]] Syntax for receiving multiple values |
---|
33 | * [[/manual/Module (chicken condition)#srfi-12-specification|SRFI-12]] Exception Handling |
---|
34 | * [[/manual/Module (chicken base)#fluid-let|SRFI-15]] Syntax for dynamic scoping |
---|
35 | * [[/manual/Module (chicken base)#case-lambda|SRFI-16]] Syntax for procedures of variable arity |
---|
36 | * [[/manual/Module (chicken base)#srfi-17-setters|SRFI-17]] Generalized set! (also see [[/manual/Extensions to the standard|heading 4.1.6 in "Extensions to the standard"]]) |
---|
37 | * [[/manual/Module (chicken base)#error|SRFI-23]] Error reporting mechanism |
---|
38 | * [[/manual/Module (chicken base)#cut|SRFI-26]] Notation for Specializing Parameters without Currying |
---|
39 | * [[/manual/Module (chicken format)#format|SRFI-28]] Basic Format Strings |
---|
40 | * [[/manual/Extensions to the standard#multiline-block-comment|SRFI-30]] Nested Multi-line Comments |
---|
41 | * [[/manual/Module (chicken base)#rec|SRFI-31]] A special form for recursive evaluation |
---|
42 | * [[/manual/Module (chicken base)#parameters|SRFI-39]] Parameter objects (also see [[/manual/Non-standard macros and special forms#parameterize|the parameterize macro]]) |
---|
43 | * [[/manual/Module scheme#syntax-definitions|SRFI-46]] Basic Syntax-rules Extensions (chicken 4.6.5 and newer) |
---|
44 | * [[/manual/Module (chicken base)#require-extension|SRFI-55]] require-extension |
---|
45 | * [[/manual/Module scheme#conditionals|SRFI-61]] A more general cond clause (see heading 2.2.1) |
---|
46 | * [[/manual/Extensions to the standard#expression-comment|SRFI-62]] S-expression comments |
---|
47 | * [[/manual/Module (chicken keyword)|SRFI-88]] Keyword Objects |
---|
48 | * SRFI-98 --- [[/manual/Module (chicken process-context)#get-environment-variable|get-environment-variable]], [[/manual/Module (chicken process-context)#get-environment-variables|get-environment-variables]] |
---|
49 | |
---|
50 | |
---|
51 | ==== CHICKEN 3 and 4 |
---|
52 | |
---|
53 | The following list applies to both CHICKEN 3 and 4: |
---|
54 | |
---|
55 | ===== Scheme reports/documents |
---|
56 | |
---|
57 | * R5RS --- [[/manual/Deviations from the standard|deviations]], [[/manual/Extensions to the standard|extensions]] |
---|
58 | * [[/manual/Extensions to the standard#extended-dsssl-style-lambda-lists|Extended DSSSL style lambda lists]] |
---|
59 | |
---|
60 | ===== SRFIs |
---|
61 | |
---|
62 | * [[/man/3/Non-standard macros and special forms#cond-expand|SRFI-0]] Feature-based conditional expansion construct |
---|
63 | * [[/man/4/Unit srfi-1|SRFI-1]] List Library |
---|
64 | * [[/manual/Non-standard macros and special forms#and-let|SRFI-2]] AND-LET*: an AND with local bindings, a guarded LET* special form |
---|
65 | * [[/manual/Unit srfi-4|SRFI-4]] Homogeneous numeric vector datatypes |
---|
66 | * [[/manual/Unit library#string-ports|SRFI-6]] Basic String Ports (also see [[/manual/Unit ports|Unit ports]] for a generalisation) |
---|
67 | * [[/manual/Non-standard macros and special forms#receive|SRFI-8]] receive: Binding to multiple values |
---|
68 | * [[/man/3/Non-standard macros and special forms#record-structures|SRFI-9]] Defining Record Types |
---|
69 | * [[/manual/Unit library#reader-extensions|SRFI-10]] Sharp-Comma External Form |
---|
70 | * [[/manual/Non-standard macros and special forms#let-values|SRFI-11]] Syntax for receiving multiple values |
---|
71 | * [[/manual/Exceptions|SRFI-12]] Exception Handling |
---|
72 | * [[/manual/Unit srfi-13|SRFI-13]] String Library |
---|
73 | * [[/manual/Unit srfi-14|SRFI-14]] Character-Set Library |
---|
74 | * [[/manual/Non-standard macros and special forms#fluid-let|SRFI-15]] Syntax for dynamic scoping |
---|
75 | * [[/manual/Non-standard macros and special forms#case-lambda|SRFI-16]] Syntax for procedures of variable arity |
---|
76 | * [[/manual/Unit library#setters|SRFI-17]] Generalized set! (also see [[/manual/Extensions to the standard|heading 4.1.6 in "Extensions to the standard"]]) |
---|
77 | * [[/manual/Unit srfi-18|SRFI-18]] Multithreading support |
---|
78 | * [[/manual/Unit library#error|SRFI-23]] Error reporting mechanism |
---|
79 | * [[/manual/Non-standard macros and special forms#cut|SRFI-26]] Notation for Specializing Parameters without Currying |
---|
80 | * [[/manual/Unit extras#format|SRFI-28]] Basic Format Strings |
---|
81 | * [[/manual/Non-standard read syntax#multiline-block-comment|SRFI-30]] Nested Multi-line Comments |
---|
82 | * [[/manual/Non-standard macros and special forms#rec|SRFI-31]] A special form for recursive evaluation |
---|
83 | * [[/manual/Parameters|SRFI-39]] Parameter objects (also see [[/manual/Non-standard macros and special forms#parameterize|the parameterize macro]]) |
---|
84 | * [[/manual/Macros|SRFI-46]] Basic Syntax-rules Extensions (chicken 4.6.5 and newer) |
---|
85 | * [[/manual/Non-standard macros and special forms#require-extension|SRFI-55]] require-extension |
---|
86 | * [[/manual/Extensions to the standard|SRFI-61]] A more general cond clause (see heading 4.2.1) |
---|
87 | * [[/manual/Non-standard read syntax#expression-comment|SRFI-62]] S-expression comments |
---|
88 | * [[/manual/Unit srfi-69|SRFI-69]] Basic hash tables |
---|
89 | * [[/manual/Unit library#keywords|SRFI-88]] Keyword Objects |
---|
90 | * [[/manual/Unit srfi-69|SRFI-90]] Extensible hash table constructor |
---|
91 | * SRFI-98 --- [[/manual/Unit library#get-environment-variable|get-environment-variable]], [[/manual/Unit posix#environment-access|get-environment-variables]] |
---|
92 | |
---|
93 | === Eggs |
---|
94 | |
---|
95 | If you create or port an egg, please add it below: |
---|
96 | |
---|
97 | ==== CHICKEN 5 |
---|
98 | |
---|
99 | ===== Scheme reports/documents |
---|
100 | |
---|
101 | * [[/eggref/5/r7rs|R7RS]] R7RS (small) support |
---|
102 | |
---|
103 | ===== SRFIs |
---|
104 | |
---|
105 | * [[/eggref/5/srfi-1|SRFI-1]] List Library |
---|
106 | * [[/eggref/5/srfi-13|SRFI-13]] String Library |
---|
107 | * [[/eggref/5/srfi-14|SRFI-14]] Character-Set Library |
---|
108 | * [[/eggref/5/srfi-18|SRFI-18]] Multithreading support |
---|
109 | * [[/eggref/5/srfi-19|SRFI-19]] Time Data Types and Procedures |
---|
110 | * [[/eggref/5/srfi-25|SRFI-25]] Multi-dimensional Array Primitives |
---|
111 | * [[/eggref/5/srfi-29|SRFI-29]] Localization |
---|
112 | * [[/eggref/5/srfi-34|SRFI-34]] Exception Handling for Programs |
---|
113 | * [[/eggref/5/srfi-35|SRFI-35]] Conditions |
---|
114 | * [[/eggref/5/srfi-37|SRFI-37]] args-fold: a program argument processor |
---|
115 | * [[/eggref/5/srfi-38|SRFI-38]] External Representation for Data With Shared Structure |
---|
116 | * [[/eggref/5/srfi-41|SRFI-41]] Streams |
---|
117 | * [[/eggref/5/srfi-42|SRFI-42]] Eager Comprehensions |
---|
118 | * [[/eggref/5/srfi-45|SRFI-45]] Primitives for Expressing Iterative Lazy Algorithms |
---|
119 | * [[/eggref/5/srfi-60|SRFI-60]] Integers as Bits |
---|
120 | * [[/eggref/5/srfi-63|SRFI-63]] Homogeneous and Heterogeneous Arrays |
---|
121 | * [[/eggref/5/srfi-64|SRFI-64]] A Scheme API for test suites |
---|
122 | * [[/eggref/5/srfi-69|SRFI-69]] Basic hash tables |
---|
123 | * [[/eggref/5/srfi-71|SRFI-71]] Extended LET-syntax for multiple values |
---|
124 | * [[/eggref/5/srfi-69|SRFI-90]] Extensible hash table constructor |
---|
125 | * [[/eggref/5/srfi-99|SRFI-99]] ERR5RS Records |
---|
126 | * [[/eggref/5/srfi-105|SRFI-105]] Curly-infix-expressions |
---|
127 | * [[/eggref/5/srfi-111|SRFI-111]] Boxes |
---|
128 | * [[/eggref/5/srfi-113|SRFI-113]] Sets and bags |
---|
129 | * [[/eggref/5/srfi-116|SRFI-116]] Immutable List Library |
---|
130 | * [[/eggref/5/srfi-117|SRFI-117]] Mutable Queues |
---|
131 | * [[/eggref/5/srfi-121|SRFI-121]] Generators |
---|
132 | * [[/eggref/5/srfi-123|SRFI-123]] Generic accessor and modifier operators |
---|
133 | * [[/eggref/5/srfi-127/|SRFI-127]] Lazy Sequences |
---|
134 | * [[/eggref/5/srfi-128/|SRFI-128]] Comparators (reduced) |
---|
135 | * [[/eggref/5/srfi-130/|SRFI-130]] Cursor-based string library |
---|
136 | * [[/eggref/5/srfi-133|SRFI-133]] Vector Library (R7RS-compatible) |
---|
137 | * [[/eggref/5/srfi-145|SRFI-145]] Assumptions |
---|
138 | * [[/eggref/5/srfi-151|SRFI-151]] Bitwise operations |
---|
139 | * [[/eggref/5/srfi-152|SRFI-152]] String Library (reduced) |
---|
140 | * [[/eggref/5/srfi-158|SRFI-158]] Generators and Accumulators |
---|
141 | * [[/eggref/5/srfi-171|SRFI-171]] Transducers |
---|
142 | * [[/eggref/5/srfi-173|SRFI-173]] Hooks |
---|
143 | * [[/eggref/5/srfi-193|SRFI-193]] Command line |
---|
144 | |
---|
145 | |
---|
146 | ==== CHICKEN 4 |
---|
147 | |
---|
148 | ===== Scheme reports/documents |
---|
149 | |
---|
150 | * [[/eggref/5/r7rs|R7RS]] R7RS (small) support |
---|
151 | |
---|
152 | ===== SRFIs |
---|
153 | |
---|
154 | * [[/eggref/4/srfi-19|SRFI-19]] Time Data Types and Procedures |
---|
155 | * [[/eggref/4/srfi-25|SRFI-25]] Multi-dimensional Array Primitives |
---|
156 | * [[/eggref/4/srfi-27|SRFI-27]] Sources of Random Bits |
---|
157 | * [[/eggref/4/srfi-29|SRFI-29]] Localization |
---|
158 | * [[/eggref/4/srfi-34|SRFI-34]] Exception Handling for Programs |
---|
159 | * [[/eggref/4/srfi-37|SRFI-37]] args-fold: a program argument processor |
---|
160 | * [[/eggref/4/srfi-38|SRFI-38]] External Representation for Data With Shared Structure |
---|
161 | * [[/eggref/4/srfi-40|SRFI-40]] A Library of Streams |
---|
162 | * [[/eggref/4/srfi-41|SRFI-41]] Streams |
---|
163 | * [[/eggref/4/srfi-42|SRFI-42]] Eager Comprehensions |
---|
164 | * [[/eggref/4/vector-lib|SRFI-43]] Vector Library |
---|
165 | * [[/eggref/4/srfi-45|SRFI-45]] Primitives for expressing iterative lazy algorithms |
---|
166 | * [[/eggref/4/srfi-60|SRFI-60]] Integers as Bits |
---|
167 | * [[/eggref/4/srfi-63|SRFI-63]] Homogeneous and Heterogeneous Arrays |
---|
168 | * [[/eggref/4/srfi-71|SRFI-71]] Extended LET-syntax for multiple values |
---|
169 | * [[/eggref/4/srfi-78|SRFI-78]] Lightweight Testing |
---|
170 | * [[/eggref/4/srfi-95|SRFI-95]] Sorting and Merging |
---|
171 | * [[/eggref/4/srfi-99|SRFI-99]] ERR5RS Records |
---|
172 | * [[/eggref/4/srfi-101|SRFI-101]] Purely Functional Random-Access Pairs and Lists |
---|
173 | * [[/eggref/4/srfi-102|SRFI-102]] Procedure Arity Inspection |
---|
174 | * [[/eggref/4/box|SRFI-111]] Boxes |
---|
175 | * [[http://srfi.schemers.org/srfi-113/|SRFI-113]] Sets and bags |
---|
176 | * [[http://srfi.schemers.org/srfi-116/|SRFI-116]] Immutable List Library |
---|
177 | * [[http://srfi.schemers.org/srfi-117/|SRFI-117]] Mutable Queues |
---|
178 | * [[/eggref/4/srfi-121|SRFI-121]] Generators |
---|
179 | * [[http://srfi.schemers.org/srfi-123/|SRFI-123]] Generic accessor and modifier operators |
---|
180 | * [[/eggref/4/srfi-127|SRFI-127]] Lazy Sequences |
---|
181 | * [[http://srfi.schemers.org/srfi-128/|SRFI-128]] Comparators (reduced) |
---|
182 | * [[/eggref/4/srfi-133|SRFI-133]] Vector Library (R7RS-compatible) |
---|
183 | |
---|
184 | ==== CHICKEN 3 |
---|
185 | |
---|
186 | ===== SRFIs |
---|
187 | |
---|
188 | * [[/eggref/3/srfi-19|SRFI-19]] |
---|
189 | * [[/eggref/3/srfi-25|SRFI-25]] |
---|
190 | * [[http://www.call-with-current-continuation.org/eggs/3/srfi-27.html|SRFI-27]] (or an [[/eggref/3/gsl-srfi-27|alternative implementation]]) |
---|
191 | * [[/eggref/3/srfi-29|SRFI-29]] |
---|
192 | * [[/eggref/3/srfi-34|SRFI-34]] |
---|
193 | * [[/eggref/3/srfi-37|SRFI-37]] |
---|
194 | * [[/eggref/3/srfi-38|SRFI-38]] |
---|
195 | * [[/eggref/3/srfi-40|SRFI-40]] |
---|
196 | * [[/eggref/3/srfi-41|SRFI-41]] |
---|
197 | * [[/eggref/3/srfi-42|SRFI-42]] |
---|
198 | * [[http://www.call-with-current-continuation.org/eggs/3/srfi-45.html|SRFI-45]] |
---|
199 | * [[/eggref/3/srfi-47|SRFI-47]] |
---|
200 | * [[/eggref/3/srfi-60|SRFI-60]] |
---|
201 | * [[http://www.call-with-current-continuation.org/eggs/3/srfi-66.html|SRFI-66]] |
---|
202 | * [[/eggref/3/srfi-67|SRFI-67]] |
---|
203 | * [[/eggref/3/srfi-85|SRFI-85]] |
---|
204 | * [[/eggref/3/srfi-89|SRFI-89]] |
---|
205 | * [[/eggref/3/srfi-95|SRFI-95]] |
---|