Add LDM notes
This commit is contained in:
Родитель
b3490452ab
Коммит
440557884e
|
@ -0,0 +1,34 @@
|
|||
# C# Language Design Meeting for Apr 8, 2024
|
||||
|
||||
## Agenda
|
||||
|
||||
- [Implementation-specific documentation](#implementation-specific-documentation)
|
||||
|
||||
## Quote of the day
|
||||
|
||||
"if `true == 1` then why is that an error?"
|
||||
"cause u forgot parens"
|
||||
|
||||
## Discussion
|
||||
|
||||
### Implementation-specific documentation
|
||||
|
||||
https://github.com/dotnet/csharplang/issues/7898
|
||||
|
||||
The proposal is for Roslyn to consistently specify behaviors that aren't covered by the [C# Standard](https://github.com/dotnet/csharpstandard/tree/standard-v7/standard#readme).
|
||||
|
||||
There are various differences between what the C# Standard says and what the Roslyn C# compiler does. Some of these are places where the spec offers leeway - implementation-specific and implementation-defined. Others are deviations where the compiler doesn't follow the spec, e.g. because of a bug. Sometimes there are good reasons for such bugs not getting fixed; for instance there may be reasonable code depending on the current non-standard behavior, and it would be a breaking change to fix.
|
||||
|
||||
The Standards committee is in the process of standardizing nullable reference types, which is quite unique in that much of its impact is through warnings, which often aren't considered the purview of the specification. The rules for when exactly the warnings are issued are quite intricate. How much of that behavior should be in the Standard? For the parts that wouldn't be, to what level of detail should the Roslyn behavior be specified elsewhere?
|
||||
|
||||
Collection expressions are an example where the compiler needs wiggle-room around which exact types it creates and how it populates them, and reserves the right to change its choices without warning. The spec - and standard - should simply say what is guaranteed and what isn't.
|
||||
|
||||
The Standard has an [annex](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/portability-issues) that lists undefined, implementation-defined and unspecified behaviors.
|
||||
|
||||
Roslyn already has a [document](https://github.com/dotnet/roslyn/blob/main/docs/compilers/CSharp/Deviations%20from%20Standard.md) (although incomplete) listing known deviations from the Standard. We could expand that, or add sibling documents next to it, to include other Roslyn-specific behavior as suggested in the proposal.
|
||||
|
||||
#### Conclusion
|
||||
|
||||
For the issues in [section B3](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/portability-issues#b3-implementation-defined-behavior) of the annex, "Implementation defined behavior", we want to document Roslyn's approach, since these are gaps deliberately left by the Standard for the implementation to fill.
|
||||
|
||||
In addition, with respect to [section B4](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/portability-issues#b4-unspecified-behavior), "Unspecified behavior", we want to specify the behavior of item 2 on the representation of the `true` value, since Roslyn has made decisions here that are observable and affect interoperability with other languages.
|
|
@ -33,6 +33,8 @@ All schedule items must have a public issue or checked-in proposal that can be l
|
|||
|
||||
### Mon Apr 29, 2024
|
||||
|
||||
- Meeting on meeting (Mads)
|
||||
|
||||
### Wed Apr 24, 2024
|
||||
|
||||
### Mon Apr 22, 2024
|
||||
|
@ -48,12 +50,6 @@ All schedule items must have a public issue or checked-in proposal that can be l
|
|||
|
||||
### Wed Apr 10, 2024
|
||||
|
||||
- Meeting on meeting (Mads)
|
||||
|
||||
### Mon Apr 8, 2024
|
||||
|
||||
- [Implementation specific documentation](https://github.com/dotnet/csharplang/issues/7898). (Bill, on a Monday)
|
||||
|
||||
### Mon Feb 26, 2024 (unresolved topics)
|
||||
|
||||
- Breaking change with collection expressions and UI collection types (https://github.com/dotnet/roslyn/issues/72098). Cyrus + Chuck
|
||||
|
@ -61,6 +57,12 @@ All schedule items must have a public issue or checked-in proposal that can be l
|
|||
|
||||
## C# Language Design Notes for 2024
|
||||
|
||||
### Mon Apr 8, 2024
|
||||
|
||||
[C# Language Design Meeting for Apr 8th, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-08.md)
|
||||
|
||||
- Implementation specific documentation
|
||||
|
||||
### Mon Apr 1, 2024
|
||||
|
||||
[C# Language Design Meeting for Apr 1st, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-04-01.md)
|
||||
|
|
Загрузка…
Ссылка в новой задаче