Supported standards
This page attempts to list all standards CHICKEN supports; reports, SRFIs etc. If any CHICKEN-specific documentation about extensions to or deviations from this standard is available, the text links to it.
To see this information in cross-referenced table format, see: Chicken SRFI Support.
CHICKEN core
CHICKEN 5
CHICKEN 5 supports the following extensions:
Scheme reports/documents
- R5RS --- deviations, extensions
- R7RS with the r7rs egg
- Extended DSSSL style lambda lists
SRFIs
- SRFI-0 Feature-based conditional expansion construct
- SRFI-2 AND-LET*: an AND with local bindings, a guarded LET* special form
- SRFI-4 Homogeneous numeric vector datatypes
- SRFI-6 Basic String Ports (also see Unit ports for a generalisation)
- SRFI-8 receive: Binding to multiple values
- SRFI-9 Defining Record Types
- SRFI-10 Sharp-Comma External Form
- SRFI-11 Syntax for receiving multiple values
- SRFI-12 Exception Handling
- SRFI-15 Syntax for dynamic scoping
- SRFI-16 Syntax for procedures of variable arity
- SRFI-17 Generalized set! (also see heading 4.1.6 in "Extensions to the standard")
- SRFI-23 Error reporting mechanism
- SRFI-26 Notation for Specializing Parameters without Currying
- SRFI-28 Basic Format Strings
- SRFI-30 Nested Multi-line Comments
- SRFI-31 A special form for recursive evaluation
- SRFI-39 Parameter objects (also see the parameterize macro)
- SRFI-46 Basic Syntax-rules Extensions (chicken 4.6.5 and newer)
- SRFI-55 require-extension
- SRFI-61 A more general cond clause (see heading 2.2.1)
- SRFI-62 S-expression comments
- SRFI-87 => in case clauses
- SRFI-88 Keyword Objects
- SRFI-98 --- get-environment-variable, get-environment-variables
- SRFI-219 Define higher-order lambda
CHICKEN 3 and 4
The following list applies to both CHICKEN 3 and 4:
Scheme reports/documents
SRFIs
- SRFI-0 Feature-based conditional expansion construct
- SRFI-1 List Library
- SRFI-2 AND-LET*: an AND with local bindings, a guarded LET* special form
- SRFI-4 Homogeneous numeric vector datatypes
- SRFI-6 Basic String Ports (also see Unit ports for a generalisation)
- SRFI-8 receive: Binding to multiple values
- SRFI-9 Defining Record Types
- SRFI-10 Sharp-Comma External Form
- SRFI-11 Syntax for receiving multiple values
- SRFI-12 Exception Handling
- SRFI-13 String Library
- SRFI-14 Character-Set Library
- SRFI-15 Syntax for dynamic scoping
- SRFI-16 Syntax for procedures of variable arity
- SRFI-17 Generalized set! (also see heading 4.1.6 in "Extensions to the standard")
- SRFI-18 Multithreading support
- SRFI-23 Error reporting mechanism
- SRFI-26 Notation for Specializing Parameters without Currying
- SRFI-28 Basic Format Strings
- SRFI-30 Nested Multi-line Comments
- SRFI-31 A special form for recursive evaluation
- SRFI-39 Parameter objects (also see the parameterize macro)
- SRFI-46 Basic Syntax-rules Extensions (chicken 4.6.5 and newer)
- SRFI-55 require-extension
- SRFI-61 A more general cond clause (see heading 4.2.1)
- SRFI-62 S-expression comments
- SRFI-69 Basic hash tables
- SRFI-88 Keyword Objects
- SRFI-90 Extensible hash table constructor
- SRFI-98 --- get-environment-variable, get-environment-variables
Eggs
If you create or port an egg, please add it below:
CHICKEN 5
Scheme reports/documents
- R7RS R7RS (small) support
SRFIs
- SRFI-1 List Library
- SRFI-5 A compatible let form with signatures and rest arguments
- SRFI-13 String Library
- SRFI-14 Character-Set Library
- SRFI-18 Multithreading support
- SRFI-19 Time Data Types and Procedures
- SRFI-25 Multi-dimensional Array Primitives
- SRFI-27 Sources of Random Bits
- SRFI-29 Localization
- SRFI-34 Exception Handling for Programs
- SRFI-35 Conditions
- SRFI-37 args-fold: a program argument processor
- SRFI-38 External Representation for Data With Shared Structure
- SRFI-41 Streams
- SRFI-42 Eager Comprehensions
- SRFI-45 Primitives for Expressing Iterative Lazy Algorithms
- SRFI-47 Array
- SRFI-48 Intermediate Format Strings
- SRFI-51 Handling rest list
- SRFI-60 Integers as Bits
- SRFI-63 Homogeneous and Heterogeneous Arrays
- SRFI-66 Octet Vectors
- SRFI-64 A Scheme API for test suites
- SRFI-67 Compare Procedures
- SRFI-69 Basic hash tables
- SRFI-71 Extended LET-syntax for multiple values
- SRFI-74 Octet-Addressed Binary Blocks
- SRFI-78 Lightweight testing
- SRFI-90 Extensible hash table constructor
- SRFI-94 Type-Restricted Numerical Functions
- SRFI-95 Sorting and Merging
- SRFI-99 ERR5RS Records
- SRFI-105 Curly-infix-expressions
- SRFI-111 Boxes
- SRFI-113 Sets and bags
- SRFI-115 Scheme Regular Expressions
- SRFI-116 Immutable List Library
- SRFI-117 Mutable Queues
- SRFI-121 Generators
- SRFI-123 Generic accessor and modifier operators
- SRFI-127 Lazy Sequences
- SRFI-128 Comparators (reduced)
- SRFI-130 Cursor-based string library
- SRFI-132 Sort Libraries
- SRFI-133 Vector Library (R7RS-compatible)
- SRFI-134 Immutable deques
- SRFI-137 Minimal Unique Types
- SRFI-141 Integer division
- SRFI-143 Fixnums
- SRFI-145 Assumptions
- SRFI-146 Mappings
- SRFI-151 Bitwise operations
- SRFI-152 String Library (reduced)
- SRFI-158 Generators and Accumulators
- SRFI-160 Homogeneous numeric vector libraries
- SRFI-171 Transducers
- SRFI-173 Hooks
- SRFI-178 Bitvector library
- SRFI-179 Nonempty Intervals and Generalized Arrays
- SRFI-189 Maybe and Either
- SRFI-193 Command line
- SRFI-196 Range Objects
- SRFI-197 Pipeline Operators
- SRFI-203 A Simple Picture Language in the Style of SICP
- SRFI-207 String-notated bytevectors
- SRFI-209 Enums and enum sets
- SRFI-214 Flexvectors
- SRFI-216 SICP Prerequisites
- SRFI-217 Integer Sets
- SRFI-224 Integer Mappings
- SRFI-227 Optional Arguments
CHICKEN 4
Scheme reports/documents
- R7RS R7RS (small) support
SRFIs
- SRFI-19 Time Data Types and Procedures
- SRFI-25 Multi-dimensional Array Primitives
- SRFI-27 Sources of Random Bits
- SRFI-29 Localization
- SRFI-34 Exception Handling for Programs
- SRFI-37 args-fold: a program argument processor
- SRFI-38 External Representation for Data With Shared Structure
- SRFI-40 A Library of Streams
- SRFI-41 Streams
- SRFI-42 Eager Comprehensions
- SRFI-43 Vector Library
- SRFI-45 Primitives for expressing iterative lazy algorithms
- SRFI-60 Integers as Bits
- SRFI-63 Homogeneous and Heterogeneous Arrays
- SRFI-71 Extended LET-syntax for multiple values
- SRFI-78 Lightweight Testing
- SRFI-95 Sorting and Merging
- SRFI-99 ERR5RS Records
- SRFI-101 Purely Functional Random-Access Pairs and Lists
- SRFI-102 Procedure Arity Inspection
- SRFI-111 Boxes
- SRFI-113 Sets and bags
- SRFI-116 Immutable List Library
- SRFI-117 Mutable Queues
- SRFI-121 Generators
- SRFI-123 Generic accessor and modifier operators
- SRFI-127 Lazy Sequences
- SRFI-128 Comparators (reduced)
- SRFI-133 Vector Library (R7RS-compatible)