Charter

From SchemePunks

Jump to: navigation, search

[edit] Charter for SchemePunks

  • To support the development of new standards for Scheme that fork from R4RS and R5RS in parallel to the R6RS.

[edit] Charter For A New Scheme Standardization Process

  • To learn from the faults of the R2-5RS and R6RS processes.
  • To develop a process that leads to a new Scheme standard that leaves many less people unhappy, one that is:
    • Technically Pure and Beautiful
    • Practically Portable and Useful
  • To agree upon a new name to clearly distinguish it from The Language Formerly Known As Scheme (AKA R6RtlfkaS AKA R6RS).
  • To develop a short charter of the goals of the new standard.

[edit] Charter For A New Scheme Standard

  • To refactor the standard so that the core is smaller.
  • Standardized Portability: portable programming for library and application developers who want to move more easily beyond Scheme's solid established niches.
  • To maintain, to the best extent possible, backwards compatibility, or at least, permit backwards compatibility for those implementations that wish to support it, with R5RS.
  • Work with the SRFI process: include (as makes sense) required standard libraries that are existing SRFIs that are widely accepted.
  • Be especially favorable towards making established libraries required if they have a reference implementation in portable core Scheme.
  • Multiple library solutions to the same problem are OK with such reference implementations.
  • "Best" is the enemy of "good enough" for libraries, while only the best will do for the core.
  • For new or substantially different libraries added in this standard, use the SRFI process completely, not withdrawing after discussion.
  • Ruthless parsimony in adding new syntax to the core, and severe when including it in libraries (excepting established SRFIs).
  • Separate the Standard into an almost never changing Core language which is entirely required and contains no implementable features (features that can be implemented with other parts of the Core), and an entirely optional Library Standard, which contains only the best and most widely accepted libraries and parts of R5RS that can be implemented from the Core.