Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3e31902

Browse files
authored
Merge pull request #3055 from Microsoft/master
merge `master` into `vs2017-rtm`
2 parents762dfcf +722a64a commit3e31902

File tree

1,979 files changed

+258266
-16150
lines changed

Some content is hidden

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

1,979 files changed

+258266
-16150
lines changed

‎.gitignore‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,11 @@ Release
7979
Proto
8080
sign_temp
8181
.libs
82-
Makefile
8382
configure
8483
launcher
8584
autom4te.cache
8685
config.log
87-
config.make
86+
mono/config.make
8887
config.status
8988
*~
9089
*.suo

‎.nuget/NuGet.Config‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
3+
34
<solution>
45
<addkey="disableSourceControlIntegration"value="true" />
56
</solution>
67
<packageSources>
7-
88
<!--To inherit the global NuGet package sources remove the <clear/> line below-->
99
<clear />
1010
<addkey="myget.org fsharp-daily"value="https://www.myget.org/F/fsharp-daily/api/v3/index.json" />
@@ -13,9 +13,9 @@
1313
<addkey="myget.org dotnet-buildtools"value="https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
1414
<addkey="myget.org roslyn-tools"value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
1515
<addkey="api.nuget.org"value="https://api.nuget.org/v3/index.json" />
16-
<addkey="vctools"value="https://vcppdogfooding.azurewebsites.net/nuget/" />
1716
<addkey="myget.org roslyn tools"value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
1817
<addkey="myget.org roslyn"value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
1918
<addkey="artifacts"value="../artifacts" />
2019
</packageSources>
20+
2121
</configuration>

‎.travis.yml‎

Lines changed: 0 additions & 34 deletions
This file was deleted.

‎DEVGUIDE.md‎

Lines changed: 88 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,19 @@
1-
#F# Compiler, Core Library and Visual F# Tools Open Contribution Repository
1+
#Development Guide
22

3-
This repo is where you can contribute to the F# compiler, core library and the Visual F# Tools.
4-
To learn what F# is and why it's interesting, go to[fsharp.org](http://fsharp.org). To get a free F# environment, go to[fsharp.org](http://fsharp.org/use/windows).
3+
Follow the instructions below to build and develop the F# Compiler, Core Library and tools on Windows, macOS and Linux.
54

6-
**Compiler Technical Documentation**
5+
*[Developing the F# Compiler (Windows)](#developing-the-f-compiler-windows)
6+
*[Developing the F# Compiler (Linux)](#developing-the-f-compiler-linux)
7+
*[Developing the F# Compiler (macOS)](#developing-the-f-compiler-macos)
8+
*[Developing the Visual F# IDE Tools (Windows Only)](#developing-the-visual-f-ide-tools-windows-only)
9+
*[Notes and Resources](#notes)
710

8-
The primary technical documents forthe F#compiler code are
11+
###Developingthe F#Compiler (Windows)
912

10-
*[The F# Language and Core Library RFC Process](http://fsharp.github.io/2016/09/26/fsharp-rfc-process.html)
13+
Install
1114

12-
*[The F# Language Specification](http://fsharp.org/specs/language-spec/)
13-
14-
*[The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html)
15-
maintained by contributors to this repository. Please read
16-
and contribute to that guide.
17-
18-
**License**
19-
>Contributions made to this repo are subject to terms and conditions of the Apache License, Version 2.0. A copy of the license can be found in the[License.txt](License.txt) file at the root of this distribution.
20-
>By using this source code in any fashion, you are agreeing to be bound by the terms of the Apache License, Version 2.0. You must not remove this notice, or any other, from this software.
21-
22-
**Questions?** If you have questions about the source code, please ask in the issues.
23-
24-
##Quick Start: Build, Test, Develop
25-
26-
###F# Compiler (Linux)
27-
28-
Currently you can do on Linux a bootstrap of the Mono version of the compiler. Full testing is not enabled,
29-
nor is a .NET Core build of the compiler.
30-
31-
First[install Mono](http://www.mono-project.com/docs/getting-started/install/linux/). Then:
32-
33-
./build.sh
34-
35-
results will be in``Debug\net40\bin\...``. This doesn't do any testing (beyond the bootstrap). You can
36-
run the compiler``fsc.exe`` and F# Interactive``fsi.exe`` by hand to test it.
37-
38-
These steps are tested under the Linux/Mono configuration(s) in``.travis.yml`` (Ubuntu).
39-
40-
###F# Compiler (Windows)
15+
-[.NET 4.5.1](http://www.microsoft.com/en-us/download/details.aspx?id=40779)
16+
-[MSBuild 12.0](http://www.microsoft.com/en-us/download/details.aspx?id=40760)
4117

4218
On Windows you can build the F# compiler for .NET Framework as follows:
4319

@@ -82,36 +58,53 @@ Building ``FSharp.sln`` builds nearly everything. However building portable prof
8258
FSharp.Core.dll is not included. If you are just developing the core compiler and library
8359
then building the solution will be enough.
8460

85-
###Notes on the.NET Framework build
61+
###Developing theF# Compiler (Linux)
8662

87-
1. The`update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
88-
1. The compiler binaries produced are "private" and strong-named signed with a test key.
89-
1. Some additional tools are required to build the compiler, notably`fslex.exe`,`fsyacc.exe`,`FSharp.PowerPack.Build.Tasks.dll`,`FsSrGen.exe`,`FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the`lkg` directory.
90-
1. The overall bootstrapping process executes as follows
91-
- We first need an existing F# compiler. We use the one in the`lkg` directory. Let's assume this compiler has an`FSharp.Core.dll` with version X.
92-
- We use this compiler to compile the source in this distribution, to produce a "proto" compiler, dropped to the`proto` directory. When run, this compiler still relies on`FSharp.Core.dll` with version X.
93-
- We use the proto compiler to compile the source for`FSharp.Core.dll` in this distribution.
94-
- We use the proto compiler to compile the source for`FSharp.Compiler.dll`,`fsc.exe`,`fsi.exe`, and other binaries found in this distribution.
63+
For Linux/Mono, follow[these instructions](http://www.mono-project.com/docs/getting-started/install/linux/). Also you may need:
9564

96-
###Configuring proxy server
65+
sudo apt-get install mono-complete autoconf libtool pkg-config make git automake
9766

98-
If you are behind a proxy server, NuGet client tool must be configured to use it:
67+
Then:
68+
69+
./autoconf.sh --prefix /usr
70+
make
71+
make install
9972

100-
.nuget\nuget.exe config -set http_proxy=proxy.domain.com:8080 -ConfigFile .nuget\NuGet.Config
101-
.nuget\nuget.exe config -set http_proxy.user=user_name -ConfigFile .nuget\NuGet.Config
102-
.nuget\nuget.exe config -set http_proxy.password=user_password -ConfigFile .nuget\NuGet.Config
73+
Full testing is not yet enabled on Linux, nor is a .NET Core build of the compiler.
10374

104-
Where you should set proper proxy address, user name and password.
75+
You can alternatively use
10576

106-
#The Visual F# IDE Tools (Windows Only)
77+
./build.sh
10778

108-
To build and test VisualF#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).
79+
###Developing theF#Compiler (macOS)
10980

110-
build.cmd vs -- build the Visual F# IDE Tools (see below)
81+
Install Xamarin Studio, then
82+
83+
./autogen.sh --prefix=/Library/Frameworks/Mono.framework/Versions/Current/
84+
make
85+
sudo make install
86+
87+
###Developing the Visual F# IDE Tools (Windows Only)
88+
89+
To build and test Visual F# IDE Tools, install these requirements:
90+
-[Visual Studio 2017](https://www.visualstudio.com/downloads/)
91+
- Under the "Windows" workloads, select ".NET desktop development"
92+
- Select "F# language support" under the optional components
93+
- Under the "Other Toolsets" workloads, select "Visual Studio extension development"
94+
- Under the "Individual components" tab select "Windows 10 SDK" as shown below (needed for compiling RC resource, see#2556):\
95+
![image](https://cloud.githubusercontent.com/assets/1249087/23730261/5c78c850-041b-11e7-9d9d-62766351fd0f.png)
96+
97+
Steps to build:
98+
99+
build.cmd vs -- build the Visual F# IDE Tools in Release configuration (see below)
100+
build.cmd vs debug -- build the Visual F# IDE Tools in Debug configuration (see below)
111101
build.cmd vs test -- build Visual F# IDE Tools, run all tests (see below)
112102

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

105+
106+
Note on Debug vs Release:``Release`` Configuration has a degraded debugging experience, so if you want to test a change locally, it is recommended to do it in the``Debug`` configuration. For more information seehttps://github.com/Microsoft/visualfsharp/issues/2771 andhttps://github.com/Microsoft/visualfsharp/pull/2773.
107+
115108
Note: if you face this error[#2351](https://github.com/Microsoft/visualfsharp/issues/2351):
116109

117110
> 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".
@@ -121,7 +114,7 @@ Or hard crash on launch ("Unknown Error"), delete these folders:
121114
*`%localappdata%\Microsoft\VisualStudio\15.0_(some number here)FSharpDev`
122115
*`%localappdata%\Microsoft\VisualStudio\15.0_(some number here)`
123116

124-
##[Optional] Install the Visual F# IDE Tools (Windows Only)
117+
####[Optional] Install the Visual F# IDE Tools (Windows Only)
125118

126119
At time of writing, the Visual F# IDE Tools can only be installed into the latest Visual Studio 2017 RC releases.
127120
The new builds of the Visual F# IDE Tools can no longer be installed into Visual Studio 2015.
@@ -143,21 +136,21 @@ For **Release**, uninstall then reinstall:
143136

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

146-
###[Optional] F5 testing of local changes
139+
####[Optional] F5 testing of local changes
147140

148141
To test your changes locally_without_ overwriting your default installed F# tools, set the`VisualFSharp\Vsix\VisualFSharpOpenSource`
149142
project as the startup project. When you hit F5 a new instance of Visual Studio will be started in the`FSharpDev` hive with your
150143
changes, but the root (default) hive will remain untouched.
151144

152-
###[Optional] Rapid deployment of incremental changes to Visual F# IDE Tools components
145+
####[Optional] Rapid deployment of incremental changes to Visual F# IDE Tools components
153146

154147
For the brave, you can rapidly deploy incrementally updated versions of Visual F# IDE Tool components such as``FSHarp.Editor.dll`` by copying them directly into the extension directory in your user AppData folder:
155148

156149
xcopy /y debug\net40\bin\FSharp.* "%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\15.0_7c5620b7FSharpDev\Extensions\Microsoft.VisualFSharpTools\Visual F# Tools\15.4.1.9055"
157150

158151
This gives a much tighter inner development loop than uninstalling/reinstalling the VSIX, as you do not have to restart VIsual Studio. Caveat emptor.
159152

160-
###[Optional] Clobber the F# SDK on the machine
153+
####[Optional] Clobber the F# SDK on the machine
161154

162155
**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.**
163156

@@ -170,7 +163,44 @@ For **Release**:
170163
vsintegration\update-vsintegration.cmd release
171164

172165

173-
##Resources
166+
#Notes
167+
168+
####Windows: Links to Additional frameworks
169+
170+
-[Git for windows](http://msysgit.github.io/)
171+
-[.NET 3.5](http://www.microsoft.com/en-us/download/details.aspx?id=21)
172+
-[.NET 4.5](http://www.microsoft.com/en-us/download/details.aspx?id=30653)
173+
-[.NET 4.5.1](http://www.microsoft.com/en-us/download/details.aspx?id=40779)
174+
-[.NET 4.6](http://www.microsoft.com/en-us/download/details.aspx?id=48137)
175+
-[MSBuild 12.0](http://www.microsoft.com/en-us/download/details.aspx?id=40760)
176+
-[Windows 7 SDK](http://www.microsoft.com/en-us/download/details.aspx?id=8279)
177+
-[Windows 8 SDK](http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx)
178+
-[Windows 8.1 SDK](http://msdn.microsoft.com/en-us/library/windows/desktop/bg162891.aspx)
179+
-[Windows 10 SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk)
180+
181+
182+
####Notes on the Windows .NET Framework build
183+
184+
1. The`update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
185+
1. The compiler binaries produced are "private" and strong-named signed with a test key.
186+
1. Some additional tools are required to build the compiler, notably`fslex.exe`,`fsyacc.exe`,`FSharp.PowerPack.Build.Tasks.dll`,`FsSrGen.exe`,`FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the`lkg` directory.
187+
1. The overall bootstrapping process executes as follows
188+
- We first need an existing F# compiler. We use the one in the`lkg` directory. Let's assume this compiler has an`FSharp.Core.dll` with version X.
189+
- We use this compiler to compile the source in this distribution, to produce a "proto" compiler, dropped to the`proto` directory. When run, this compiler still relies on`FSharp.Core.dll` with version X.
190+
- We use the proto compiler to compile the source for`FSharp.Core.dll` in this distribution.
191+
- We use the proto compiler to compile the source for`FSharp.Compiler.dll`,`fsc.exe`,`fsi.exe`, and other binaries found in this distribution.
192+
193+
####Configuring proxy server
194+
195+
If you are behind a proxy server, NuGet client tool must be configured to use it:
196+
197+
.nuget\nuget.exe config -set http_proxy=proxy.domain.com:8080 -ConfigFile .nuget\NuGet.Config
198+
.nuget\nuget.exe config -set http_proxy.user=user_name -ConfigFile .nuget\NuGet.Config
199+
.nuget\nuget.exe config -set http_proxy.password=user_password -ConfigFile .nuget\NuGet.Config
200+
201+
Where you should set proper proxy address, user name and password.
202+
203+
####Resources
174204

175205
The primary technical guide to the core compiler code is[The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html). Please read and contribute to that guide.
176206

‎FSharp.sln‎

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio14
4-
VisualStudioVersion =14.0.25420.1
3+
# Visual Studio15
4+
VisualStudioVersion =15.0.26403.7
55
MinimumVisualStudioVersion =10.0.40219.1
66
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") ="FSharp.Compiler","src\fsharp\FSharp.Compiler\FSharp.Compiler.fsproj","{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
77
EndProject
@@ -127,17 +127,18 @@ Global
127127
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|Any CPU.Build.0=Release|Any CPU
128128
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|x86.ActiveCfg=Release|Any CPU
129129
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|x86.Build.0=Release|Any CPU
130-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.ActiveCfg=Debug|x86
131-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.Build.0=Debug|x86
132-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.ActiveCfg=Debug|x86
133-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.Build.0=Debug|x86
134-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.ActiveCfg=Proto|x86
135-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.ActiveCfg=Proto|x86
136-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.Build.0=Proto|x86
137-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.ActiveCfg=Release|x86
138-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.Build.0=Release|x86
139-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.ActiveCfg=Release|x86
140-
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.Build.0=Release|x86
130+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.ActiveCfg=Debug|Any CPU
131+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.Build.0=Debug|Any CPU
132+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.ActiveCfg=Debug|Any CPU
133+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.Build.0=Debug|Any CPU
134+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.ActiveCfg=Proto|Any CPU
135+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.Build.0=Proto|Any CPU
136+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.ActiveCfg=Proto|Any CPU
137+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.Build.0=Proto|Any CPU
138+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.ActiveCfg=Release|Any CPU
139+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.Build.0=Release|Any CPU
140+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.ActiveCfg=Release|Any CPU
141+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.Build.0=Release|Any CPU
141142
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|Any CPU.ActiveCfg=Debug|Any CPU
142143
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|Any CPU.Build.0=Debug|Any CPU
143144
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|x86.ActiveCfg=Debug|Any CPU

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp