Skip to content

Commit 9cc85b0

Browse files
Update v7 feature tracker (#448)
* Completely replace v7 feature tracker * Update v7-feature-tracker.md * Update admin/v7-feature-tracker.md Co-authored-by: Bill Wagner <[email protected]>
1 parent cf0e08d commit 9cc85b0

File tree

1 file changed

+40
-34
lines changed

1 file changed

+40
-34
lines changed

admin/v7-feature-tracker.md

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,43 @@
11
## V7 Feature List and Current Status
22

3-
This file identifies the known V7 features and tracks their status. Although there were minor "dot" releases of V7, committee ECMA TC49/TG2 plans to combine all 7.x features into one V7 spec.
3+
This file identifies the known V7 features, and tracks their status. Although there were minor "dot" releases of V7, committee ECMA TC49/TG2 plans to combine all 7.x features into one V7 spec.
44

5-
Version | Feature | PR | Status | Notes
6-
------- | ------- | -- | ------ | ------
7-
7.0 | binary integer literals | [45](https://github.com/dotnet/csharpstandard/pull/45) | Needs review | Combination #1
8-
7.0 | embedded digit separators in numeric literals | [45](https://github.com/dotnet/csharpstandard/pull/45) | Needs review | Combination #1
9-
7.0 | `out` variables | [44](https://github.com/dotnet/csharpstandard/pull/44) | Needs review | Combination #2
10-
7.0 | Discards | [44](https://github.com/dotnet/csharpstandard/pull/44) | Needs review | Combination #2
11-
7.0 | Tuples | [63](https://github.com/dotnet/csharpstandard/pull/63) | See Issue [64](https://github.com/dotnet/csharpstandard/issues/64) | Combination #3
12-
7.0 | Pattern Matching | [61](https://github.com/dotnet/csharpstandard/pull/61) | Needs review | Combination #3
13-
7.0 | `ref` locals and returns | [213](https://github.com/dotnet/csharpstandard/pull/213) | Needs review | Combination #4
14-
7.0 | Local Functions | [104](https://github.com/dotnet/csharpstandard/pull/104) | Needs review |
15-
7.0 | More expression-bodied members | [69](https://github.com/dotnet/csharpstandard/pull/69) | Needs review |
16-
7.0 | `throw` Expressions | [65](https://github.com/dotnet/csharpstandard/pull/65) | See Issue [66](https://github.com/dotnet/csharpstandard/issues/66) |
17-
7.0 | Generalized `async` return types | Open | See Issue [345](https://github.com/dotnet/csharpstandard/issues/345) |
18-
7.1 | `async Main` method | [70](https://github.com/dotnet/csharpstandard/pull/70) | Needs review |
19-
7.1 | `default` literal expressions | [236](https://github.com/dotnet/csharpstandard/pull/236) | Needs review |
20-
7.1 | Inferred tuple element names | [63](https://github.com/dotnet/csharpstandard/pull/63) | See Issue [64](https://github.com/dotnet/csharpstandard/issues/64) |
21-
7.1 | Pattern matching on generic type parameters | [61](https://github.com/dotnet/csharpstandard/pull/61) | Needs review | Combination #3
22-
7.2 | leading digit separators in bin/hex integer literals | [45](https://github.com/dotnet/csharpstandard/pull/45) | Needs review | Combination #1
23-
7.2 | Non-trailing named arguments | [216](https://github.com/dotnet/csharpstandard/pull/216) | Needs review |
24-
7.2 | `private protected` access modifier | [215](https://github.com/dotnet/csharpstandard/pull/215) | Needs review |
25-
7.2 | Conditional `ref` expressions | [213](https://github.com/dotnet/csharpstandard/pull/213) | Needs review | Combination #4
26-
7.2 | `in` parameter modifier | [219](https://github.com/dotnet/csharpstandard/pull/219) | Needs review | Combination #5
27-
7.2 | `ref` with `this` in extension methods | [219](https://github.com/dotnet/csharpstandard/pull/219) | Needs review | Combination #5
28-
7.2 | `readonly` and `ref` structs | [333](https://github.com/dotnet/csharpstandard/pull/333) | See Issue [334](https://github.com/dotnet/csharpstandard/issues/334) |
29-
7.3 | indexing movable fixed buffer without pinning | [239](https://github.com/dotnet/csharpstandard/pull/239) | Needs review |
30-
7.3 | reassign `ref` local variables | [213](https://github.com/dotnet/csharpstandard/pull/213) | Needs review | Combination #4
31-
7.3 | use initializers on `stackalloc` arrays | [238](https://github.com/dotnet/csharpstandard/pull/238) | Needs review |
32-
7.3 | Support for Pattern-Based `fixed` Statements | [240](https://github.com/dotnet/csharpstandard/pull/240) | See Issue [241](https://github.com/dotnet/csharpstandard/issues/241) |
33-
7.3 | use additional generic constraints | [244](https://github.com/dotnet/csharpstandard/pull/244) | Needs review |
34-
7.3 | test `==` and `!=` with tuple types | [63](https://github.com/dotnet/csharpstandard/pull/63) | See Issue [64](https://github.com/dotnet/csharpstandard/issues/64) | Combination #3
35-
7.3 | use expression variables in more locations | [44](https://github.com/dotnet/csharpstandard/pull/44), [61](https://github.com/dotnet/csharpstandard/pull/61) | Needs review | Combination #2 & #3
36-
7.3 | attach attributes to the backing field of auto-implemented properties | [262](https://github.com/dotnet/csharpstandard/pull/262) | Needs review |
37-
7.3 | overload resolution now has fewer ambiguous cases | [263](https://github.com/dotnet/csharpstandard/pull/263) | Needs review |
5+
For the most part, the features were spec'd in version-number order. (One exception was that a feature from 7.2 was combined with two related features from 7.0 in a single PR.) Dependencies between feature specs are noted. The *Effort* column is an attempt to show the size/complexity of the proposal, such as *small*, *medium*, or *large*, allowing TG2 to pick-and-chose the ones they'll work on next.
6+
7+
Unlike with the V6 work, where we had separate and divergent V5 Ecma and MS specs, for V7, we started with a set of [MS proposals](https://github.com/dotnet/csharplang/tree/main/proposals), some of which were placeholders **for which text was never provided**. Where they existed, Rex took these proposals, wrote tests, looked at MS (and other) tutorial pages, and created a branch, and for most features, a corresponding (Draft) PR, with the edits he thought were needed. **It is quite possible that not everything in any given MS proposal was in fact implemented in that version, and it is also possible that things implemented in a version later on were not spec'd back into the proposal.**
8+
9+
For any given feature, Rex actually wrote his version of the final proposal, in a Word file, but using md syntax. This allowed him to order the sets of edits by clause and subclause, and to exploit Word's comment, tracked-change, color, and other features, in order to make the proposal more readable and consistant. A Table-of-Contents was also added, so the reader can see at a glance the areas of the standard impacted by the proposal. This Word document was eventually turned into the branch edits and corresponding PR. For at least some features, it likely will be useful for TG2 members to have access to these Word files, as they may be helpful in seeing the actual changes made, along with "Notes to TG2" that Rex made for consideration come processing time. (These Word documents and their associated test currently reside in a DropBox folder to which Bill Wagner has access, as well as on Rex's machine.)
10+
11+
Version | Feature | PR | Status | Effort | Notes
12+
------- | ------- | -- | ------ | ------ | -----
13+
7.0 | binary integer literals | [449](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/449) | Open | Small | Feature Group A.
14+
7.0 | embedded digit separators in numeric literals | [449](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/449) | Open | Small | Feature Group A.
15+
7.0 | `out` variables | [44](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/44) | Open | Small | Feature Group B.
16+
7.0 | Discards | [44](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/44) | Open | Small | Feature Group B.
17+
7.0 | Tuples | [63](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/63) **but needs some work** | Open | Large | Feature Group C.
18+
7.0 | Pattern Matching | [61](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/61) | Open | Medium | Feature Group D.
19+
7.0 | `ref` locals and returns | [213](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/213) **but needs work** | Open | Medium | Feature Group E.
20+
7.0 | Local Functions | [104](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/104) | Open | Small |
21+
7.0 | More expression-bodied members | [69](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/69) | Open | Small |
22+
7.0 | `throw` Expressions | [65](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/65) **but needs some work** | Open | |
23+
7.0 | Generalized `async` return types | **In progress** | Open | Small |
24+
7.1 | `async Main` method | [70](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/70) | Open | Small |
25+
7.1 | `default` literal expressions | [236](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/236) | Open | Small |
26+
7.1 | Inferred tuple element names - see [MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-7.1/infer-tuple-names.md) | [63](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/63) **but needs some work** | Open | Large | Feature Group C.
27+
7.1 | Pattern matching on generic type parameters | [61](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/61) | Open | Medium | Feature Group D.
28+
7.2 | leading digit separators in bin/hex integer literals | [449](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/449) | Open | Small | Feature Group A.
29+
7.2 | Non-trailing named arguments | [216](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/216) | Open | Small |
30+
7.2 | `private protected` access modifier | [215](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/215) | Open | Small |
31+
7.2 | Conditional `ref` expressions | [213](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/213) **but needs work** | Open | | Medium | Feature Group E.
32+
7.2 | `in` parameter modifier | [219](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/219) | Open | Medium | Feature Group F.
33+
7.2 | `ref` with `this` in extension methods | [219](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/219) | Open | Medium | Feature Group F.
34+
7.2 | `readonly` and `ref` structs | [333](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/333) | Open | Small |
35+
7.3 | indexing movable fixed buffer without pinning | [239](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/239) | Open | Small |
36+
7.3 | reassign `ref` local variables | [213](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/213) **but needs work** | Open | | Medium | Feature Group E.
37+
7.3 | use initializers on `stackalloc` arrays | [238](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/238) | Open | Small |
38+
7.3 | Support for Pattern-Based `fixed` Statements | [240](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/240) | Open | Small |
39+
7.3 | use additional generic constraints | [244](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/244) | Open | Small |
40+
7.3 | test `==` and `!=` with tuple types | [63](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/63) **but needs some work** | Open | Large | Feature Group C.
41+
7.3 | use expression variables in more locations | [44](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/44), [61](https://github.com/ECMA-TC49-TG2/csharpstandard/pull/61) | Open | Medium | Feature Group B and D.
42+
7.3 | attach attributes to the backing field of auto-implemented properties | [262](https://github.com/dotnet/csharpstandard/pull/262) | Open | Small |
43+
7.3 | overload resolution now has fewer ambiguous cases | [263](https://github.com/dotnet/csharpstandard/pull/263) | Open | Small |

0 commit comments

Comments
 (0)