Welcome to the WG2 for the development of the R7RS Large programming language!
The R7RS Large will be the next iteration of the Scheme programming language, designed to meet the needs of practical, mainstream software development.
Anyone can help! If you write Scheme code, please give us feedback on issues and potential features. We frequently discuss things in #scheme on libera.chat, which is where we also have meetings.
To learn about how WG2 works, you can read the Process document. You can join the discussion by commenting on our issue tracker. You can see the agendas and minutes of our meetings here. If you're interested in joining, add your name to WG2 Members and join the mailing list to learn about and coordinate meeting times. (People without Google accounts can join by sending an email to scheme-reports-wg2+subscribe[AT]googlegroups.com.)
You may care to peruse the FAQ.
Contents
The specification for R7RS Large will be delivered in three volumes:
Foundations
Detail the core language semantics which implementations have to support directly. Target completion date 2028. (Roadmap) (Draft Table of Contents) (Outstanding issues)
The development of the Foundations is split up into Fascicles, which focus on specific areas like the macro system, primitives, and record types. The Fascicles will eventually be combined into a single document, which will be the Foundations.
The fascicles are:
- The Macrological Fascicle: The macro system. Definition of macro expansion, identifiers, hygiene, and specification of
syntax-rules,syntax-case, and operations on identifiers. - The Procedure Fascicle: Basic syntax for procedural programming. Definitions of
lambda,define, etc. (Outstanding issues) - The Valued Fascicle: Basic data types. Definitions of pairs, vectors, strings, bitvectors, etc. (Outstanding issues) (Unofficial DocBook Conversion).
- The Erroneous Fascicle: The behavior of Scheme when an error is encountered. Defines the condition system and the exceptions raised on bad applications. (Outstanding issues)
- The Bibliothecarial Fascicle: The library system. The R7RS's
define-library, the R6RS'slibrary, and the semantics of library composition. (Outstanding issues) - The Flow-Controlling Fascicle: Continuations. Definition of
call/cc, delimited continuations, continuation marks, etc. (Outstanding issues) - The Record-Winning Fascicle: The record-type system. Ways to define and compose data types disjoint from each other and from other Scheme objects. (Outstanding issues).
Batteries
Provides a reasonably comprehensive standard library of the kinds of things Lisp programmers are used to having available in their favourite dialects/implementations. Currently no target for completion.
Environments
Provides operating system interfaces. Currently only vague plans.
Committees
Committees are a subgroup of Working Group 2 that is dedicated to a specific task.
- Committee-P
- Design and toolchain for creating the Report in various formats, like PDF and HTML.
Previous Scheme reports
R7RS small (2013)
Non-normative report text as PDF with errata corrected
Archive of the wiki and issue tracker used by the committee
R6RS (2007)
Report text in PDF and HTML and download of TeX source at r6rs.org
Historical information on the standardization process, including archive of formal comments
R5RS (1998)
Report text in PostScript, DVI, PDF, HTML, and CHM
R4RS (1991)
R3RS (1986)
Report text as LaTeX source (tarball) and in HTML
RRRS (R2RS, 1985)
Report text as scanned PDF and in AsciiDoc/rendered as HTML
RRS (R1RS, 1978)
Report text as scanned PostScript and PDF
Report on Scheme (1975)
-
FAQ about R7RS Large
-
WG2