source: project/wiki/supported-standards @ 39514

Last change on this file since 39514 was 39514, checked in by Mario Domenech Goulart, 5 months ago

/supported-standards, /srfi-support: add srfi-179

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