Skip to content

Commit 09845ee

Browse files
authored
Merge branch 'draft-v8' into slicing
2 parents a43f264 + 295a844 commit 09845ee

36 files changed

+276
-148
lines changed

.github/workflows/do-not-merge-label-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- 'do not merge'
2323
steps:
2424
- name: Harden Runner
25-
uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1
25+
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
2626
with:
2727
egress-policy: audit
2828

.github/workflows/grammar-validator.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ jobs:
1919

2020
steps:
2121
- name: Check out our repo
22-
uses: actions/checkout@v4.2.2
22+
uses: actions/checkout@v5.0.0
2323

2424
- name: Setup .NET 8.0
25-
uses: actions/setup-dotnet@v4
25+
uses: actions/setup-dotnet@v5
2626
with:
2727
dotnet-version: 8.0.x
2828

2929
- name: Set up JDK 15
30-
uses: actions/setup-java@v4
30+
uses: actions/setup-java@v5
3131
with:
3232
java-version: 15.0
3333
distribution: zulu

.github/workflows/markdownlint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
statuses: write
2929

3030
steps:
31-
- uses: actions/checkout@85e6279cec87321a52edac9c87bce653a07cf6c2
31+
- uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493
3232
- name: Use Node.js
3333
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
3434
with:

.github/workflows/renumber-sections.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ jobs:
2424

2525
steps:
2626
- name: Check out our repo
27-
uses: actions/checkout@v4.2.2
27+
uses: actions/checkout@v5.0.0
2828

2929
- name: Setup .NET 8.0
30-
uses: actions/setup-dotnet@v4
30+
uses: actions/setup-dotnet@v5
3131
with:
3232
dotnet-version: 8.0.x
3333

.github/workflows/smart-quotes.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ jobs:
2222

2323
steps:
2424
- name: Check out our repo
25-
uses: actions/checkout@v4.2.2
25+
uses: actions/checkout@v5.0.0
2626

2727
- name: Setup .NET 8.0
28-
uses: actions/setup-dotnet@v4
28+
uses: actions/setup-dotnet@v5
2929
with:
3030
dotnet-version: 8.0.x
3131

.github/workflows/test-examples.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ jobs:
3131

3232
steps:
3333
- name: Check out our repo
34-
uses: actions/checkout@v4.2.2
34+
uses: actions/checkout@v5.0.0
3535

3636
# We build examples against .NET 6.0, but use
3737
# 8.0 for the tools themselves. (The closer we
3838
# are to the target language version we're standardising,
3939
# the better.)
4040
- name: Setup .NET 6.0 and 8.0
41-
uses: actions/setup-dotnet@v4
41+
uses: actions/setup-dotnet@v5
4242
with:
4343
dotnet-version: |
4444
6.0.x

.github/workflows/tools-tests.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ jobs:
2323

2424
steps:
2525
- name: Check out our repo
26-
uses: actions/checkout@v4.2.2
26+
uses: actions/checkout@v5.0.0
2727

2828
- name: Setup .NET 8.0
29-
uses: actions/setup-dotnet@v4
29+
uses: actions/setup-dotnet@v5
3030
with:
3131
dotnet-version: 8.0.x
3232

.github/workflows/update-on-merge.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ jobs:
2828

2929
steps:
3030
- name: Check out our repo
31-
uses: actions/checkout@v4.2.2
31+
uses: actions/checkout@v5.0.0
3232

3333
- name: Setup .NET 8.0
34-
uses: actions/setup-dotnet@v4
34+
uses: actions/setup-dotnet@v5
3535
with:
3636
dotnet-version: 8.0.x
3737

3838
- name: Set up JDK 15
39-
uses: actions/setup-java@v4
39+
uses: actions/setup-java@v5
4040
with:
4141
java-version: 15.0
4242
distribution: zulu

.github/workflows/word-converter.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ jobs:
2828

2929
steps:
3030
- name: Check out our repo
31-
uses: actions/checkout@v4.2.2
31+
uses: actions/checkout@v5.0.0
3232

3333
- name: Setup .NET 8.0
34-
uses: actions/setup-dotnet@v4
34+
uses: actions/setup-dotnet@v5
3535
with:
3636
dotnet-version: 8.0.x
3737

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# ECMA TC49/TG2 New Member Orientation
2+
3+
This document is intended to help new members of TG2 get up to speed.
4+
5+
## Contacts
6+
7+
- Anything administrative or editorial: Rex
8+
- GitHub-related: Bill or Jon
9+
10+
## TG2 Meetings
11+
12+
We usually meet via videoconference for two hours every four weeks (but not in August).
13+
14+
## C# Spec Format and Home
15+
16+
Some years ago, we moved the spec source from MS Word to GitHub/md, and later the repo was made an open-source project under the .NET Foundation umbrella.
17+
18+
## Committee Officers
19+
20+
- Convener (currently Jon), who has a 1-year term ending at the annual TC49 business meeting, usually held in September. The convener produces each meeting agenda and generally manages the work of the TG.
21+
- Administrator (currently Rex, who wears a number of hats)
22+
- Project editor: When we moved from Word to GitHub/md, this role changed, but Rex still monitors the spec for compliance wording and formatting.
23+
- Meeting secretary: Posts draft minutes within 12 hours of a meeting's end. A week later, all corrections/improvements are incorporated and the final draft becomes a numbered document. Also manages the time allocated for each topic during a meeting.
24+
- Chair of ECMA TC49: This keeps him in touch with the Ecma Secretary General, the bi-annual General Assembly, and the associated Ecma Executive Committee (ExeComm).
25+
- Ecma liaison to ISO/IEC JTC/1 SC22 (programming languages, tools, and environments): For TC49 (C#, CLI, Eiffel) and TC39 (ECMAScript).
26+
- Background task: Rex has been creating formal feature specs from [MS’ specs](https://github.com/dotnet/csharplang/tree/main/proposals) for V9–14. The V9 ones are already in the repo as Draft PRs. The formal feature specs for versions beyond V9 are kept offline by Rex (with Jon and Bill also having copies). When V8 is completed and we start work on the V9 Draft PRs, Rex will make the V10 Draft PRs available.
27+
28+
## Official Document Home
29+
30+
All meeting agendas and minutes are assigned numbers by Ecma admin staff, and are posted to the Ecma-hosted TG2 website to which all members have access. Draft versions of these documents are posted privately to members.
31+
32+
## The Standard's Process and Submission/Publication Calendar
33+
34+
Initially, for a given version TG2 produced a final spec that was adopted by Ecma and given an offical number. Then the year-long process of Fast-Tracking it to ISO began. That resulted in at least a few changes, requiring a new Ecma version to be adopted to match the ISO version.
35+
36+
To avoid that extra ISO step and to eliminate the 1-year delay, in December 2022, we created a 4-page "wrapper standard" called "C# Specification Suite (ISO/IEC IS 20619 and ECMA-422)," which has no technical content of its own, but rather includes via undated normative references the latest Ecma C# standard, ECMA-334, and ECMA-335, *Common Language Infrastructure (CLI): Partition IV: Profiles and Libraries, https://www.ecma-international.org/publications-and-standards/standards/ecma-335/*. As such, we no longer Fast-Track the Ecma spec to ISO.
37+
38+
Ordinarily, Ecma approves new specs at its June and December General Assemblies (GAs). To get considered at one of those, we need to have a feature-complete and almost technically complete spec ready by mid-March or mid-September, respectively. If we submit a new version at any other time, rather than have it voted on via a letter ballot, it typcially waits until the next GA. That said, once TG2 completes a version it typically starts work on next one, as Draft PRs for that are already available.
39+
40+
If errors are found in a published spec, we do ***not*** make available a corrected version; corrections simply go into the next version.
41+
42+
## C# Formal Grammar
43+
44+
Some time ago, we moved from an eBNF form to [ANTLR](https://en.wikipedia.org/wiki/ANTLR).
45+
46+
Nigel is our resident grammar expert.
47+
48+
The core ANTLR implementation doesn’t allow left recursion, although a C#-code-generating version does.
49+
50+
Nigel made a tool to extract the grammar from the spec and to rearrange the grammar to get it to pass the ANTLR validator.
51+
52+
## Examples in the spec
53+
54+
We have tools to extract the examples and compile them and execute them. (See https://github.com/dotnet/csharpstandard/blob/draft-v8/tools/README.md.)
55+
56+
## Status of Features in the Current Spec Draft
57+
58+
For a given version *X*, see file v*X*-feature-tracker.md in https://github.com/dotnet/csharpstandard/tree/draft-v8/admin.

0 commit comments

Comments
 (0)