My favorite dialect of Lisp, Scheme, first appeared in 1975. The Revised Reports on Scheme (RnRS) are the official standardsfootnote for the language. In 1998, however, a second, parallel standards effort began: SRFI, the Scheme Requests for Implementation.
The purpose of the Scheme Requests for Implementation (SRFI) process is to help Scheme users write portable, useful code. We write concrete, detailed proposals and sample implementations for libraries and other additions to the Scheme language, and we encourage Scheme implementors to adopt them.
As of this writing, 165 Scheme standards documents have been produced by the volunteers who contribute to SRFI. Many of those documents have influenced, or have been incorporated into, the RnRS standards.
I took over as SRFI editor in April, 2015. In 2018, I realized that SRFI had been running for twenty years, so it was a natural point to write a history of the process. I submitted a paper about it (PDF) to the Scheme Workshop 2018 and gave a talk at the workshop, too (YouTube, slides). It was great fun to summarize the work that so many people have done over the years to help the language evolve, and to talk about my modest plans for improving the SRFI process.
This chart shows how the number of new SRFIs has grown over the years:
If you're a Scheme user or implementer, please join us and help prepare Scheme for the next twenty years!
Below are all of the RnRS and IEEE standards documents for Scheme. The SRFI documents are all available at srfi.schemers.org.
- 1975: R0RS (PDF)
- 1978: R1RS (PDF)
- 1985: R2RS (PDF)
- 1986: R3RS (PDF)
- 1990: IEEE 1178-1990 (Available for purchase through IEEE.)
IEEE Standard for the Scheme Programming Language. Reaffirmed 2008.
- 1991: R4RS (PDF)
- 1998: R5RS (PDF)
- 2007: R6RS
- 2013: R7RS Small (PDF)
- in progress (as of this writing): R7RS Large