Skip to content

Commit 580ba89

Browse files
authored
Merge pull request #2709 from brettfo/merge-master-into-vs2017-rtm
Merge master into vs2017-rtm
2 parents 5eb1e66 + 2ab3494 commit 580ba89

File tree

563 files changed

+23004
-8421
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

563 files changed

+23004
-8421
lines changed

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1+
# Downloaded packages and build tools.
2+
/lkg
13
/packages
24
/Tools
5+
6+
# Patches that may have been generated by scripts.
7+
# (These aren't generally useful to commit directly; if anything, they should be applied.)
8+
scripts/*.patch
9+
310
/src/*.userprefs
411
/src/fsharp/FSStrings.resources
512
/src/fsharp/FSharp.Build/*.resx
@@ -107,3 +114,5 @@ times
107114
source_link.json
108115
.vs/
109116
/VSRelease/net40/bin
117+
System.ValueTuple.dll
118+
tests/fsharpqa/testenv/bin/System.ValueTuple.dll

.nuget/NuGet.Config

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
<add key="myget.org roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
1515
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
1616
<add key="vctools" value="https://vcppdogfooding.azurewebsites.net/nuget/" />
17-
<add key="roslyn" value="https://dotnet.myget.org/F/roslyn" />
17+
<add key="myget.org roslyn tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
18+
<add key="myget.org roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
1819
<add key="artifacts" value="../artifacts" />
1920
</packageSources>
2021
</configuration>

.nuget/NuGet.targets

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
3636
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
3737
<PackagesConfig>packages.config</PackagesConfig>
38+
<MonoPath Condition="'$(MonoPath)' == '' And Exists('/Library/Frameworks/Mono.framework/Commands/mono')">/Library/Frameworks/Mono.framework/Commands/mono</MonoPath>
39+
<MonoPath Condition="'$(MonoPath)' == ''">mono</MonoPath>
3840
</PropertyGroup>
3941

4042
<PropertyGroup>
@@ -43,7 +45,7 @@
4345
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
4446

4547
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
46-
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
48+
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
4749

4850
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
4951

.vscode/launch.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": ".NET Core Launch (console)",
6+
"type": "coreclr",
7+
"request": "launch",
8+
"preLaunchTask": "build",
9+
"program": "${workspaceRoot}/lkg/fsc/bin/Debug/netcoreapp1.0/fsc.dll",
10+
"args": [],
11+
"cwd": "${workspaceRoot}",
12+
"externalConsole": false,
13+
"stopAtEntry": false,
14+
"internalConsoleOptions": "openOnSessionStart"
15+
},
16+
{
17+
"name": ".NET Core Attach",
18+
"type": "coreclr",
19+
"request": "attach",
20+
"processId": "${command.pickProcess}"
21+
}
22+
]
23+
}

.vscode/tasks.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"version": "0.1.0",
3+
"command": "dotnet",
4+
"isShellCommand": true,
5+
"args": [],
6+
"tasks": [
7+
{
8+
"taskName": "build",
9+
"args": [
10+
"${workspaceRoot}/lkg/fsc/project.json"
11+
],
12+
"isBuildCommand": true,
13+
"problemMatcher": "$msCompile"
14+
}
15+
]
16+
}

CONTRIBUTING.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
##Contribution Guidelines
1+
## Contribution Guidelines
22

33
The Visual F# team is proud to be a contributor to F#, and urge you to join in too. F# users and the F# community are grateful for all contributions to F#.
44

55
Besides this overview, we recommend ["Becoming a contributor"](http://mrange.wordpress.com/2014/12/11/becoming-an-fsharp-contributor/), a community blog post by Mårten Rånge.
66
For those contributing to the core of the F# compiler, we recommend ["The F# Compiler Technical Overview"](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html)
77

8-
###Getting Started
8+
### Getting Started
99

1010
- Install required software
11-
- Clone the repo
12-
- `git clone https://github.com/microsoft/visualfsharp.git`
13-
- How to build ([DEVGUIDE](DEVGUIDE.md))
14-
- How to run tests ([TESTGUIDE](TESTGUIDE.md))
11+
- Clone the repo \
12+
`git clone https://github.com/microsoft/visualfsharp.git`
13+
- Read how to build in [DEVGUIDE.md](DEVGUIDE.md)
14+
- Read how to run tests in [TESTGUIDE.md](TESTGUIDE.md)
1515

16-
###What to Contribute?
16+
### What to Contribute?
1717

1818
There are several important ways that you can contribute. We are especially grateful for early feedback on in-development features, bug reports with repro steps, bug fixes with regression test cases, cross-platform expertise and changes, documentation updates, feature tests, suggestions, comments, and ideas.
1919

@@ -26,27 +26,27 @@ We initially solicit contributions for
2626
- library improvements
2727
- F# language and library features
2828

29-
New features are welcome, but be aware that Visual F# is a high-quality programming language with high-quality tools, and we wish to keep it that way. Before embarking on an extensive feature implementation, make a proposal in a GitHub issue or on the [F# Language UserVoice](https://fslang.uservoice.com/) so the community can review and comment on it.
29+
New features are welcome, but be aware that Visual F# is a high-quality programming language with high-quality tools, and we wish to keep it that way. Before embarking on an extensive feature implementation, make a proposal in a GitHub issue or on the [F# Language Suggestions](https://github.com/fsharp/fslang-suggestions) so the community can review and comment on it.
3030

3131
### Issues
3232

3333
When submitting issues, please use the following guidelines
3434

35-
- Suggestions for the F# Language and Core library should be added and reviewed at the [F# Language User Voice](https://fslang.uservoice.com/).
35+
- Suggestions for the F# Language and Core library should be added and reviewed at the [F# Language Suggestions](https://github.com/fsharp/fslang-suggestions).
3636

37-
- Suggestions for the Visual F# Tools should be added and reviewed at the [Visual Studio F# Tools User Voice](https://visualstudio.uservoice.com/forums/121579-visual-studio/category/30935-languages-f-tools).
37+
- Suggestions for the Visual F# Tools should be added and reviewed at the [Visual Studio F# Tools GitHub](https://github.com/microsoft/visualfsharp).
3838

3939
- New Bug Reports should always give accurate, clear steps for reproducing the bug, and all relevant details about versions, platform, etc. We suggest the following template:
4040

41-
Title: <a short, clear title>
41+
Title: &lt;a short, clear title&gt;
4242

43-
Description: <a description of the problem>
43+
Description: &lt;a description of the problem&gt;
4444

45-
Repro Steps: <step by step description>
45+
Repro Steps: &lt;step by step description&gt;
4646

47-
Expected: <what is expected>
47+
Expected: &lt;what is expected&gt;
4848

49-
Actual: <what you really get>
49+
Actual: &lt;what you really get&gt;
5050

5151
Severity: a description on how bad it is and why - is it blocking?
5252

@@ -58,11 +58,11 @@ When submitting issues, please use the following guidelines
5858

5959
Workaround: List any known workarounds
6060

61-
###CLA
61+
### CLA
6262

6363
Contributors are required to sign a [Contribution License Agreement](https://cla.microsoft.com/) (CLA) before any pull requests will be considered. After submitting a request via the provided form, electronically sign the CLA when you receive the email containing the link to the document. This only needs to be done once for each Microsoft OSS project you contribute to.
6464

65-
###Quality and Testing
65+
### Quality and Testing
6666

6767
Contributions to this repository will be rigorously policed for quality.
6868

@@ -109,26 +109,26 @@ Bug fix PRs have the following minimum requirements
109109

110110
Feature PRs have the following minimum requirements:
111111

112-
- For F# Language and Library features, include a link to the [F# Language User Voice](http://fslang.uservoice.com)
112+
- For F# Language and Library features, include a link to the [F# Language Suggestions](https://github.com/fsharp/fslang-suggestions) issue
113113

114-
- For Visual F# Tools features, include a link to the [Visual F# Tools User Voice](https://visualstudio.uservoice.com/forums/121579-visual-studio/category/30935-languages-f-tools) entry for the feature.
114+
- For Visual F# Tools features, include a link to the [Visual F# Tools](https://github.com/microsoft/visualfsharp) issue for the feature.
115115

116116
- For F# Library features, if you have made additions to the FSharp.Core library public surface area, update [the SurfaceArea tests](https://github.com/Microsoft/visualfsharp/tree/fsharp4/src/fsharp/FSharp.Core.Unittests).
117117

118-
- For F# Language and Library features, you will be asked to submit a speclet for the feature to the [F# Language Design](https://github.com/fsharp/FSharpLangDesign/) GitHub repository of speclets. In some cases you will only need to do this after your feature is accepted, but for more complex features you may be asked to do this during the review of the feature.
118+
- For F# Language and Library features, you will be asked to submit a speclet for the feature to the [F# Language Design](https://github.com/fsharp/fslang-design) GitHub repository of speclets. In some cases you will only need to do this after your feature is accepted, but for more complex features you may be asked to do this during the review of the feature.
119119

120120
- Language feature implementations must take into account the expectations of typical users about the performance
121121
impact of using the feature. For example, we should avoid the situation where using an optional language feature
122122
which appears benign to a typical user has a large negative performance impact on code.
123123

124124
- Language feature implementations should not cause performance degradation in existing code.
125125

126-
###Language Evolution
126+
### Language Evolution
127127

128128
We are committed to carefully managing the evolution of the F# language.
129129

130-
We actively solicit contributions related to the F# language design, but the process for handling these differs substantially from other kinds of contributions. Significant language and library change should be suggested and reviewed at the [F# Language User Voice](https://fslang.uservoice.com/) site.
130+
We actively solicit contributions related to the F# language design, but the process for handling these differs substantially from other kinds of contributions. Significant language and library change should be suggested and reviewed at the [F# Language Suggestions](https://github.com/fsharp/fslang-suggestions) repository.
131131

132-
###Coding guidelines
132+
### Coding guidelines
133133

134134
Although there is currently no strict set of coding or style guidelines, use common sense when contributing code - make an effort to use a similar style to nearby existing code. If you have a passion for helping us develop a set of coding guidelines that we can roll out and apply within this project, get involved and start a discussion issue.

DEVGUIDE.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,33 +105,41 @@ Where you should set proper proxy address, user name and password.
105105

106106
# The Visual F# IDE Tools (Windows Only)
107107

108-
To build and test Visual F# IDE Tools, you must use the latest version of [Visual Studio 2017 RC](https://www.visualstudio.com/vs/visual-studio-2017-rc/#downloadvs). See the section titled "Development tools" in the [readme](README.md).
108+
To build and test Visual F# IDE Tools, you must use the latest version of [Visual Studio 2017](https://www.visualstudio.com/downloads/). See the section titled "Development tools" in the [readme](README.md).
109109

110110
build.cmd vs -- build the Visual F# IDE Tools (see below)
111111
build.cmd vs test -- build Visual F# IDE Tools, run all tests (see below)
112112

113113
Use ``VisualFSharp.sln`` if you're building the Visual F# IDE Tools.
114114

115+
Note: if you face this error [#2351](https://github.com/Microsoft/visualfsharp/issues/2351):
116+
117+
> error VSSDK1077: Unable to locate the extensions directory. "ExternalSettingsManager::GetScopePaths failed to initialize PkgDefManager for C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe".
118+
119+
Or hard crash on launch ("Unknown Error"), delete these folders:
120+
121+
* `%localappdata%\Microsoft\VisualStudio\15.0_(some number here)FSharpDev`
122+
* `%localappdata%\Microsoft\VisualStudio\15.0_(some number here)`
115123

116124
## [Optional] Install the Visual F# IDE Tools (Windows Only)
117125

118126
At time of writing, the Visual F# IDE Tools can only be installed into the latest Visual Studio 2017 RC releases.
119127
The new builds of the Visual F# IDE Tools can no longer be installed into Visual Studio 2015.
120128

121-
You can install Visual Studio 2017 RC from https://www.visualstudio.com/vs/visual-studio-2017-rc/#downloadvs.
129+
You can install Visual Studio 2017 from https://www.visualstudio.com/downloads/.
122130

123131
**Note:** This step will install a VSIX extension into Visual Studio "Next" that changes the Visual F# IDE Tools
124132
components installed in that VS installation. You can revert this step by disabling or uninstalling the addin.
125133

126134
For **Debug**, uninstall then reinstall:
127135

128-
VSIXInstaller.exe /a /u:"VisualFSharp"
129-
VSIXInstaller.exe /a debug\net40\bin\VisualFSharpOpenSource.vsix
136+
VSIXInstaller.exe /u:"VisualFSharp"
137+
VSIXInstaller.exe debug\net40\bin\VisualFSharpOpenSource.vsix
130138

131139
For **Release**, uninstall then reinstall:
132140

133-
VSIXInstaller.exe /a /u:"VisualFSharp"
134-
VSIXInstaller.exe /a release\net40\bin\VisualFSharpOpenSource.vsix
141+
VSIXInstaller.exe /u:"VisualFSharp"
142+
VSIXInstaller.exe release\net40\bin\VisualFSharpOpenSource.vsix
135143

136144
Restart Visual Studio, it should now be running your freshly-built Visual F# IDE Tools with updated F# Interactive.
137145

@@ -151,17 +159,15 @@ This gives a much tighter inner development loop than uninstalling/reinstalling
151159

152160
### [Optional] Clobber the F# SDK on the machine
153161

154-
**Note:** Step #3 below will clobber the machine-wide installed F# SDK on your machine. This replaces the ``fsi.exe``/``fsiAnyCpu.exe`` used by Visual F# Interactive and the ``fsc.exe`` used by ``Microsoft.FSharp.targets``. Repairing Visual Studio 15 is currently the only way to revert this step.
162+
**Note:** The step below will try to clobber the machine-wide installed F# SDK on your machine. This replaces the ``fsc.exe`` used by the standard innstall location or ``Microsoft.FSharp.targets``. **Repairing Visual Studio 15 is currently the only way to revert this step.**
155163

156164
For **Debug**:
157165

158-
1. Run ``vsintegration\update-vsintegration.cmd debug`` (clobbers the installed F# SDK)
166+
vsintegration\update-vsintegration.cmd debug
159167

160168
For **Release**:
161169

162-
1. Run ``vsintegration\update-vsintegration.cmd release`` (clobbers the installed F# SDK)
163-
164-
170+
vsintegration\update-vsintegration.cmd release
165171

166172

167173
## Resources

FSharp.sln

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HostedCompilerServer", "tes
4343
EndProject
4444
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ILComparer", "tests\fsharpqa\testenv\src\ILComparer\ILComparer.fsproj", "{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}"
4545
EndProject
46-
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Tests.FSharpSuite.DrivingCoreCLR", "tests\fsharp\FSharp.Tests.FSharpSuite.DrivingCoreCLR.fsproj", "{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}"
46+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.LanguageService.Compiler", "src\fsharp\FSharp.LanguageService.Compiler\FSharp.LanguageService.Compiler.fsproj", "{A437A6EC-5323-47C2-8F86-E2CAC54FF152}"
4747
EndProject
4848
Global
4949
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -206,18 +206,18 @@ Global
206206
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|Any CPU.Build.0 = Release|Any CPU
207207
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|x86.ActiveCfg = Release|Any CPU
208208
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|x86.Build.0 = Release|Any CPU
209-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
210-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
211-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Debug|x86.ActiveCfg = Debug|Any CPU
212-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Debug|x86.Build.0 = Debug|Any CPU
213-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
214-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Proto|Any CPU.Build.0 = Proto|Any CPU
215-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Proto|x86.ActiveCfg = Proto|Any CPU
216-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Proto|x86.Build.0 = Proto|Any CPU
217-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
218-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Release|Any CPU.Build.0 = Release|Any CPU
219-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Release|x86.ActiveCfg = Release|Any CPU
220-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED}.Release|x86.Build.0 = Release|Any CPU
209+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
210+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Debug|Any CPU.Build.0 = Debug|Any CPU
211+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Debug|x86.ActiveCfg = Debug|Any CPU
212+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Debug|x86.Build.0 = Debug|Any CPU
213+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
214+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Proto|Any CPU.Build.0 = Proto|Any CPU
215+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Proto|x86.ActiveCfg = Proto|Any CPU
216+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Proto|x86.Build.0 = Proto|Any CPU
217+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Release|Any CPU.ActiveCfg = Release|Any CPU
218+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Release|Any CPU.Build.0 = Release|Any CPU
219+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Release|x86.ActiveCfg = Release|Any CPU
220+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152}.Release|x86.Build.0 = Release|Any CPU
221221
EndGlobalSection
222222
GlobalSection(SolutionProperties) = preSolution
223223
HideSolutionNode = FALSE
@@ -236,6 +236,6 @@ Global
236236
{88E2D422-6852-46E3-A740-83E391DC7973} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
237237
{4239EFEA-E746-446A-BF7A-51FCBAB13946} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
238238
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
239-
{BDA4D411-6AD9-4B3E-A3B3-07BAD6BEF1ED} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
239+
{A437A6EC-5323-47C2-8F86-E2CAC54FF152} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
240240
EndGlobalSection
241241
EndGlobal

ISSUE_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Provide any related information
3030
* Branch
3131
* .NET Runtime, CoreCLR or Mono Version
3232
* Editing Tools (e.g. Visual Studio Version)
33-
* Links to F# RFCs or entries on http://fslang.uservoice.com
33+
* Links to F# RFCs or entries on https://github.com/fsharp/fslang-suggestions
3434
* Links to performance testing scripts
3535
* Indications of severity
3636

0 commit comments

Comments
 (0)