Draft charter for working group 2: the "large" language working group

For review purposes only. Send feedback to steering-committee-feedback (at) scheme-reports.org

Purpose

The purpose of working group 2 is to develop specifications, documents, and proofs of implementability for a "large" language in the Scheme family. This large language should address the practical needs of mainstream software development.

Requirements and Goals

The language developed by working group 2 must include support for macros and modules/libraries.

When deciding which features to include in the large language, working group 2 should consider all features provided by R6RS Scheme, and all criticisms of those features.

Working group 2 may also consider whether it is practical to add new features to support networking, threads, internationalization, foreign-function interfaces, et cetera. Working group 2 is encouraged to propose new working groups for any new features that it considers desirable but cannot pursue without risking the timeliness of its primary mission.

Coordination with Working Group 1

The programming languages developed by working groups 1 and 2 must be consistent, and the programming language developed by working group 1 should be a proper subset of the language developed by working group 2.

So far as is practical, this relationship between the small and large languages should be achieved by having the documents that describe the large language refer to the documents that describe the small language instead of duplicating those documents or portions of them. That in turn will require coordination between working groups 1 and 2.

Membership

Requirements for membership, and the decision process for membership, should be described here.

Working groups 1 and 2 should have some members in common.

Publicity

All technical discussions must be made public. This requirement can be satisfied by timely posting of email and the technical minutes of meetings at the scheme-reports.org site, and by maintaining a public mailing list devoted to discussion of the large language being designed by working group 2.

Responsibilities of the publicity officer should be listed here.

Deliverable Artifacts

Working group 2 must develop written specifications for the large language. These specifications must be accompanied by all formal comments and objections that have been raised by members of the working group or by the Scheme community at large. The specifications should also be accompanied by a written rationale, executable reference implementations, and other artifacts that would assist with constructive debate or increase acceptance of the large language.

Timeline

Working group 2 is expected to produce

  1. a public status reports at 6 months and at 12 months
  2. a public draft after 18 months, to be updated every 3 months thereafter until final approval
  3. a draft suitable for final approval after 24 months

If the working group anticipates any difficulty meeting these milestones, its chair should inform the Steering Committee in advance of the milestone.

Internal Decision Making Process

The chair of the working group is required to develop an internal process that allows the working group to achieve its objectives.

The working group is strongly encouraged to seek consensus on all decisions. Where consensus cannot be achieved, the working group may proceed on the basis of a majority or supermajority vote, but the results of such votes should be preserved within the public record, along with the reasons for dissent.

External Approval Process

The specifications of the large language developed by working group 2 will be submitted to the Scheme community for approval. The Scheme Language Steering Committee will work with working group 2 to seek maximum possible timely consensus for its specifications.

If the Steering Committee concludes that specifications of the large language are not supported by at least 75% of a representative electorate, then those specifications will not be approved. If the Steering Committee concludes that the specifications of the large language are supported by at least 75% of a representative electorate, but believes that support could be increased by revising the specifications in response to specific objections, then approval of the specifications may be deferred until the Steering Committee can determine whether revised specifications would achieve a greater degree of support.

Officers

The following officers of working group 2 must be approved by the Steering Committee:

  1. chair — responsible for the working group's overall process and progress
  2. publicity officer — responsible for making technical discussions public and for soliciting formal comments
  3. project editor — responsible for drafting and editing written documents
  4. delegate(s) — responsible for coordinating with working group 1

The Steering Committee may select the chair, and may replace any of the above officers.

Name of the Large Language

The names of the languages to be developed by working groups 1 and 2 have not yet been determined. The Steering Committee will consider names suggested by the working groups.