Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge from master #13

Merged
merged 85 commits into from Nov 27, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
ce83658
Change the way we generate nupkg files (#1721)
KevinRansom Nov 9, 2016
7ddf2e5
remove a directory and a file (#1722)
dsyme Nov 9, 2016
0e40f7d
test fixes (#1729)
dsyme Nov 10, 2016
7f86dc7
Update build.cmd (#1730)
dsyme Nov 10, 2016
dedf4f8
test cleanup
dsyme Nov 11, 2016
70f3e6a
test cleanup
dsyme Nov 11, 2016
1a8339f
code cleanup
dsyme Nov 11, 2016
9e8bd80
Rename tests/Upload-Results.ps1 to Upload-Results.ps1
dsyme Nov 11, 2016
99021e8
test cleanup
dsyme Nov 11, 2016
30bb033
remove FSHARP_CORE_4_5
dsyme Nov 11, 2016
558805a
test cleanup
dsyme Nov 11, 2016
20eaba5
remove resident compiler (unused for a long time)
dsyme Nov 11, 2016
ff62b0b
fix build
dsyme Nov 12, 2016
500229b
remove resx arguments processing and System.Windows.Forms dependency
dsyme Nov 12, 2016
f82f527
Update coreclr LKG to alpha-161111 (#1734)
KevinRansom Nov 12, 2016
d0a1356
Use dotnet publish to deploy fsharp.core.unittests for coreclr (#1733)
KevinRansom Nov 12, 2016
bfbf8b6
Build nupkg to artifacts directory (#1736)
KevinRansom Nov 13, 2016
d1891be
Add nuget package creation for fsharp assemblies (#1737)
KevinRansom Nov 13, 2016
9967c1b
remove file copy hack from fsharp.core.unit tests (#1738)
KevinRansom Nov 14, 2016
8bd0d30
merge
dsyme Nov 14, 2016
3f6c106
fix test
dsyme Nov 14, 2016
95452c2
test updates
dsyme Nov 14, 2016
8174c85
test updates
dsyme Nov 14, 2016
4525ee5
remove resx arguments processing and System.Windows.Forms dependency
dsyme Nov 14, 2016
593e151
Merge branch 'test-fixes-2' of https://github.com/dsyme/visualfsharp …
dsyme Nov 14, 2016
7eb164d
fix tests
dsyme Nov 14, 2016
62fabb1
code cleanup
dsyme Nov 14, 2016
82f567e
code cleanup
dsyme Nov 14, 2016
aa0d768
fix tests
dsyme Nov 14, 2016
5f95b10
Add FSharp.sln
dsyme Nov 14, 2016
6ce962e
[WIP] test cleanup (#1732)
dsyme Nov 14, 2016
091fade
Make Async.AwaitHandle Timeout test more lenient.
kurtschelfthout Nov 14, 2016
ec9fb95
Merge pull request #1743 from kurtschelfthout/async-awaithandle-timeout
dsyme Nov 15, 2016
bca082a
Fix 1393 and simplify "fsharp" suite further (#1744)
dsyme Nov 16, 2016
34690eb
Fix 99: remove restriction on static linking (#1741)
dsyme Nov 16, 2016
b811e37
fsi updates for .net core andd test fixes
dsyme Nov 16, 2016
032f9c4
Use vssdk from nuget (#1748)
KevinRansom Nov 16, 2016
1f3a2bc
Fix deploy extension (#1751)
KevinRansom Nov 16, 2016
e37ea23
updates
dsyme Nov 16, 2016
558e47e
updates
dsyme Nov 17, 2016
a7e398b
fix scripts
dsyme Nov 17, 2016
d59c1f4
factor in fsi changes from FCS
dsyme Nov 17, 2016
c03f13e
fix nunit
dsyme Nov 17, 2016
ab106fc
fix baselines removing printing of polymorphic values
dsyme Nov 17, 2016
e3af0ea
fix print length on coreclr
dsyme Nov 17, 2016
5e1284e
add basic testing for fsharp suite coreclr
dsyme Nov 17, 2016
9bcfe0b
Minor Build Configuration Improvements (#1760)
cloudRoutine Nov 17, 2016
6c3db89
fix tests
dsyme Nov 17, 2016
7ad98ac
fix strange deletion during build
dsyme Nov 17, 2016
12eb574
add new project file
dsyme Nov 17, 2016
551a7a0
Add Original file metadata when building assemblies. (#1773)
KevinRansom Nov 18, 2016
9379e75
fix test
dsyme Nov 18, 2016
f31f26f
Merge pull request #1750 from dsyme/fsi-4
dsyme Nov 18, 2016
384451e
Try to reproduce #1749 (#1786)
forki Nov 21, 2016
c1ea283
fix 1775 (#1793)
dsyme Nov 21, 2016
9367586
Don't append Module for types with arguments. (#1772)
kurtschelfthout Nov 21, 2016
7cb0929
Update desktop components to use the latest published System.ValueTup…
KevinRansom Nov 22, 2016
bfd9bc6
Make async test less flakey. (#1794)
kurtschelfthout Nov 22, 2016
234ebff
Fix 1749 (#1795)
dsyme Nov 22, 2016
dd9ac53
add FSHarp.Compiler.Interactive.Settings as build dependency in VS
dsyme Nov 22, 2016
2d919b7
fix paths
dsyme Nov 22, 2016
413bc7a
add dependencies in VisualFSharp.sln
dsyme Nov 22, 2016
a0db991
Improve compiler's type searching logic (#1792)
dsyme Nov 22, 2016
de77efc
Update DEVGUIDE.md
dsyme Nov 23, 2016
8d88f89
Update DEVGUIDE.md
dsyme Nov 23, 2016
60fd445
Fix 1805,1807 (#1816)
dsyme Nov 23, 2016
66c3343
add F5 instructions (#1823)
brettfo Nov 23, 2016
820af62
Fix some underlying causes of long UI blocks in new LS implementation…
dsyme Nov 23, 2016
3fbc133
update project options cache when files are added/removed (#1813)
brettfo Nov 23, 2016
adff559
Fix [<RequireQualifiedAccess>] on a DU shadows types in the same modu…
forki Nov 24, 2016
41cc6af
Fixing #1644 (#1818)
forki Nov 24, 2016
bfe4086
Fix colorization speed in large files (#1829)
dsyme Nov 24, 2016
74c9869
fixes for type providers (#1831)
dsyme Nov 24, 2016
8e0e0da
CommentUncommentService (#1832)
vasily-kirichenko Nov 24, 2016
a6e900e
Don't suggest types that are not accessible (#1552)
forki Nov 24, 2016
2f5851a
Implement RFC fs-1025: Improve record inference. (#1771)
kurtschelfthout Nov 25, 2016
403fc0c
Add type info to error - references #1574 (#1834)
forki Nov 25, 2016
beef089
Modify build to include fsharp compiler dependencies in vsix'. Enabl…
KevinRansom Nov 25, 2016
5b105dc
Fix GoTo Definition issues (#1836)
dsyme Nov 26, 2016
7752a08
fix assert on negative index
Nov 26, 2016
d03cca8
Update TESTGUIDE.md (#1848)
kurtschelfthout Nov 26, 2016
4506180
colorize types at definition and ctor positions (#1841)
vasily-kirichenko Nov 27, 2016
66a5f53
Fix for missing IntelliSense after type constraint error (#1568)
liboz Nov 27, 2016
f67db1f
Implement FSharpQuickInfoProvider (by @OmarTawfik) (#1849)
vasily-kirichenko Nov 27, 2016
22ca784
remove tokenizer cache from CommonHelpers.getColorizationData (#1859)
vasily-kirichenko Nov 27, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -47,6 +47,7 @@
/vsintegration/src/unittests/Unittests.fsi
/tests/*FSharp_Failures.env
/tests/*FSharp_Failures.lst
/tests/fsharpqa/testenv/bin/
/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.dll
/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.pdb
/tests/Xnet40-fsharpqa-suite-failures.log.*
Expand Down Expand Up @@ -104,5 +105,5 @@ tests/fsharp/typecheck/sigs/neg94-pre.dll
times
/tests/fsharpqa/testenv/bin/System.ValueTuple.dll
source_link.json
/.vs
.vs/
/VSRelease/net40/bin
9 changes: 5 additions & 4 deletions .nuget/NuGet.Config
Expand Up @@ -7,12 +7,13 @@

<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear />
<add key="myget.org fsharp-daily" value="https://www.myget.org/F/fsharp-daily/api/v3/index.json" />
<add key="myget.org fsharp-daily" value="https://www.myget.org/F/fsharp-daily/api/v3/index.json" />
<add key="myget.org roslyn-master-nightly" value="https://dotnet.myget.org/F/roslyn-master-nightly/api/v3/index.json" />
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="myget.org dotnet-buildtools" value="https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
<add key="myget.org roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
<add key="myget.org dotnet-buildtools" value="https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
<add key="myget.org roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="vctools" value="https://vcppdogfooding.azurewebsites.net/nuget/" />
</packageSources>
<add key="artifacts" value="../artifacts" />
</packageSources>
</configuration>
89 changes: 56 additions & 33 deletions DEVGUIDE.md
Expand Up @@ -55,7 +55,7 @@ There are various qualifiers:

build.cmd net40 -- build .NET Framework compiler (the default)
build.cmd coreclr -- build .NET Core compiler
build.cmd vs -- build the Visual F# IDE Tools
build.cmd vs -- build the Visual F# IDE Tools (see below)
build.cmd pcls -- build the PCL FSharp.Core libraries
build.cmd all -- build all

Expand All @@ -64,52 +64,86 @@ There are various qualifiers:
build.cmd test -- build default targets, run suitable tests
build.cmd net40 test -- build net40, run suitable tests
build.cmd coreclr test -- build coreclr, run suitable tests
build.cmd vs test -- build Visual F# IDE Tools, run all tests
build.cmd vs test -- build Visual F# IDE Tools, run all tests (see below)
build.cmd all test -- build all, run all tests

build.cmd test-smoke -- build, run smoke tests
build.cmd test-net40-fsharp -- build, run tests\fsharp suite for .NET Framework
build.cmd test-net40-fsharpqa -- build, run tests\fsharpqa suite for .NET Framework

**Notes**
To build and test Visual F# IDE Tools, you must use [Visual Studio "vNext" (aka "Dev15")](https://www.visualstudio.com/en-us/downloads/visual-studio-next-downloads-vs.aspx). This is the one after Visual Studio 2015 (aka "Dev 14"). You must also install Visual Studio SDK (also called _Visual Studio Extensibility SDK_ on the Visual Studio installer) before building Visual F# IDE Tools.
Please ensure that the Visual Studio SDK version is matched with your current Visual Studio to ensure successful builds. For example: Visual Studio 2015 Update 1 requires Visual Studio 2015 SDK Update 1. Any installation of Visual Studio 2015 and later provides Visual Studio SDK as part of the installation of Visual Studio 2015 as feature installation.

After you build the first time you can open and use this solution:

.\VisualFSharp.sln
.\FSharp.sln

or just build it directly:

msbuild VisualFSharp.sln
msbuild FSharp.sln

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

### Notes on the .NET Framework build

1. The `update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
1. The compiler binaries produced are "private" and strong-named signed with a test key.
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.
1. The overall bootstrapping process executes as follows
- 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.
- 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.
- We use the proto compiler to compile the source for `FSharp.Core.dll` in this distribution.
- We use the proto compiler to compile the source for `FSharp.Compiler.dll`, `fsc.exe`, `fsi.exe`, and other binaries found in this distribution.



# The Visual F# IDE Tools (Windows Only)

To build and test Visual F# IDE Tools, you must use [Visual Studio "vNext" (aka "Dev15")](https://www.visualstudio.com/en-us/downloads/visual-studio-next-downloads-vs.aspx). This is the one after Visual Studio 2015 (aka "Dev 14"). You must also install Visual Studio SDK (also called _Visual Studio Extensibility SDK_ on the Visual Studio installer) before building Visual F# IDE Tools.
Please ensure that the Visual Studio SDK version is matched with your current Visual Studio to ensure successful builds. For example: Visual Studio 2015 Update 1 requires Visual Studio 2015 SDK Update 1. Any installation of Visual Studio 2015 and later provides Visual Studio SDK as part of the installation of Visual Studio 2015 as feature installation.

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

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

Building ``VisualFSharp.sln`` builds _nearly_ everything. However building portable profiles of
FSharp.Core.dll is not included. If you are just developing the core compiler, library
and Visual F# Tools then building the solution will be enough.

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

At time of writing, the Visual F# IDE Tools can only be installed into Visual Studio "Next" (aka "Dev15") releases.
At time of writing, the Visual F# IDE Tools can only be installed into Visual Studio "Next" releases.
The new builds of the Visual F# IDE Tools can no longer be installed into Visual Studio 2015.

You can install VIsual Studio "Next (aka "Dev15") from https://www.visualstudio.com/en-us/downloads/visual-studio-next-downloads-vs.aspx.
You can install Visual Studio "Next" from https://www.visualstudio.com/en-us/downloads/visual-studio-next-downloads-vs.aspx.

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

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

1. Ensure that the VSIX package is uninstalled. In VS, select Tools/Extensions and Updates and if the package `Visual F# Tools` is installed, select Uninstall
1. Run ``debug\net40\bin\VisualFSharpVsix.vsix``
VSIXInstaller.exe /a /u:"VisualFSharp"
VSIXInstaller.exe /a debug\net40\bin\VisualFSharpFull.vsix

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

VSIXInstaller.exe /a /u:"VisualFSharp"
VSIXInstaller.exe /a release\net40\bin\VisualFSharpFull.vsix

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

1. Ensure that the VSIX package is uninstalled. In VS, select Tools/Extensions and Updates and if the package `Visual F# Tools` is installed, select Uninstall
1. Run ``release\net40\bin\VisualFSharpVsix.vsix``
### [Optional] F5 testing of local changes

Restart Visual Studio, it should now be running your freshly-built Visual F# IDE Tools with updated F# Interactive.
To test your changes locally _without_ overwriting your default installed F# tools, set the `VisualFSharp\Vsix\VisualFSharpOpenSource`
project as the startup project. When you hit F5 a new instance of Visual Studio will be started in the `FSharpDev` hive with your
changes, but the root (default) hive will remain untouched.

### 5. [Optional] Clobber the F# SDK on the machine
### [Optional] Rapid deployment of incremental changes to Visual F# IDE Tools components

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:

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

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

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

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

Expand All @@ -121,17 +155,6 @@ For **Release**:

1. Run ``vsintegration\update-vsintegration.cmd release`` (clobbers the installed F# SDK)

### Notes on the .NET Framework build

1. The `update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
1. The compiler binaries produced are "private" and strong-named signed with a test key.
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.
1. The overall bootstrapping process executes as follows
- 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.
- 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.
- We use the proto compiler to compile the source for `FSharp.Core.dll` in this distribution.
- We use the proto compiler to compile the source for `FSharp.Compiler.dll`, `fsc.exe`, `fsi.exe`, and other binaries found in this distribution.




Expand Down