The SRFIs (Scheme Requests For Implementations) is an Internet-based collection of Scheme code designed and provided by Scheme programmers. The SRFI effort is open to anyone, and is described at http://srfi.schemers.org.
The fundamental SRFI is SRFI-0, "Feature-based conditional expansion construct", which allows a program to query the underlying implementation about the available SRFIs (and potentially about other implementation features) at macro expansion time. The design documents for this and other SRFIs are available at the web site shown above.
Larceny 1.0a2 has built-in support for SRFI-0, SRFI-6 and SRFI-11. In addition, a procedural interface to SRFI-0 is provided that allows the programmer to add new SRFI keys and to perform interactive queries about supported SRFIs.
It is useful to be able to add SRFI keys dynamically because many SRFIs are implementable in standard Scheme and can be provided by third parties. For example, the reference implementation for SRFI-7 will work "out of the box" if loaded into Larceny, but programs cannot discover its presence until SRFI-0 has been made aware of its presence.
Larceny 1.0a2 also provides the following nonstandard SRFI keys:
larceny larceny-1.0a2 r5rs r4rsThe previous release of Larceny did not provide any SRFI support.
(srfi0-add-key! key) => unspecified
Add the symbol key to the list of keys recognized by the SRFI-0 implementation.
(srfi0-keys) => list
Return a list of symbols naming the SRFIs that are currently supported.