Skip to content

Commit

Permalink
Merge branch 'fsharp4' of http://github.com/Microsoft/visualfsharp in…
Browse files Browse the repository at this point in the history
…to fix-123
  • Loading branch information
dsyme committed Feb 13, 2015
2 parents 95cc10d + ac85db7 commit cec8ada
Show file tree
Hide file tree
Showing 193 changed files with 13,994 additions and 93,716 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ aclocal.m4
src/*.userprefs
src/fsharp/FSStrings.resources
lkg
pack
packages
src/fsharp/FSharp.Build/*.resx
src/fsharp/FSharp.Build-proto/*.resx
src/fsharp/FSharp.Build-proto/*.resources
Expand All @@ -30,6 +30,8 @@ src/fsharp/FSharp.Compiler/*.userprefs
src/*.log
Debug
Release
vsdebug
vsrelease
Proto
.libs
Makefile
Expand Down Expand Up @@ -99,3 +101,4 @@ tests/fsharpqa/Source/CodeGen/EmittedIL/ComputationExpressions/ComputationExprLi
*.log
*.jrs
*.chk
*.bak
137 changes: 74 additions & 63 deletions DEVGUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,29 @@ To get a free F# environment, go to [fsharp.org](http://fsharp.org/use/windows).
**Questions?** If you have questions about the source code, please ask in the issues and discussion forums.

## 0. A Shortcut to Build and Smoke Test

You can build a subset of functionality (including bootstrapped compiler and library) and run a very
small number of 'smoke' tests using the script used by continuous integration:

.\appveyor-build.cmd

See the script for what this does. After you do this, you can do further testing, see [TESTGUIDE.md](TESTGUIDE.md).


## 1. Building a Proto Compiler

The compiler is compiled as a set of .NET 4.0 components using a bootstrap process. This uses the Last Known Good (LKG) compiler to build.
Note that you need the .NET framework 3.5 installed on your machine in order to complete this step.

```
gacutil /i lkg\FSharp-2.0.50726.900\bin\FSharp.Core.dll
msbuild src\fsharp-proto-build.proj
```
msbuild src\fsharp-proto-build.proj

## 2. Building an F# (Debug) library and compiler

This uses the proto compiler to build `FSharp.Core.dll`, `FSharp.Compiler.dll`, `fsc.exe`, and `fsi.exe`.

```
msbuild src/fsharp-library-build.proj
msbuild src/fsharp-compiler-build.proj
```
msbuild src/fsharp-library-build.proj
msbuild src/fsharp-compiler-build.proj

You can now use the updated F# compiler in `debug\net40\bin\fsc.exe` and F# Interactive in `debug\net40\bin\fsi.exe` to develop and test basic language and tool features.

Expand All @@ -41,75 +46,81 @@ See [TESTGUIDE.md](TESTGUIDE.md) for full details on how to run tests.

Prior to a **Debug** test run, you need to complete **all** of these steps:

```
msbuild src/fsharp-library-build.proj
msbuild src/fsharp-compiler-build.proj
msbuild src/fsharp-typeproviders-build.proj
msbuild src/fsharp-compiler-unittests-build.proj
msbuild src/fsharp-library-build.proj /p:TargetFramework=net20
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable47
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable7
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable78
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable259
msbuild src/fsharp-library-unittests-build.proj
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259
src\update.cmd debug -ngen
tests\BuildTestTools.cmd debug
```
msbuild src/fsharp-library-build.proj
msbuild src/fsharp-compiler-build.proj
msbuild src/fsharp-typeproviders-build.proj
msbuild src/fsharp-compiler-unittests-build.proj
msbuild src/fsharp-library-build.proj /p:TargetFramework=net20
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable47
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable7
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable78
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable259
msbuild src/fsharp-library-unittests-build.proj
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259
src\update.cmd debug -ngen
tests\BuildTestTools.cmd debug


[Optional] If testing the Visual Studio bits (see below) you will also need:

```
msbuild vsintegration\fsharp-vsintegration-build.proj
msbuild vsintegration\fsharp-vsintegration-unittests-build.proj
```
msbuild vsintegration\fsharp-vsintegration-build.proj
msbuild vsintegration\fsharp-vsintegration-unittests-build.proj

Prior to a **Release** test run, you need to do **all** of these:

```
msbuild src/fsharp-library-build.proj /p:Configuration=Release
msbuild src/fsharp-compiler-build.proj /p:Configuration=Release
msbuild src/fsharp-typeproviders-build.proj /p:Configuration=Release
msbuild src/fsharp-compiler-unittests-build.proj /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
src\update.cmd release -ngen
tests\BuildTestTools.cmd release
```
msbuild src/fsharp-library-build.proj /p:Configuration=Release
msbuild src/fsharp-compiler-build.proj /p:Configuration=Release
msbuild src/fsharp-typeproviders-build.proj /p:Configuration=Release
msbuild src/fsharp-compiler-unittests-build.proj /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
src\update.cmd release -ngen
tests\BuildTestTools.cmd release


[Optional] If testing the Visual F# IDE Tools (see below) you will also need:

```
msbuild vsintegration\fsharp-vsintegration-build.proj /p:Configuration=Release
msbuild vsintegration\fsharp-vsintegration-unittests-build.proj /p:Configuration=Release
```
msbuild vsintegration\fsharp-vsintegration-build.proj /p:Configuration=Release
msbuild vsintegration\fsharp-vsintegration-unittests-build.proj /p:Configuration=Release

## 4. [Optional] Install the Visual F# IDE Tools and Clobber the F# 4.0 SDK on the machine

NOTE: Step #2 will install a VSIX extension into Visual Studio 2015 that changes the Visual F# IDE Tools
components installed into Visual Studio 2015. You can revert this step by disabling or uninstalling the addin.

NOTE: Step #3 will clobber the machine-wide installed F# 4.0 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 2015 is currently the
only way to revert this step.

NOTE: After you complete the install, the FSharp.Core referenced by your projects will not be updated. If you want to make
a project that references your updated FSharp.Core, you must explicitly change the ``TargetFSharpCoreVersion`` in the .fsproj
file to ``4.4.0.5099`` (or a corresponding portable version number with suffix ``5099``).

For debug:

## 4. [Optional] Build and Install the Visual F# IDE Tools
1. Ensure that the VSIX package is uninstalled. In VS, select Tools/Extensions and Updates and if the package `VisualStudio.FSharp.EnableOpenSource` is installed, select Uninstall
1. Run ``debug\net40\bin\EnableOpenSource.vsix``
1. Run ``vsintegration\update-vsintegration.cmd debug`` (clobbers the installed F# 4.0 SDK)

To build the VS components:
For release:

```
msbuild vsintegration\fsharp-vsintegration-build.proj
```
1. Ensure that the VSIX package is uninstalled. In VS, select Tools/Extensions and Updates and if the package `VisualStudio.FSharp.EnableOpenSource` is installed, select Uninstall
1. Run ``release\net40\bin\EnableOpenSource.vsix``
1. Run ``vsintegration\update-vsintegration.cmd release`` (clobbers the installed F# 4.0 SDK)

To install the VS components:
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
- If the package `VisualStudio.FSharp.EnableOpenSource` is installed, select Uninstall
1. Run ```debug\net40\bin\EnableOpenSource.vsix```
1. Restart Visual Studio, it should now be running your freshly-built Visual F# IDE Tools.

### Notes on the build

Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[![Issue Stats](http://issuestats.com/github/Microsoft/visualfsharp/badge/pr)](http://issuestats.com/github/microsoft/visualfsharp)
[![Issue Stats](http://issuestats.com/github/Microsoft/visualfsharp/badge/issue)](http://issuestats.com/github/microsoft/visualfsharp)
[![Build status](https://img.shields.io/appveyor/ci/KevinRansom/visualfsharp-radou/fsharp4.svg)](https://ci.appveyor.com/project/KevinRansom/visualfsharp-radou/branch/fsharp4)

#Visual F# Tools

Expand Down Expand Up @@ -39,4 +40,4 @@ Although the primary focus of this repo is F# for Windows and the Visual Studio

###Get In Touch

Keep up with the Visual F# Team and the development of the Visual F# Tools by following us [@VisualFSharp](https://twitter.com/VisualFSharp) or subscribing to our [team blog](http://blogs.msdn.com/b/fsharpteam/).
Keep up with the Visual F# Team and the development of the Visual F# Tools by following us [@VisualFSharp](https://twitter.com/VisualFSharp) or subscribing to our [team blog](http://blogs.msdn.com/b/fsharpteam/).
3 changes: 1 addition & 2 deletions TESTGUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@ The test cases for this suite reside next to the Visual F# Tools code, at `vsint
In order to run all of the tests, you will need to install

* [Perl](http://www.perl.org/get.html) (ActiveState Perl 5.16.3 is known to work fine)
* [NUnit](http://nunit.org/?p=download) (2.6.3 is known to work fine)

Perl and NUnit must be included in the `%PATH%` for the below steps to work. It is also recommended that you run tests from an elevated command prompt, as there are a couple of test cases which modify the GAC, and this requires administrative privileges.
Perl must be included in the `%PATH%` for the below steps to work. It is also recommended that you run tests from an elevated command prompt, as there are a couple of test cases which modify the GAC, and this requires administrative privileges.

Before running tests, make sure you have successfully built all required projects as specified in the 'Prepare For Tests' section of the [DEVGUIDE](DEVGUIDE.md).

Expand Down
Loading

0 comments on commit cec8ada

Please sign in to comment.