Added LDM Notes for September 28th, 2022

This commit is contained in:
Fredric Silberberg 2022-09-28 16:19:11 -07:00
Родитель ceec9f6410
Коммит 4c3f5d96cf
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 5D1C0E06CE5CD929
2 изменённых файлов: 101 добавлений и 3 удалений

Просмотреть файл

@ -0,0 +1,89 @@
# C# Language Design Meeting for September 28th, 2022
## Agenda
- [Working set triage](#working-set-triage)
- [Discriminated Unions](#discriminated-unions)
- [Collection literals](#collection-literals)
- [Nullability improvements](#nullability-improvements)
- [Ungrouped](#ungrouped)
## Quote(s) of the Day
- "Instead of just skipping 13, we'll take a break for the whole year!"
- "disjunctive junction, what's your function?"
- "That's the sound of never"
- "I do weird stuff in C#, and I've never wanted this"
## Discussion
### Working set triage
We continue our triage from [last time](LDM-2022-09-26.md). For clarity on what we did today, the only issues listed below were actually covered today. We will update
https://github.com/dotnet/csharplang/issues/4144 with the collated results when we are done with the triage.
#### Discriminated Unions
* https://github.com/dotnet/csharplang/issues/4032 - Track subtype exhaustiveness for classes with only private constructors
* Another one for the list
#### Collection literals
* https://github.com/dotnet/csharplang/issues/5354 - Collection literals
* Complex feature area that we think would benefit from a dedicated working group, even though there is only one issue in the group.
* It would be good to have some BCL representation as well.
* Could also be related to `init` methods as a method of implementation.
#### Nullability improvements
We have some nullability issues that have been around for a few releases, and it would be good to turn the crank on nullability and make these pain points better.
* https://github.com/dotnet/csharplang/issues/3950 - `Task<T>` nullability covariance
* One of the common complaints
* https://github.com/dotnet/csharplang/issues/3951 - Nullable analysis of LINQ queries
* Another super common complaint
* Both LINQ as implemented in the BCL, and as done in 3rd-party libraries
#### Ungrouped
The bulk of our meeting today covered smaller issues that are ungrouped.
* https://github.com/dotnet/csharplang/issues/3885 - Support `readonly` modifier for classes and records
* We initially thought this might be an Any Time candidate, but discussion revealed it has some potential interactions with with `readonly` on interfaces.
* Backlog for now
* https://github.com/dotnet/csharplang/issues/3980 - call local static functions in base constructor
* We're not going to make progress on this soon, but we think this is a good Any Time candidate.
* It still needs an accepted specification, but we think it should be relatively straightforward to define.
* https://github.com/dotnet/csharplang/issues/3986 - `#pragma warning *enable*`
* This issue has been unchampioned by the current champion, and no one willing to step up and take it over.
* We think there could be potential bad performance interactions with the analyzer ecosystem.
* Moved to Likely Never.
* https://github.com/dotnet/csharplang/issues/1502 - Five ideas for improving working with fixed buffers
* Most of these ideas are already implemented or broken out into separate issues.
* We will link the appropriate issues from this one and close it out.
* https://github.com/dotnet/csharplang/issues/4018 - Permit variable declarations under disjunctive patterns
* There are still a few design decisions to make here, and it's been sitting on our docket for a while.
* C# 11 priorities have kept pushing it back.
* We hope to make progress in the near future.
* https://github.com/dotnet/csharplang/issues/4024 - Direct constructor parameters
* This was a suggestion that arose as we were thinking about `record` types, but we're no longer interested in this approach.
* Moved to Likely Never.
* https://github.com/dotnet/csharplang/issues/4121 - Metadata determination of whether a type is a record
* If we want to move towards records inheriting from non-records, then we need to think about this.
* Cross-inheritance is not currently in the working set, so this moves to backlog.
* https://github.com/dotnet/csharplang/issues/4284 - using aliases for any types
* We still want this feature, and have a PR implementing the current design.
* There are a few design questions to resolve.
* We'll pursue this soon.
* https://github.com/dotnet/csharplang/issues/4460 - Only Allow Lexical Keywords in the Language
* We've started down this path with the warning wave warning on lowercase type names, but we need to discuss this in more depth.
* Source generators are forcing our customers to deal with the pain of our choices, not just us, which is a more compelling reason than avoiding work for ourselves.
* https://github.com/dotnet/csharplang/issues/4485 - async method exception filter
* The pain here is real, but we're not fans of this approach as the solution, as it's a narrow AOP solution.
* A smaller group will brainstorm other approaches, including whether a non-language solution would be possible.
* https://github.com/dotnet/csharplang/issues/4748 - Directly invoked anonymous functions
* There is universal dislike of this feature on the LDM.
* Moved to Likely Never.
* https://github.com/dotnet/csharplang/issues/5596 - Adding Index support to existing library types (redux)
* This needs BCL input on whether adding more overloads for Index/Range for these extra methods does not work.
* Backlog for now.

Просмотреть файл

@ -29,16 +29,25 @@ All schedule items must have a public issue or checked in proposal that can be l
## Mon Oct 10, 2022
- Triage [working set](https://github.com/dotnet/csharplang/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Working+Set%22) and determine working groups (Mads)
## Wed Oct 5, 2022
## Wed Sep 28, 2022
- Triage [working set](https://github.com/dotnet/csharplang/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Working+Set%22) and determine working groups (Mads)
# C# Language Design Notes for 2022
Overview of meetings and agendas for 2022
## Wed Sep 28, 2022
[C# Language Design Meeting for September 28th, 2022](https://github.com/dotnet/csharplang/blob/main/meetings/2022/LDM-2022-09-28.md)
- Working set triage
- Discriminated Unions
- Collection literals
- Nullability improvements
- Ungrouped
## Mon Sep 26, 2022
[C# Language Design Meeting for September 26th, 2022](https://github.com/dotnet/csharplang/blob/main/meetings/2022/LDM-2022-09-26.md)