meetings/2023/LDM-2023-10-11-specification-update.md
In our last meeting, the ECMA committee voted to submit the C# 7.3 standard to ECMA for final approval. This is the first version we've created in the open, on GitHub.Now that we've completed the work on the standard, the draft-v7 branch has been renamed standard-v7.
GitHub redirects any links to the
draft-v7branch to the updated name. There's no need to updated any existing proposals due to that change. The default branch has already changed to thedraft-v8branch. Merging v7 into the v8 branch is in progress.
The committee changed some of the nomenclature used in the C# 7 specs. The original terms were either confusing, or some words in a multi-word term were already used in the standard with a different meaning.
Notably, safe-to-escape-scope and ref-safe-to-escape-scope became safe-context and ref-safe-context respectively. The possible values are now declaration-block, function-member, and caller-context. (The speclet didn't use standard terms).
Question: Should we update the speclets from C# 7.2 and later to use the standard terms? Or wait until the standard incorporates all these versions? Or add a note in each relevant speclet of the changed terms?
The first provides consistency now. The second preserves the historical nature of the speclets. The third is a compromise position.
Rex has been creating draft PRs for C# 8 (and later) features. None of these are completed. We will start assigning work to committee members at our next meeting. We're making some process changes that we believe will help us move faster.
You can see the mapping from any speclet to the corresponding standard text in the admin folder on the csharpstandard repo.
C# 7.3 was likely the longest cycle the committee has or will have. There were a number of reasons:
csharplang repository, and building the culture to update the specifications. Some notes were in roslyn, in issues or docs. Some in LDM notes, in either repo, and some in the speclets.The newer feature specs have more language directly tied to the specification language. Other ongoing improvements have been noted above.