Created by Registry Administrators and last modified

Scheme Requests for Implementation (SRFIs), as R6RS libraries.

The libraries' names conform to SRFI 97: SRFI Libraries. There is a registry of
available SRFIs and other platform features which works alongside SRFI 0:
Feature-Based Conditional Expansion. The porting done so far is mostly just
taking the reference implementations from http://srfi.schemers.org and wrapping
them in libraries and tweaking the few things needed to make them work in R6RS
libraries and with implementations' functionality. Supporting any R6RS
implementation supporting the *.IMPL.sls convention is easy.

These SRFIs are available:
  (srfi :0 cond-expand)
  (srfi :1 lists)
  (srfi :2 and-let*)
  (srfi :6 basic-string-ports)
  (srfi :8 receive)
  (srfi :9 records)
  (srfi :11 let-values)
  (srfi :13 strings)
  (srfi :14 char-sets)
  (srfi :16 case-lambda)
  (srfi :19 time)
  (srfi :23 error)
  (srfi :25 multi-dimensional-arrays)
  (srfi :26 cut)
  (srfi :27 random-bits)
  (srfi :31 rec)
  (srfi :37 args-fold)
  (srfi :38 with-shared-structure)
  (srfi :39 parameters)
  (srfi :41 streams)
  (srfi :42 eager-comprehensions)
  (srfi :43 vectors)
  (srfi :45 lazy)
  (srfi :48 intermediate-format-strings)
  (srfi :61 cond)
  (srfi :64 testing)
  (srfi :67 compare-procedures)
  (srfi :69 basic-hash-tables)
  (srfi :78 lightweight-testing)
  (srfi :98 os-environment-variables)
  (srfi :99 records)

Other SRFIs are not available because there hasn't been a demand for them or
they're not possible as an R6RS library. If you already have ported SRFIs to
R6RS, we'd love to assimilate them. You can let us know by "asking a question"
at the Scheme Libraries project page:


Currently supported systems are Ikarus, Larceny, and Ypsilon. PLT Scheme is
only semi-supported because it has its own "srfi" directory which conflicts with
having another "srfi" directory; you can symlink/copy files from this collection
into PLT's "srfi" directory.

Submit bug reports at:

Get this branch:
bzr branch lp:~scheme-libraries-team/scheme-libraries/srfi
Members of Scheme Libraries Team can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Scheme Libraries Team
Scheme Libraries

Recent revisions

99. By de <de@otto>

Change %3a6/basic-string-ports.mzscheme.sls to %3a6/basic-string-ports/compat.mzscheme.sls

98. By Derick Eddington

Move utility programs into new utils directory.

97. By Derick Eddington

Merge Aaron W. Hsu's contribution of support for Chez Scheme.

96. By Derick Eddington

Fix bug #725854 by reapplying the patch which was originally applied in revision 66 but was lost because of revision 93.

95. By Derick Eddington

Fix some issues with the new SRFI 45.

94. By Andreas Rottmann

Added SRFI 45 (Primitives for Expressing Iterative Lazy Algorithms)

93. By Derick Eddington

Significant all-around clean-up. Use the reference implementations as unaltered as possible (good for future maintenance) while still adapting them via tricks. Use the framework's facilities consistently. Bug fixes for (srfi :2 and-let*), (srfi :19 time), (srfi :42 eager-comprehensions).

92. By Derick Eddington

Cosmetic changes; no semantic changes. Brackets to parenthesis, booleans upper-case, #!r6rs at top, and shorten license comment. Programmatically accomplished.

91. By Derick Eddington

Fix bug #473945 and two other bugs in the reference implementation of SRFI 99.

90. By Derick Eddington

Fix bug #457739.

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar pack repository format 1 (needs bzr 0.92)
This branch contains Public information 
Everyone can see this information.