Skip to content

Conversation

@pkulikov
Copy link
Contributor

@pkulikov pkulikov commented May 14, 2018

No description provided.

@pkulikov pkulikov requested a review from BillWagner as a code owner May 14, 2018 20:50
@pkulikov
Copy link
Contributor Author

Most probably the section Minimum compiler version needed to support all language features should be updated with the correct versions.

[](#TCS7)<a name="FCS7">CS7</a>: Microsoft Visual Studio/Build Tools 2017
[](#TCS71)<a name="FCS71">CS71</a>: Microsoft Visual Studio/Build Tools 2017
[](#TCS72)<a name="FCS72">CS72</a>: Microsoft Visual Studio/Build Tools 2017
[](#TCS73)<a name="FCS73">CS73</a>, <a name="FLatest">Latest</a>: Microsoft Visual Studio/Build Tools 2017
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the 7.x versions require specific minor versions of VS 2017 (like 15.7 for C# 7.3). Is that worth specifying here? If not, you can probably combine all the VS 2017 lines into one.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another question: what should be told to the folks using Visual Studio Code with .NET Core (so, no Visual Studio)?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pkulikov I think that for .Net Core, you wouldn't use the -langversion parameter to csc, you would use the <LangVersion> property in csproj. So, this page isn't really relevant to .Net Core.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the documentation for the csproj property (by the way, is it up-to-date itself?) the same as for this compiler option? The related Visual Studio doc page references this compiler option page.

Copy link
Contributor Author

@pkulikov pkulikov May 15, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pkulikov I believe <LangVersion> in csproj is currently not documented: #2821.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should say which version of the .NET core tools is required for the C# versions 6.0 and greater (if my timeline is right).

With #2821 I'd like to put that information in one easy-to-find place. Until then, it should be here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BillWagner I've added required Visual Studio 2017 versions for C# 7.1...7.3 versions. As for .NET Core, it's related to #4154. Is there a mapping .NET Core SDK version -> Roslyn version? Then, from the Roslyn version, we can get the language version

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That PR might be useful: dotnet/core#1454

Copy link
Member

@BillWagner BillWagner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, this is great. Thank you @pkulikov

There are a couple changes I'd like you to make. I'm working internally to track down the right download for the C# 4.0 spec. I'll add a comment as soon as I find it.

C# 2.0 [c042926_ISO_IEC_23270_2006(E).zip](http://standards.iso.org/ittf/PubliclyAvailableStandards/c042926_ISO_IEC_23270_2006(E).zip) ISO/IEC 23270:2006 in PDF format : ISO Freely Available Standards
C# 3.0 [CSharp Language Specification.doc](http://download.microsoft.com/download/3/8/8/388e7205-bc10-4226-b2a8-75351c669b09/CSharp%20Language%20Specification.doc) C# Language Specification Version 3.0 : Microsoft Corporation
C# 4.0 [Ecma-334.pdf](https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf) Standard ECMA-334 4th Edition
C# 5.0 [CSharp Language Specification.docx](https://www.microsoft.com/download/details.aspx?id=7029) C# Language Specification Version 5.0 : Microsoft Corporation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not related to your PR, but I'm really excited to ask you to update this link. The C# 5 ECMA spec download is here: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf

C# 2.0 [ISO/IEC 23270:2006](https://www.iso.org/standard/42926.html) Information technology -- C# Language Specification : ISO Catalogue
C# 2.0 [c042926_ISO_IEC_23270_2006(E).zip](http://standards.iso.org/ittf/PubliclyAvailableStandards/c042926_ISO_IEC_23270_2006(E).zip) ISO/IEC 23270:2006 in PDF format : ISO Freely Available Standards
C# 3.0 [CSharp Language Specification.doc](http://download.microsoft.com/download/3/8/8/388e7205-bc10-4226-b2a8-75351c669b09/CSharp%20Language%20Specification.doc) C# Language Specification Version 3.0 : Microsoft Corporation
C# 4.0 [Ecma-334.pdf](https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf) Standard ECMA-334 4th Edition
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link now goes to C# 5.0. I'm looking for the C# 4.0 spec download. We may merge this without fixing that, because I can't find a download link for 4.0 yet.

[](#TCS7)<a name="FCS7">CS7</a>: Microsoft Visual Studio/Build Tools 2017
[](#TCS71)<a name="FCS71">CS71</a>: Microsoft Visual Studio/Build Tools 2017
[](#TCS72)<a name="FCS72">CS72</a>: Microsoft Visual Studio/Build Tools 2017
[](#TCS73)<a name="FCS73">CS73</a>, <a name="FLatest">Latest</a>: Microsoft Visual Studio/Build Tools 2017
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should say which version of the .NET core tools is required for the C# versions 6.0 and greater (if my timeline is right).

With #2821 I'd like to put that information in one easy-to-find place. Until then, it should be here.

@BillWagner
Copy link
Member

Thanks for making these updates.

I'll approve this now. If I get a good location for the C# 4.0 spec, I'll update that in another PR.

Thanks again.

@BillWagner BillWagner merged commit 196be9e into dotnet:master May 16, 2018
@pkulikov pkulikov deleted the patch-3 branch May 17, 2018 05:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants