Skip to content

Commit 3b41be5

Browse files
authored
Merge pull request #848 from dsyme/i5
Integrate visualfsharp master
2 parents f511135 + 4265b15 commit 3b41be5

File tree

95 files changed

+4214
-1802
lines changed

Some content is hidden

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

95 files changed

+4214
-1802
lines changed

.gitattributes

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,7 @@
2121
*.rtf diff=astextplain
2222
*.RTF diff=astextplain
2323

24-
install-sh text eol=lf
25-
*.in text eol=lf
26-
*.ac text eol=lf
2724
*.sh text eol=lf
28-
autogen.sh text eol=lf
29-
launcher.in text eol=lf
30-
config.make.in text eol=lf
3125
targets.make text eol=lf
32-
configure.ac text eol=lf
33-
Makefile.in text eol=lf
3426

3527
*.bsl linguist-vendored=true

.gitignore

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
/packages
44
/Tools
55

6+
/tests/scripts/current
7+
/release
8+
/debug
9+
/Proto
10+
611
# Patches that may have been generated by scripts.
712
# (These aren't generally useful to commit directly; if anything, they should be applied.)
813
scripts/*.patch
@@ -101,10 +106,7 @@ Proto
101106
sign_temp
102107
.libs
103108
configure
104-
mono/launcher
105-
autom4te.cache
106109
config.log
107-
mono/config.make
108110
config.status
109111
src/fsharp/FSharp.Compiler/illex.fs
110112
src/fsharp/FSharp.Compiler/ilpars.fs
@@ -228,3 +230,5 @@ lib/netcore/fsc/bin/
228230
/tests/fcs/
229231
/fcs/.paket/Paket.Restore.targets
230232
msbuild.binlog
233+
/fcs/FSharp.Compiler.Service.netstandard/*.fs
234+
/fcs/FSharp.Compiler.Service.netstandard/*.fsi

DEVGUIDE.md

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@ Follow the instructions below to build and develop the F# Compiler, Core Library
1212

1313
Install
1414

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) or Visual Studio 2013 (or later)
15+
- [.NET 4.6](https://www.microsoft.com/en-gb/download/details.aspx?id=48130)
1716

1817
**NOTE on Windows:**
19-
1. It is recommended to run the build.cmd and the qualifiers below on a command prompt with path set to have the location of MSBuild. If we have Visual Studio, we can also run using `Developer Command Prompt for Visual Studio 20xx` (depends on Visual Studio version). This developer command prompt is easier to use than normal command prompt, because it already has the correct path of Visual Studio and .NET's tooling set for us to use (including MSBuild).
18+
1. It is recommended to run the build.cmd and the qualifiers below on a command prompt with path set to have the location of MSBuild. If you have Visual Studio, we can also run using `Developer Command Prompt for Visual Studio 20xx` (depends on Visual Studio version). This developer command prompt is easier to use than normal command prompt, because it already has the correct path of Visual Studio and .NET's tooling set for us to use (including MSBuild).
2019
2. The running command prompt must be run under Administrator right (`Run as Administrator`).
2120

2221
Before running the build scripts, ensure that you have cleaned up the visualfsharp repo by running this git command:
@@ -62,36 +61,55 @@ or just build it directly:
6261

6362
msbuild FSharp.sln
6463

65-
Building ``FSharp.sln`` builds nearly everything. However building portable profiles of
66-
FSharp.Core.dll is not included. If you are just developing the core compiler and library
67-
then building the solution will be enough.
64+
If you are just developing the core compiler and library then building ``FSharp.sln`` will be enough.
6865

6966
### Developing the F# Compiler (Linux)
7067

7168
For Linux/Mono, follow [these instructions](http://www.mono-project.com/docs/getting-started/install/linux/). Also you may need:
7269

73-
sudo apt-get install mono-complete autoconf libtool pkg-config make git automake
70+
sudo apt-get install mono-complete make git
7471

7572
Then:
7673

77-
./autoconf.sh --prefix /usr
7874
make
79-
make install
8075

81-
Full testing is not yet enabled on Linux, nor is a .NET Core build of the compiler.
76+
Then to replace your machine-wide installation:
8277

83-
You can alternatively use
78+
sudo make install
8479

85-
./build.sh
80+
Full testing is not yet enabled on Linux.
8681

8782
### Developing the F# Compiler (macOS)
8883

89-
Install Xamarin Studio, then
84+
Install XCode command line tools (or homebrew equivalents) and Mono or Visual Studio for Mac.
85+
86+
Then:
9087

91-
./autogen.sh --prefix=/Library/Frameworks/Mono.framework/Versions/Current/
9288
make
89+
90+
Then to replace your machine-wide installation:
91+
9392
sudo make install
9493

94+
Full testing is not yet enabled on macOS.
95+
96+
97+
### Developing the F# Compiler (Linux or macOS - .NET Core)
98+
99+
Install [the latest .NET SDK](https://www.microsoft.com/net/download/). Then use
100+
101+
src/buildfromsource.sh
102+
103+
Outputs are placed in
104+
105+
BuildFromSource/Debug/...
106+
BuildFromSource/Release/...
107+
108+
This uses an installed .NET SDK 2.0 to build the various duplicated project
109+
110+
Testing the .NET Core version of the F# compiler on mwcOS and Linux is TBD.
111+
112+
95113
### Developing the Visual F# IDE Tools (Windows Only)
96114

97115
To build and test Visual F# IDE Tools, install these requirements:
@@ -175,13 +193,7 @@ For **Release**:
175193
#### Windows: Links to Additional frameworks
176194

177195
- [Git for windows](http://msysgit.github.io/)
178-
- [.NET 3.5](http://www.microsoft.com/en-us/download/details.aspx?id=21)
179-
- [.NET 4.5](http://www.microsoft.com/en-us/download/details.aspx?id=30653)
180-
- [.NET 4.5.1](http://www.microsoft.com/en-us/download/details.aspx?id=40779)
181196
- [.NET 4.6](http://www.microsoft.com/en-us/download/details.aspx?id=48137)
182-
- [MSBuild 12.0](http://www.microsoft.com/en-us/download/details.aspx?id=40760)
183-
- [Windows 7 SDK](http://www.microsoft.com/en-us/download/details.aspx?id=8279)
184-
- [Windows 8 SDK](http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx)
185197
- [Windows 8.1 SDK](http://msdn.microsoft.com/en-us/library/windows/desktop/bg162891.aspx)
186198
- [Windows 10 SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk)
187199

PublishToBlob.proj

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,19 @@
1616
<Import Project="$(MSBuildThisFileDirectory)packages\$(FeedTasksPackage).$(FeedTasksPackageVersion)\build\$(FeedTasksPackage).targets" />
1717

1818
<ItemGroup>
19-
<NuGetPackages Include="$(MSBuildThisFileDirectory)artifacts\**\*.nupkg" />
20-
<OtherAssets Include="$(MSBuildThisFileDirectory)insertion\**" />
19+
<NuGetPackages Include="$(MSBuildThisFileDirectory)artifacts\Microsoft.FSharp.Compiler.*.nupkg" />
2120
</ItemGroup>
2221

2322
<Target Name="Build">
2423
<PushToBlobFeed ExpectedFeedUrl="$(ExpectedFeedUrl)"
2524
AccountKey="$(AccountKey)"
2625
ItemsToPush="@(NuGetPackages)"
27-
Overwrite="$(PublishOverwrite)" />
28-
<PushToBlobFeed ExpectedFeedUrl="$(ExpectedFeedUrl)"
29-
AccountKey="$(AccountKey)"
30-
ItemsToPush="@(OtherAssets)"
31-
PublishFlatContainer="true"
32-
Overwrite="$(PublishOverwrite)" />
26+
Overwrite="$(PublishOverwrite)"
27+
ManifestBranch="$(ManifestBranch)"
28+
ManifestBuildId="$(ManifestBuildId)"
29+
ManifestCommit="$(ManifestCommit)"
30+
ManifestName="fsharp"
31+
SkipCreateManifest="false" />
3332
</Target>
3433

3534
</Project>

build/targets/GitHash.props

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

fcs/FSharp.Compiler.Service.Tests.netcore/FSharp.Compiler.Service.Tests.netcore.fsproj

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>netcoreapp1.0</TargetFramework>
4-
<DefineConstants>$(DefineConstants);DOTNETCORE;FX_ATLEAST_45;FX_ATLEAST_PORTABLE;FX_NO_RUNTIMEENVIRONMENT;FX_RESHAPED_REFLECTION;TODO_REWORK_ASSEMBLY_LOAD;</DefineConstants>
3+
<TargetFramework>netcoreapp2.0</TargetFramework>
4+
<DefineConstants>$(DefineConstants);DOTNETCORE</DefineConstants>
5+
<DefineConstants>$(DefineConstants);FX_ATLEAST_45</DefineConstants>
6+
<DefineConstants>$(DefineConstants);FX_ATLEAST_PORTABLE</DefineConstants>
7+
<DefineConstants>$(DefineConstants);FX_NO_RUNTIMEENVIRONMENT</DefineConstants>
8+
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
9+
<DefineConstants>$(DefineConstants);NO_EXTENSIONTYPING</DefineConstants>
10+
<DefineConstants>$(DefineConstants);TODO_REWORK_ASSEMBLY_LOAD</DefineConstants>
511
<NoWarn>$(NoWarn);44;</NoWarn>
612
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
713
<DelaySign>true</DelaySign>
@@ -36,25 +42,21 @@
3642
<!--<Compile Include="../service/ProjectAnalysisTests.fs">
3743
<Link>ProjectAnalysisTests.fs</Link>
3844
</Compile>-->
45+
<Compile Include="../../tests/service/Program.fs">
46+
<Link>Program.fs</Link>
47+
</Compile>
3948
</ItemGroup>
4049
<ItemGroup>
4150
<ProjectReference Include="../FSharp.Compiler.Service.netstandard/FSharp.Compiler.Service.netstandard.fsproj" />
4251
</ItemGroup>
4352
<ItemGroup>
44-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
45-
<PackageReference Include="NUnit3TestAdapter" Version="3.8.0" />
46-
<PackageReference Include="NUnitLite" Version="3.6.1" />
47-
<PackageReference Include="NUnit" Version="3.6.1" />
48-
<PackageReference Include="FSharp.Core" Version="4.1.*" PrivateAssets="All" />
49-
<PackageReference Include="System.Runtime" Version="4.3.0" />
50-
<PackageReference Include="System.Reflection.Emit" Version="4.3.0" />
51-
<PackageReference Include="System.Reflection.Metadata" Version="1.4.1" />
52-
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" />
53-
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" />
54-
<PackageReference Include="Dotnet.ProjInfo" Version="0.5.0" />
53+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
54+
<PackageReference Include="NUnit" Version="3.9.0" />
55+
<PackageReference Include="NUnit3TestAdapter" Version="3.9.0" />
56+
<PackageReference Include="Dotnet.ProjInfo" Version="0.9.0" />
5557
</ItemGroup>
5658
<Target Name="PrecompileScript" BeforeTargets="BeforeBuild">
57-
<Exec Command="dotnet restore &quot;$(MSBuildProjectDirectory)/../../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard1.6/Sample_NETCoreSDK_FSharp_Library_netstandard1.6.fsproj&quot;" />
58-
<Exec Command="dotnet build &quot;$(MSBuildProjectDirectory)/../../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard1.6/Sample_NETCoreSDK_FSharp_Library_netstandard1.6.fsproj&quot;" />
59+
<Exec Command="dotnet restore &quot;$(MSBuildProjectDirectory)/../../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj&quot;" />
60+
<Exec Command="dotnet build &quot;$(MSBuildProjectDirectory)/../../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj&quot;" />
5961
</Target>
6062
</Project>

fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
<Compile Include="$(FSharpSourcesRoot)\..\tests\service\EditorTests.fs">
4747
<Link>EditorTests.fs</Link>
4848
</Compile>
49+
<Compile Include="$(FSharpSourcesRoot)\..\tests\service\Symbols.fs">
50+
<Link>Symbols.fs</Link>
51+
</Compile>
4952
<Compile Include="$(FSharpSourcesRoot)\..\tests\service\FileSystemTests.fs">
5053
<Link>FileSystemTests.fs</Link>
5154
</Compile>

fcs/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ which does things like:
6060
Yu can push the packages if you have permissions, either automatically using ``build Release`` or manually
6161

6262
set APIKEY=...
63-
.nuget\nuget.exe push Release\FSharp.Compiler.Service.18.0.1.nupkg %APIKEY% -Source https://nuget.org
64-
.nuget\nuget.exe push Release\FSharp.Compiler.Service.MSBuild.v12.18.0.1.nupkg %APIKEY% -Source https://nuget.org
65-
.nuget\nuget.exe push Release\FSharp.Compiler.Service.ProjectCracker.18.0.1.nupkg %APIKEY% -Source https://nuget.org
63+
.nuget\nuget.exe push Release\FSharp.Compiler.Service.19.0.1.nupkg %APIKEY% -Source https://nuget.org
64+
.nuget\nuget.exe push Release\FSharp.Compiler.Service.MSBuild.v12.19.0.1.nupkg %APIKEY% -Source https://nuget.org
65+
.nuget\nuget.exe push Release\FSharp.Compiler.Service.ProjectCracker.19.0.1.nupkg %APIKEY% -Source https://nuget.org
6666

6767

6868
### Use of Paket and FAKE

fcs/RELEASE_NOTES.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
#### 20.0.1
2+
* Integrate visualfsharp master
3+
4+
#### 19.0.1
5+
* Rename ``LogicalEnclosingEntity`` to ``ApparentEnclosingEntity`` for consistency int he F# codebase terminology.
6+
* Rename ``EnclosingEntity`` to ``DeclaringEntity``. In the case of extension properties, ``EnclosingEntity`` was incorrectly returning the logical enclosing entity (i.e. the type the property appears to extend), and in this case ``ApparentEnclosingEntity`` should be used instead.
7+
18
#### 18.0.1
29
* Integrate visualfsharp master
310

@@ -410,7 +417,7 @@
410417
* Return additional 'property' and 'event' methods for F#-defined types to regularize symbols (#108, #143)
411418
* Add IsPropertySetterMethod and IsPropertyGetterMethod which only return true for getter/setter methods, not properties. Deprecate IsSetterMethod and IsGetterMethod in favour of these.
412419
* Add IsEventAddMethod and IsEventRemoveMethod which return true for add/remove methods with an associated event
413-
* Change IsProperty and IsEvent to only return true for the symbols for properties and events, rather than the methods assocaited with these
420+
* Change IsProperty and IsEvent to only return true for the symbols for properties and events, rather than the methods associated with these
414421
* Fix value of Assembly for some symbols (e.g. property symbols)
415422

416423
#### 0.0.45 -

0 commit comments

Comments
 (0)