Skip to content

Adopting changes to the TLA+ language and standard modules #21

@muenchnerkindl

Description

@muenchnerkindl

Proposing modifications to the TLA+ language

The TLA+ specification language is documented in Part IV of Specifying Systems, together with some extensions, originally introduced as TLA+2.

The TLA+ Foundation is an independent, non-profit organization that fosters adoption of TLA+. In particular, the Foundation's Specification Language Committee (SLC) is in charge of overseeing evolutions of TLA+.

The purpose of this RFC is to describe the process for how proposals for modifications of TLA+ should be formulated, as well as the process for their adoption. It follows the spirit of the document The Future of TLA+.

The scope of the document includes proposals for changes to the TLA+ language and its standard modules, not changes to the functionality or interface of individual tools or changes concerning additional libraries, such as the Community Modules.

Presenting a proposal

A proposed change to the TLA+ language should be publicly presented as an RFC on the TLA+ GitHub site. Changes may include adding or removing language constructs, modifications of existing constructs or changes to the TLA+ Standard Modules.

The proposal must include

  • a summary with a short description of the proposed change,
  • a rationale for why the change is considered beneficial, together with typical use cases,
  • a discussion of its costs in terms of breaking existing specifications or complicating the language,
  • an unambiguous description of the proposed changes, including any modifications of the grammar and/or operator definitions,
  • a discussion of changes required to the TLA+ Tools, including SANY, TLC, TLAPS or Apalache, and suggestions for how to implement them.

The TLA+ community will discuss the proposed change based on the RFC, and it should be presented at the monthly Community Meetings. The RFC must have a clearly identified champion who serves as the liaison with the SLC.

The role of the Specification Language Committee

The SLC will discuss the merits of proposed changes, following the guidelines laid out in The Future of TLA+, and taking into account the public discussions on GitHub and at the Community Meetings, in which its members may participate. It may contact the champion of the proposal for clarifications and additional details, including a proof-of-concept implementation in a relevant subset of the tools when appropriate.

If a proposed change is considered beneficial and ready for adoption, it will be made official after a formal vote of the SLC members and will be marked as adopted on the TLA+ GitHub site. If the proposal is rejected, the decision will be published on the the same site, together with reasons for rejection.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions