csharplang/meetings/2017
Mads Torgersen 839e32ec58
Merge pull request #1400 from dotnet/design-notes
Add raw notes for 2018
2018-03-20 09:04:06 -07:00
..
CLR-2017-03-23.md Add meeting notes for 2017-03-23 CLR behavior for default methods (#407) 2017-04-04 17:47:46 -07:00
LDM-2017-01-10.md Move design meeting notes into subfolders by year 2017-01-31 10:38:26 -08:00
LDM-2017-01-11.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-01-17.md Small fixes to LDM notes (#383) 2017-04-04 15:17:33 -07:00
LDM-2017-01-18.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-02-14.md Add upcoming meetings 2017-02-09 10:54:08 -08:00
LDM-2017-02-15.md Add upcoming meetings 2017-02-09 10:54:08 -08:00
LDM-2017-02-21.md Small fixes to LDM notes (#383) 2017-04-04 15:17:33 -07:00
LDM-2017-02-22.md Small fixes to LDM notes (#383) 2017-04-04 15:17:33 -07:00
LDM-2017-02-28.md Small fixes to LDM notes (#383) 2017-04-04 15:17:33 -07:00
LDM-2017-03-01.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-03-07.md Finish more notes 2017-04-05 17:19:42 -07:00
LDM-2017-03-08.md Add design notes 2017-05-30 15:56:12 -07:00
LDM-2017-03-15.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-03-21.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-03-28.md Add design notes 2017-05-30 17:04:11 -07:00
LDM-2017-03-29.md Add design notes 2017-05-30 17:16:25 -07:00
LDM-2017-04-05.md Add design notes 2017-06-01 14:53:15 -07:00
LDM-2017-04-11.md Fix typo in LDM notes (#670) 2017-06-11 20:53:43 -07:00
LDM-2017-04-18.md Add design notes 2017-06-01 17:24:46 -07:00
LDM-2017-04-19.md Add design notes 2017-06-01 17:50:56 -07:00
LDM-2017-05-16.md Add design notes 2017-06-05 16:32:33 -07:00
LDM-2017-05-17.md Add design notes 2017-06-19 17:05:19 -07:00
LDM-2017-05-26.md Add design notes 2017-06-19 17:05:19 -07:00
LDM-2017-05-31.md Add design notes 2017-06-19 17:05:19 -07:00
LDM-2017-06-13.md Add design notes 2017-06-19 17:05:19 -07:00
LDM-2017-06-14.md Fix formatting 2017-06-19 17:08:34 -07:00
LDM-2017-06-27.md Add design notes 2017-07-05 12:43:48 -07:00
LDM-2017-06-28.md Add design notes 2017-07-05 12:43:48 -07:00
LDM-2017-07-05.md Normalize line endings 2017-08-09 16:11:35 -07:00
LDM-2017-07-26.md Add design notes 2017-08-04 16:50:53 -07:00
LDM-2017-08-07.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-08-09.md Added design notes 2017-08-10 17:14:56 -07:00
LDM-2017-08-14.md Add design notes 2017-08-15 17:33:02 -07:00
LDM-2017-08-16.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-08-21.md Add design notes 2017-10-05 20:15:39 -07:00
LDM-2017-08-23.md Add design notes for nullable reference types 2017-12-20 17:05:17 -08:00
LDM-2017-08-28.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-08-30.md Add design notes 2017-10-05 20:15:39 -07:00
LDM-2017-09-25.md Add design notes 2017-10-05 20:15:39 -07:00
LDM-2017-09-27.md Add design notes 2017-10-05 20:15:39 -07:00
LDM-2017-10-02.md Add design notes 2017-10-05 20:15:39 -07:00
LDM-2017-10-04.md Add design notes 2017-10-05 20:15:39 -07:00
LDM-2017-10-09.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-10-11.md Fix type for "whole" (#1337) 2018-02-26 12:39:07 -08:00
LDM-2017-10-16.md Add raw notes 2017-12-05 17:06:17 -08:00
LDM-2017-10-18.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-10-25.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-11-06.md Add raw notes 2017-12-05 17:06:17 -08:00
LDM-2017-11-08.md Add design notes for nullable reference types 2017-12-20 17:05:17 -08:00
LDM-2017-11-20.md Add design notes for nullable reference types 2017-12-20 17:05:17 -08:00
LDM-2017-11-27.md Add design notes for nullable reference types 2017-12-20 17:05:17 -08:00
LDM-2017-11-29.md Fix typos in `meetings` (#1268) 2018-01-25 13:11:49 -08:00
LDM-2017-12-04.md Add raw notes 2017-12-05 17:06:17 -08:00
LDM-2017-12-06.md Add raw notes for 2018 2018-03-20 09:03:16 -07:00
README.md Merge pull request #1207 from dotnet/design-notes 2017-12-20 17:07:57 -08:00

README.md

C# Language Design Notes for 2017

Overview of meetings and agendas for 2017

Jan 10, 2017

C# Language Design Notes for Jan 10, 2017

  1. Discriminated unions via "closed" types

Jan 11, 2017

C# Language Design Notes for Jan 11, 2017

  1. Language aspects of compiler intrinsics

Jan 17, 2017

C# Language Design Notes for Jan 17, 2017

  1. Constant pattern semantics: which equality exactly?
  2. Extension methods on tuples: should tuple conversions apply?

Jan 18, 2017

C# Language Design Notes for Jan 18, 2017

  1. Async streams (visit from Oren Novotny)

Feb 21, 2017

C# Language Design Notes for Feb 21, 2017

We triaged some of the championed features, to give them a tentative milestone and ensure they had a champion.

As part of this we revisited potential 7.1 features and pushed several out.

  1. Implicit interface implementation in Visual Basic (VB 16)
  2. Delegate and enum constraints (C# X.X)
  3. Generic attributes (C# X.0 if even practical)
  4. Replace/original (C# X.0 if and when relevant)
  5. Bestest betterness (C# 7.X)
  6. Null-coalescing assignments and awaits (C# 7.X)
  7. Deconstruction in from and let clauses (C# 7.X)
  8. Target-typed new expressions (C# 7.X)
  9. Mixing fresh and existing variables in deconstruction (C# 7.1)
  10. Implementing == and != on tuple types (C# 7.X)
  11. Declarations in embedded statements (No)
  12. Field targeted attributes on auto-properties (C# 7.1)

Feb 22, 2017

C# Language Design Notes for Feb 22, 2017

We went over the proposal for ref readonly: Champion "Readonly ref".

Feb 28, 2017

C# Language Design Notes for Feb 28, 2017

  1. Conditional operator over refs (Yes, but no decision on syntax)
  2. Async Main (Allow Task-returning Main methods)

Mar 1, 2017

C# Language Design Notes for Mar 1, 2017

  1. Shapes and extensions (exploration)
  2. Conditional refs (original design adopted)

Mar 7, 2017

C# Language Design Notes for Mar 7, 2017

We continued to flesh out the designs for features currently considered for C# 7.1.

  1. Default expressions (design adopted)
  2. Field target on auto-properties (yes)
  3. private protected (yes, if things work as expected)

Mar 8, 2017

C# Language Design Notes for Mar 8, 2017

We looked at default interface member implementations.

  1. Xamarin interop scenario
  2. Proposal
  3. Inheritance from interface to class
  4. Overriding and base calls
  5. The diamond problem
  6. Binary compatibility
  7. Other semantic challenges

Mar 15, 2017

C# Language Design Notes for Mar 8, 2017

Triage of championed features

  1. JSON literals
  2. Fixing of captured locals
  3. Allow shadowing of parameters
  4. Weak delegates
  5. Protocols/duck typing/concepts/type classes
  6. Zero and one element tuples
  7. Deconstruction in lambda parameters
  8. Private protected

Mar 21, 2017

C# Language Design Notes for Mar 21, 2017

Discussion of default interface member implementations, based on this guided tour.

  1. Concerns raised on GitHub and elsewhere
  2. Inheritance?
  3. Breaking name lookup on this
  4. Events
  5. Modifiers
  6. Methods
  7. Properties
  8. Overrides
  9. Reabstraction
  10. Most specific override
  11. Static non-virtual members
  12. Accessibility levels
  13. Existing programs

Mar 28, 2017

C# Language Design Notes for Mar 28, 2017

Design some remaining 7.1 features

  1. Fix pattern matching restriction with generics
  2. Better best common type

Mar 29, 2017

C# Language Design Notes for Mar 29, 2017

  1. Nullable scenarios
  2. Span<T> safety

Apr 5, 2017

C# Language Design Notes for Apr 5, 2017

  1. Non-virtual members in interfaces
  2. Inferred tuple element names
  3. Tuple element names in generic constraints

Apr 11, 2017

C# Language Design Notes for Apr 11, 2017

  1. Runtime behavior of ambiguous default implementation

Apr 18, 2017

C# Language Design Notes for Apr 18, 2017

  1. Default implementations for event accessors in interfaces
  2. Reabstraction in a class of default-implemented member
  3. sealed override with default implementations
  4. Use of sealed keyword for non-virtual interface members
  5. Implementing inaccessible interface members
  6. Implicitly implementing non-public interface members
  7. Not quite implementing a member
  8. asynchronous Main

Apr 19, 2017

C# Language Design Notes for Apr 19, 2017

  1. Improved best common type
  2. Diamonds with classes
  3. Structs and default implementations
  4. Base invocation

May 16, 2017

C# Language Design Notes for May 16, 2017

  1. Triage C# 7.1 features that didn't make it
  2. Look at C# 7.2 features
  3. GitHub procedure around new design notes and proposals
  4. Triage of championed features

May 17, 2017

C# Language Design Notes for May 17, 2017

More questions about default interface member implementations

  1. Conflicting override of default implementations
  2. Can the Main entry point method be in an interface?
  3. Static constructors in interfaces?
  4. Virtual properties with private accessors
  5. Does an override introduce a member?
  6. Parameter names

May 26, 2017

C# Language Design Notes for May 26, 2017

  1. Native ints

May 31, 2017

C# Language Design Notes for May 31, 2017

  1. Default interface members: overriding or implementing?
  2. Downlevel poisoning of ref readonly in signatures
  3. Extension methods with ref this and generics
  4. Default in operators

Jun 13, 2017

C# Language Design Notes for Jun 13, 2017

  1. Native-size ints
  2. Native-size floats

Jun 14, 2017

C# Language Design Notes for Jun 14, 2017

Several issues related to default implementations of interface members

  1. Virtual properties with private accessors
  2. Requiring interfaces to have a most specific implementation of all members
  3. Member declaration syntax revisited
  4. Base calls

Jun 27, 2017

C# Language Design Notes for Jun 27, 2017

  1. User-defined operators in interfaces
  2. return/break/continue as expressions

Jun 28, 2017

C# Language Design Notes for Jun 28, 2017

  1. Tuple name round-tripping between C# 6.0 and C# 7.0
  2. Deconstruction without ValueTuple
  3. Non-trailing named arguments

Jul 5, 2017

C# Language Design Notes for Jul 5, 2017

Triage of features in the C# 7.2 milestone. They don't all fit: which should be dropped, which should be kept, and which should be pushed out?

  1. Static delegates (8.0)
  2. Native int and IntPtr operators (7.X)
  3. Field target (anytime)
  4. Utf8 strings (8.0)
  5. Slicing (7.X)
  6. Blittable (7.2)
  7. Ref structs (7.2)
  8. Ref readonly (7.2)
  9. Conditional ref (7.2)
  10. Ref extensions on structs (7.2)
  11. Readonly locals and params (X.X)
  12. ref structs in tuples (don't)
  13. Overload resolution tie breakers with long tuples (use underlying generics)

Jul 26, 2017

C# Language Design Notes for Jul 24 and 26, 2017

We started putting a series of stakes in the ground for nullable reference types, based on the evolving strawman proposal here. We're doing our first implementation of the feature based on this, and can then refine as we learn things from usage.

  1. Goals
  2. Nullable reference types
  3. Rarely-null members

Aug 7, 2017

C# Language Design Notes for Aug 7, 2017

We continued refining the nullable reference types feature set with the aim of producing a public prototype for experimentation and learning.

  1. Warnings
  2. Local variables revisited
  3. Opt-in mechanisms

Aug 9, 2017

C# Language Design Notes for Aug 9, 2017

We discussed how nullable reference types should work in a number of different situations.

  1. Default expressions
  2. Array creation
  3. Struct fields
  4. Unconstrained type parameters

Aug 14, 2017

C# Language Design Notes for Aug 14, 2017

We looked at the interaction between generics and nullable reference types

  1. Unconstrained type parameters
  2. Nullable constraints
  3. Conversions between constructed types

Aug 16, 2017

C# Language Design Notes for Aug 16, 2017

  1. The null-forgiving operator

Aug 23, 2017

C# Language Design Notes for Aug 23, 2017

We discussed various aspects of nullable reference types

  1. How does flow analysis silence the warning
  2. Problems with dotted names
  3. Type inference
  4. Structs with fields of non-nullable type

Oct 4, 2017

C# Language Design Review, Oct 4, 2017

We looked at nullable reference types with the reviewers, Anders Hejlsberg and Kevin Pilch.

  1. Overall philosophy
  2. Switches
  3. Libraries
  4. Dotted names
  5. Type narrowing
  6. The dammit operator
  7. Array covariance
  8. Null warnings
  9. Special methods
  10. Conclusion

Oct 11, 2017

C# Language Design Notes for Oct 11, 2017

We looked at the Oct 4 design review feedback for nullable reference types, and considered how to react to it.

  1. Philosophy
  2. Switches
  3. Dotted names
  4. Type narrowing
  5. Dammit operator type narrowing
  6. Dammit operator stickiness
  7. Array covariance
  8. Null warnings

Nov 8, 2017

C# Language Design Notes for Nov 8, 2017

We went over the status of the prototype for nullable reference types, to address outstanding questions and make any last minute calls before release.

  1. Constructors
  2. Dotted names
  3. Default expressions
  4. Should we track null state for nonnullable ref types?
  5. Inferred types for method type inference
  6. Inferred nullability in hover tips
  7. Smaller things not yet done
  8. Unconstrained generics
  9. Other issues

Nov 27, 2017

C# Language Design Notes for Nov 27, 2017

We went over the feedback on the nullable reference types prototype, and discussed how to address the top issues that people had found using the feature on their own source code.

  1. Interacting with existing, unannotated APIs
  2. Accommodating alternative initialization patterns
  3. Tracking nullable value types
  4. Tracking dotted names
  5. Special methods
  6. Filtering out nulls