[Pkg-cli-apps-commits] [fsharp] 15/60: integrate updates from http://visualfsharp.codeplex.com master

Christopher Halse Rogers raof-guest at moszumanska.debian.org
Sun Sep 14 08:13:37 UTC 2014


This is an automated email from the git hooks/post-receive script.

raof-guest pushed a commit to branch master
in repository fsharp.

commit 5027aa5eb65163494ea3d6699356cef04cd6d4d9
Merge: 79256a0 d673d31
Author: F# Software Foundation <fsgit at fastmail.fm>
Date:   Thu Jul 17 19:41:26 2014 +0100

    integrate updates from http://visualfsharp.codeplex.com master

 CHANGES.txt                                        |    2 +-
 FSharp.Core.Nuget/FSharp.Core.Mono.Signed.nuspec   |   32 +-
 README.md                                          |   10 +-
 build.bat                                          |    8 +-
 config.make.in                                     |   24 +-
 src/FSharpSource.targets                           |   67 +-
 src/fsharp/FSharp.Build/FSharp.Build.fsproj        |    4 +
 src/fsharp/FSharp.Build/InternalsVisibleTo.fs      |    9 +
 .../FSharp.Compiler.Interactive.Settings.fsproj    |    4 +
 .../InternalsVisibleTo.fs                          |   10 +
 .../FSharp.Compiler.Server.Shared.fsproj           |    4 +
 .../InternalsVisibleTo.fs                          |   10 +
 src/fsharp/FSharp.Compiler/InternalsVisibleTo.fs   |   21 +-
 .../FSharp.Core.Unittests.fsproj                   |    3 +
 .../FSharp.Core.Unittests/SurfaceArea.4.0.dev10.fs | 2792 --------------------
 .../FSharp.Core.Unittests/SurfaceArea.4.0.fs       |    9 +-
 src/fsharp/FSharp.Core/FSharp.Core.fsproj          |    4 +-
 src/fsharp/FSharp.Core/string.fsi                  |   12 +-
 .../InternalsVisibleTo.fs                          |   22 +
 src/fsharp/Fsc/Fsc.fsproj                          |    1 +
 src/fsharp/Fsc/InternalsVisibleTo.fs               |    8 +
 src/fsharp/Makefile.in                             |   10 +-
 tests/config.bat                                   |   10 +-
 tests/fsharp/core/libtest/test.fsx                 |    3 +-
 .../ConsoleApplication1/portabletestentry.csproj   |   18 +-
 tests/fsharp/core/netcore/build.bat                |    6 -
 tests/fsharp/core/netcore/netcore259/build.bat     |   10 +
 tests/fsharp/core/netcore/netcore259/run.bat       |   23 +
 tests/fsharp/core/netcore/netcore7/build.bat       |   10 +
 tests/fsharp/core/netcore/{ => netcore7}/run.bat   |    4 +-
 tests/fsharp/core/netcore/netcore78/build.bat      |   10 +
 tests/fsharp/core/netcore/netcore78/run.bat        |   23 +
 .../netcoreautomationhelperlibrary.fsproj          |   27 +-
 .../netcorelibrary1/netcoretestinglibrary.fsproj   |   27 +-
 34 files changed, 328 insertions(+), 2909 deletions(-)

diff --cc CHANGES.txt
index cfd16bb,0000000..b6c5292
mode 100644,000000..100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,56 -1,0 +1,56 @@@
 +
 +3.1.1.20
 +  * Upstream fix:: #! treated as a comment when it is at the start of an fsharp file
 +  * Upstream fix visualfsharp.codeplex.com issue #78 - allow space characters in active pattern case identifiers
 +  * Upstream fix visualfsharp.codeplex.com issue #78 - Adjust parser to disallow vertical pipes in active pattern case identifiers. 
 +  * Upstream fix for visualfsharp.codeplex.com issue #69 - Invalid code generated when calling C# method with optional nullable args
 +  * Upstream fix for visualfsharp.codeplex.com issue #9 - XML doc comments on F# record type fields do not appear when accessing in C#
 +
 +3.1.1.19
 +  * Added files for the nuget packages
 +  
 +3.1.1.18
 +  * Do not install FSharp.Build.dll in the GAC. It is not in the GAC on Windows.
 +
 +3.1.1.17
 +  * Remove service components from FSharp.Compiler.dll since. All clients should now use FSharp.Compiler.Service.dll
 +
 +3.1.1.15
 +  * Upstream 2d8ebcd43: XmlDoc generation bugfix: remove duplicate namespaces
 +  * Upstream 3bd52625b: Address-of optimizations for better performance on structs
 +  * Upstream c46aa237a: Perf improvement for Seq.windowed  
 +  * Upstream 301a6f33: make it possible to set breakpoint inside quotation
 +  * FSharp.Core for portable profiles 7, 78, 259 if reference assemblies are present (delay-signed)
 +  
 +3.1.1.14
 +  * Change monotouch and monodroid FSharp.Core.dll to both use 2.3.98.1
 +  
 +3.1.1.12
 +  * Add build command "all-monotouch-monodroid"
 +
 +3.1.1.11
 +
 +  * F# Interactive now uses .NET 4.5 profile
 +  * Fix for performance regression in 3.1 with extension members
 +  * Add query support to FSharp.Core portable profiles
 +  * Fix problem with building portable libraries (https://github.com/fsharp/fsharp/issues/299)
 +
 +3.1.1.10
 +  * Include fixes from Microsoft included with Visual F# Tools 3.1.1
 +
 +3.1.1.7
 +  * Build back versions of FSharp.Core 2.3.0.0, 2.3.5.0, 4.3.0.0 to include code generation fix.
-   * Build Profile7 (portable-net45+sl5+win8) FSharp.Core
++  * Build Profile7 (portable47) FSharp.Core
 +
 +3.0.30
 +  * Partial fix for allowing F# 3.1 projects to compile using xbuild (also 
 +    requires xbuild fix)
 +
 +  * Remove a multitude of links in xbuild directories in favour of targets 
 +    files which include the canonical targets
 +
 +3.0.29
 +
 +  * Proper DESTDIR support (very useful for making custom deb/rpm packages)
 +
 +
diff --cc FSharp.Core.Nuget/FSharp.Core.Mono.Signed.nuspec
index 9762419,0000000..5e28c36
mode 100644,000000..100644
--- a/FSharp.Core.Nuget/FSharp.Core.Mono.Signed.nuspec
+++ b/FSharp.Core.Nuget/FSharp.Core.Mono.Signed.nuspec
@@@ -1,85 -1,0 +1,85 @@@
 +<?xml version="1.0" encoding="utf-8"?>
 +<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 +    <metadata>
 +        <id>FSharp.Core.Mono.Signed</id>
 +        <version>0.0.1</version>
 +        <title>FSharp.Core Mono delay signed</title>
 +        <authors>Microsoft Corporation,Dave Thomas</authors>
 +        <owners>F# Software Foundation</owners>
 +        <licenseUrl>https://github.com/fsharp/fsharp/blob/master/LICENSE</licenseUrl>
 +        <projectUrl>https://github.com/fsharp/fsharp</projectUrl>
 +        <iconUrl>http://fsharp.org/img/logo.png</iconUrl>
 +        <requireLicenseAcceptance>false</requireLicenseAcceptance>
 +        <description>Mono delay signed versions of:
 +.Net 2.0
 +.Net 4.0
 +.Net 4.5
 +Profile 7
 +Profile 47
 +MonoAndroid
 +MonoTouch
 +Profile 78
 +Profile 259
 +
 +</description>
 +        <summary>Provides Mono delay signed versions of FSharp.Core for multiple targets including desktop and portable.</summary>
 +        <tags>F#</tags>
 +    </metadata>
 +    <files>
 +
 +        <!-- .Net 2.0 -->
 +        <file src="..\lib\release\net20\FSharp.Core.dll" target="lib\net40\FSharp.Core.dll" />
 +        <file src="..\lib\release\net20\FSharp.Core.optdata" target="lib\net40\FSharp.Core.optdata" />
 +        <file src="..\lib\release\net20\FSharp.Core.sigdata" target="lib\net40\FSharp.Core.sigdata" />
 +        <file src="..\lib\release\net20\FSharp.Core.xml" target="lib\net40\FSharp.Core.xml" />
 +
 +        <!-- .Net 4.0 -->
 +        <file src="..\lib\release\FSharp.Core.dll" target="lib\net40\FSharp.Core.dll" />
 +        <file src="..\lib\release\FSharp.Core.optdata" target="lib\net40\FSharp.Core.optdata" />
 +        <file src="..\lib\release\FSharp.Core.sigdata" target="lib\net40\FSharp.Core.sigdata" />
 +        <file src="..\lib\release\FSharp.Core.xml" target="lib\net40\FSharp.Core.xml" />
 +
 +        <!-- .Net 4.5 -->
 +        <file src="..\lib\release\FSharp.Core.dll" target="lib\net45\FSharp.Core.dll" />
 +        <file src="..\lib\release\FSharp.Core.optdata" target="lib\net45\FSharp.Core.optdata" />
 +        <file src="..\lib\release\FSharp.Core.sigdata" target="lib\net45\FSharp.Core.sigdata" />
 +        <file src="..\lib\release\FSharp.Core.xml" target="lib\net45\FSharp.Core.xml" />
 +
 +        <!-- Profile 7 -->
-         <file src="..\lib\release\netcore7\FSharp.Core.dll" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
-         <file src="..\lib\release\netcore7\FSharp.Core.optdata" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
-         <file src="..\lib\release\netcore7\FSharp.Core.sigdata" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
-         <file src="..\lib\release\netcore7\FSharp.Core.xml" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
++        <file src="..\lib\release\portable7\FSharp.Core.dll" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
++        <file src="..\lib\release\portable7\FSharp.Core.optdata" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
++        <file src="..\lib\release\portable7\FSharp.Core.sigdata" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
++        <file src="..\lib\release\portable7\FSharp.Core.xml" target="lib\portable-net45+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
 +
 +        <!-- Profile 47-->
-         <file src="..\lib\release\portable-net45+sl5+win8\FSharp.Core.dll" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
-         <file src="..\lib\release\portable-net45+sl5+win8\FSharp.Core.optdata" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
-         <file src="..\lib\release\portable-net45+sl5+win8\FSharp.Core.sigdata" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
-         <file src="..\lib\release\portable-net45+sl5+win8\FSharp.Core.xml" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
++        <file src="..\lib\release\portable47\FSharp.Core.dll" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
++        <file src="..\lib\release\portable47\FSharp.Core.optdata" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
++        <file src="..\lib\release\portable47\FSharp.Core.sigdata" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
++        <file src="..\lib\release\portable47\FSharp.Core.xml" target="lib\portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
 +
 +        <!-- Android -->
 +        <file src="..\lib\release\monodroid\FSharp.Core.dll" target="lib\MonoAndroid\FSharp.Core.dll" />
 +        <file src="..\lib\release\monodroid\FSharp.Core.optdata" target="lib\MonoAndroid\FSharp.Core.optdata" />
 +        <file src="..\lib\release\monodroid\FSharp.Core.sigdata" target="lib\MonoAndroid\FSharp.Core.sigdata" />
 +        <file src="..\lib\release\monodroid\FSharp.Core.xml" target="lib\MonoAndroid\FSharp.Core.xml" />
 +
 +        <!-- MonoTouch -->
 +        <file src="..\lib\release\monotouch\FSharp.Core.dll" target="lib\MonoTouch\FSharp.Core.dll" />
 +        <file src="..\lib\release\monotouch\FSharp.Core.optdata" target="lib\MonoTouch\FSharp.Core.optdata" />
 +        <file src="..\lib\release\monotouch\FSharp.Core.sigdata" target="lib\MonoTouch\FSharp.Core.sigdata" />
 +        <file src="..\lib\release\monotouch\FSharp.Core.xml" target="lib\MonoTouch\FSharp.Core.xml" />
 +
 +        <!-- Profile 78 -->
-         <file src="..\lib\release\netcore78\FSharp.Core.dll" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
-         <file src="..\lib\release\netcore78\FSharp.Core.optdata" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
-         <file src="..\lib\release\netcore78\FSharp.Core.sigdata" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
-         <file src="..\lib\release\netcore78\FSharp.Core.xml" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
++        <file src="..\lib\release\portable78\FSharp.Core.dll" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
++        <file src="..\lib\release\portable78\FSharp.Core.optdata" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
++        <file src="..\lib\release\portable78\FSharp.Core.sigdata" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
++        <file src="..\lib\release\portable78\FSharp.Core.xml" target="lib\portable-net45+netcore45+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
 +
 +        <!-- Profile 259-->
-         <file src="..\lib\release\netcore259\FSharp.Core.dll" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
-         <file src="..\lib\release\netcore259\FSharp.Core.optdata" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
-         <file src="..\lib\release\netcore259\FSharp.Core.sigdata" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
-         <file src="..\lib\release\netcore259\FSharp.Core.xml" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
++        <file src="..\lib\release\portable259\FSharp.Core.dll" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.dll" />
++        <file src="..\lib\release\portable259\FSharp.Core.optdata" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.optdata" />
++        <file src="..\lib\release\portable259\FSharp.Core.sigdata" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.sigdata" />
++        <file src="..\lib\release\portable259\FSharp.Core.xml" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\FSharp.Core.xml" />
 +
 +    </files>
 +</package>
diff --cc README.md
index a638a16,0000000..02ca06a
mode 100644,000000..100644
--- a/README.md
+++ b/README.md
@@@ -1,244 -1,0 +1,244 @@@
 +## The Open Edition of the F# Compiler, Core Library & Tools
 +
 +The main purpose of this repository is to package the open editions of the F# compiler, core library 
 +and core tools for use across multiple platforms.  
 +
 +### Contributing to the F# Compiler, Core Library and Tools
 +
 +Most contributions to the F# compiler/library/tools go first via the  
 +repository at http://visualfsharp.codeplex.com.  This ensures that the main
 +packaging of F# on Windows (the Visual F# Tools) also includes any contributions that are made, and
 +ensures that the versions do not diverge.
 +
 +If you are using Windows, you should fork that repo and contribute directly there. Your contributions will 
 +then be merged into this repo.
 +
 +If you are using Linux or OSX, you can prepare your contributions by forking this repository (the code is 
 +essentially the same). This will give you access to the cross-platform testing 
 +available from this repo. At the moment the process is:
 +
 +1. Fork this repo.
 +2. Build and test using the subset of tests available in this repo. If you like, submit a PR to this repo in order to trigger an automatic Travis run, or set up a Travis hook in your fork.
 +3. Seek initial review by posting an issue in this repository or http://visualfsharp.codeplex.com. Make it clear you are working on Linux or OSX.
 +4. Cherry-pick your changes into a pull request for http://visualfsharp.codeplex.com and submit for final testing and clearance.
 +5. The change will then be merged into this repo at a later point.
 +
 +If you don't have access to Windows in order to run final tests at step 4. If you need help, email fsharp-opensource at googlegroups.com and ask to make a final test run on Windows.
 +
 +Contributions specifically related to the packaging of the Open Edition should be made here.
 +
 +
 +
 +## Status
 +
 +
 +The `master` branch is for the latest version of F# (currently F# 3.1).
 +
 +To bootstrap the compiler, binaries built from an earlier version of this project are used.
 +
 +This codebase uses the Apache 2.0 license.
 +
 +## Current Build Status
 +
 +Head (branch ``master``), Mono 3.x, OSX + some unit tests (Travis) [![Build Status](https://travis-ci.org/fsharp/fsharp.png?branch=master)](https://travis-ci.org/fsharp/fsharp/branches)
 +
 +F# 3.1 (branch ``fsharp_31``, Mono 3.x, OSX + some unit tests (Travis) [![Build Status](https://travis-ci.org/fsharp/fsharp.png?branch=fsharp_31)](https://travis-ci.org/fsharp/fsharp/branches)
 +
 +F# 3.0 (branch ``fsharp_30``), Mono 3.x, OSX + some unit tests (Travis) [![Build Status](https://travis-ci.org/fsharp/fsharp.png?branch=fsharp_30)](https://travis-ci.org/fsharp/fsharp/branches)
 +
 +Head (branch ``master``), Windows Server 2012 (Appveyor)  [![Build status](https://ci.appveyor.com/api/projects/status/7m5e2yr0snbbr7t9)](https://ci.appveyor.com/project/fsgit/fsharp)
 +
 +## Build Requirements
 +
 +Requires mono 3.0 or higher.
 +
 +OS X requires automake 2.69. To install from [homebrew](http://mxcl.github.com/homebrew):
 +```
 +brew install automake
 +```
 +
 +## How to Build
 +
 +### Linux and other Unix systems:
 +The usual:
 +```
 +./autogen.sh --prefix=/usr
 +make
 +sudo make install
 +```
 +By default that makes optimized binaries. To make debug, use ```make CONFIG=debug```
 +
 +
 +### OS X
 +
 +Use a prefix to your version of Mono:
 +```
 +./autogen.sh --prefix=/Library/Frameworks/Mono.framework/Versions/Current/
 +make
 +sudo make install
 +```
 +By default that makes optimized binaries. To make debug, use ```make CONFIG=debug```
 +
 +### Windows, using msbuild
 +
 +If you have only VS2012 or VS2013 installed, and not VS2010, you'll need to install the F# 2.0 Runtime (http://www.microsoft.com/en-us/download/details.aspx?id=13450).
 +
 +Build using:
 +```
 +build.bat
 +```
 +This build the proto compiler, then the library, then the final compiler.
 +
 +You can also build these independently using:
 +```
 +cd src
 +msbuild fsharp-proto-build.proj
 +ngen install ..\lib\proto\fsc-proto.exe 
 +msbuild fsharp-library-build.proj /p:Configuration=Release
 +msbuild fsharp-compiler-build.proj /p:Configuration=Release
 +```
 +
 +You can also build the FSharp.Core for .NET 2.0, Xamarin Android, Xamarin iOS, 
 +Portable Profile47 (net45+sl5+win8), XNA 4.0 for Xbox 360, and Silverlight 5.0 profiles:
 +```
 +msbuild fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Release
- msbuild fsharp-library-build.proj /p:TargetFramework=portable-net45+sl5+win8 /p:Configuration=Release
- msbuild fsharp-library-build.proj /p:TargetFramework=netcore7 /p:Configuration=Release
- msbuild fsharp-library-build.proj /p:TargetFramework=netcore78 /p:Configuration=Release
- msbuild fsharp-library-build.proj /p:TargetFramework=netcore259 /p:Configuration=Release
++msbuild fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
++msbuild fsharp-library-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
++msbuild fsharp-library-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
++msbuild fsharp-library-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
 +msbuild fsharp-library-build.proj /p:TargetFramework=sl5 /p:Configuration=Release
 +
 +msbuild fsharp-library-build.proj /p:TargetFramework=monodroid /p:Configuration=Release
 +msbuild fsharp-library-build.proj /p:TargetFramework=monotouch /p:Configuration=Release
 +msbuild fsharp-library-build.proj /p:TargetFramework=net40-xna40-xbox360 /p:Configuration=Release
 +```
 +You can also build the FSharp.Core and FSharp.Compiler.Silverlight.dll for Silverlight 5.0:
 +```
 +msbuild fsharp-library-build.proj /p:TargetFramework=sl5-compiler  /p:Configuration=Release
 +```
 +Change to ``` /p:Configuration=Debug``` for debug binaries.
 +
 +Add ``` /p:FSharpCoreBackVersion=3.0``` to build a back version of FSharp.Core.dll with a 
 +version number suitable for use when building libaries that have usable with both F# 3.0 and F# 3.1 libraries.
 +```
 +msbuild fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
 +msbuild fsharp-library-build.proj /p:TargetFramework=net40 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
- msbuild fsharp-library-build.proj /p:TargetFramework=portable-net45+sl5+win8 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
++msbuild fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
 +```
 +
 +### Windows, using xbuild (e.g. if no .NET is installed and only Mono 3.0 is installed):
 +
 +```
 +cd src
 +xbuild fsharp-proto-build.proj
 +xbuild fsharp-library-build.proj
 +xbuild fsharp-compiler-build.proj
 +```
 +
 +Building using xbuild does not yet lay down a Mono-ready distribution (see src/fsharp/targets.make), so should only
 +be used for private development rather than preparing distributions. 
 +
 +## Build Note: Strong Names
 +
 +The FSharp.Core.dll produced is only delay-signed (Mono does not require strong names). 
 +If a strong-name signed FSharp.Core.dll is needed then use the one in 
 +```
 +   lib\bootstrap\signed\.NETFramework\v4.0\4.3.1.0\FSharp.Core.dll
 +```
 +
 +## How to Install 
 +
 +Built main compiler binaries go to
 +    lib/release/4.0
 +
 +Additionally, versions of FSharp.Core for .NET 2.0, MonoAndroid, MonoTouch (Mono profile 2.1) go to 
 +     lib/release/2.0
 +     lib/release/2.1
 +     lib/release/2.1monotouch
 +
 +`make install` sends the binaries to the `prefix` location, e.g.
 +
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/2.0/FSharp.Core.dll
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/2.1/FSharp.Core.dll
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.0/fsc.exe
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.0/FSharp.Compiler.dll
 +    ...
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/fsc.exe
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/FSharp.Compiler.dll
 +    ...
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/gac/.../FSharp.Compiler.dll
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/gac/.../FSharp.Compiler.dll
 +    ...
 +
 +plus some files for xbuild support 
 +
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/Microsoft\ F#/v4.0/*
 +    /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/Microsoft\ SDKs/F#/3.0/Framework/*
 +
 +(these names are the canonical names for Microsoft.FSharp.Targets used by project files coming from Visual Studio)
 +
 +plus scripts
 +
 +    /usr/bin/fsharpc   (F# compiler)
 +    /usr/bin/fsharpi   (F# Interactive)
 +
 +## Development Notes
 +
 +### Integrating changes from 'visualfsharp'
 +
 +To integrate latest changes from https://git01.codeplex.com/visualfsharp, use
 +
 +git remote add visualfsharp https://git01.codeplex.com/visualfsharp
 +git pull visualfsharp master
 +
 +
 +### Continuous Integration Build 
 +
 +A continuous integration build is set up with Travis. See above.
 +
 +### Editing the Compiler with Visual Studio, Xamarin Studio or MonoDevelop
 +
 +Open `all-vs2013.sln`, and edit in modes Debug or Release. The compiler takes a good while to compile and that
 +can be a bit invasive to the work flow, so it's normally better to do the actual compilation from 
 +the command line, see above.
 +
 +Historically it is difficult to edit the compiler with Xamarin Studio or MonoDevelop because of bugs in loading the hand-edited project files and targets used in the F# compiler build. These are generally in the process of being fixed, your mileage will vary.
 +
 +## How to Test and Validate
 +
 +### Linux and OSX
 +
 +Only a subset of the tests are currently enabled.
 +
 +After building and installing, run
 +```
 +cd tests/fsharp/core
 +./run-all.sh
 +```
 +
 +### Windows
 +
 +See the http://visualfsharp.codeplex.com for instructions for how to test on Windows. Use that repository
 +to develop and test on Windows.
 +
 +## History 
 +
 +F# compiler sources as initially dropped are available from [fsharppowerpack.codeplex.com](http://fsharppowerpack.codeplex.com).
 +
 +On 4 April 2014, Microsoft Open Tech published the F# compiler sources  at http://visualfsharp.codeplex.com and began
 +accepting contributions to the F# compiler/library and tools.  This repository is a modified version of that.
 +
 +This repository uses bootstrapping libraries, tools and F# compiler. The `lib/bootstrap/X.0` directories contain mono-built libraries, compiler and tools that can be used to bootstrap a build. You can also supply your own via the `--with-bootstrap` option.
 +
 +### Wheezy build
 +
 +```
 +vagrant up
 +vagrant ssh
 +cd /vagrant
 +sudo apt-get install dos2unix autoconf
 +./autogen.sh --prefix=/usr
 +make
 +sudo make install
 +```
 +
diff --cc build.bat
index 6ec376c,0000000..c1665da
mode 100644,000000..100644
--- a/build.bat
+++ b/build.bat
@@@ -1,26 -1,0 +1,26 @@@
 + at echo off
 +::Env
 +if %PROCESSOR_ARCHITECTURE%==x86 (
 +	set MSBuild="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"
 +) else (
 +	set MSBUILD=%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
 +)
 +
 +::Clean
 +del /F /S /Q lib\proto
 +del /F /S /Q lib\release
 +
 +::Build
 +pushd .
 +cd .\src
 +set ABS_PATH=%CD%
 +%MSBUILD% "%ABS_PATH%\fsharp-proto-build.proj"
 +%MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=net40 /p:Configuration=Release
 +%MSBUILD% "%ABS_PATH%\fsharp-compiler-build.proj" /p:TargetFramework=net40 /p:Configuration=Release
 +%MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=net20 /p:Configuration=Release
- %MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=portable-net45+sl5+win8 /p:Configuration=Release
- %MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=netcore7 /p:Configuration=Release
- %MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=netcore78 /p:Configuration=Release
- %MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=netcore259 /p:Configuration=Release
++%MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=portable47 /p:Configuration=Release
++%MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=portable7 /p:Configuration=Release
++%MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=portable78 /p:Configuration=Release
++%MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=portable259 /p:Configuration=Release
 +%MSBUILD% "%ABS_PATH%\fsharp-library-build.proj" /p:TargetFramework=sl5 /p:Configuration=Release
 +popd
diff --cc config.make.in
index 7669593,0000000..040bf1c
mode 100644,000000..100644
--- a/config.make.in
+++ b/config.make.in
@@@ -1,125 -1,0 +1,125 @@@
 +bootstrap := @with_bootstrap@
 +prefix := @prefix@
 +topdir := @abs_top_srcdir@/
 +builddir := @abs_top_builddir@/
 +libdir := ${prefix}/lib/
 +bindir := ${prefix}/bin/
 +monolibdir := @MONOLIBDIR@
 +monogacdir := @MONOGACDIR@
 +
 +monogacdir20 := @MONOGACDIR20@
 +
 +#This is where to find MonoTouch of MonoAndroid, for "make build-monodroid"
 +#
 +#For now this is hardwired, it should be optionally detected by configure.ac
 +monogacdir21 := @abs_top_srcdir@/dependencies/mono/2.1
 +
 +monogacdir35 := @MONOGACDIR35@
 +monogacdir40 := @MONOGACDIR40@
 +
 +pclenabled47 := @PCLENABLED47@
 +pclenabled7 := @PCLENABLED7@
 +pclenabled78 := @PCLENABLED78@
 +pclenabled259 := @PCLENABLED259@
 +
 +gacdir := ${libdir}mono
 +
 +tooldir := $(topdir)lib/bootstrap/4.0/
 +
 +TargetFramework = net40
 +CONFIG = release
 +Configuration = Release
 +DISTVERSION = 201011
 +outsuffix = $(TargetFramework)
 +
 +# Version number mappings for various versions of FSharp.Core
 +
 +
 +ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-net20-)
 +VERSION = 2.3.1.0
 +TARGET = 2.0
 +endif
 +
 +ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-net40-)
 +VERSION = 4.3.1.0
 +TARGET = 4.0
 +outsuffix = .
 +endif
 +
 +ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-monodroid-)
 +VERSION = 2.3.98.1
 +TARGET = monodroid
 +endif
 +
 +
 +ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-monotouch-)
 +VERSION = 2.3.98.1
 +TARGET = monotouch
 +endif
 +
- ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-portable-net45+sl5+win8-)
++ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-portable47-)
 +VERSION = 2.3.5.1
- TARGET = portable-net45+sl5+win8
++TARGET = portable47
 +PCLPATH = .NETPortable
 +endif
 +
- ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-netcore7-)
++ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-portable7-)
 +VERSION = 3.3.1.0
- TARGET = netcore7
++TARGET = portable7
 +PCLPATH = .NETCore
 +endif
 +
- ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-netcore78-)
- VERSION = 3.3.1.78
- TARGET = netcore78
++ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-portable78-)
++VERSION = 3.78.3.1
++TARGET = portable78
 +PCLPATH = .NETCore
 +endif
 +
- ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-netcore259-)
- VERSION = 3.3.1.259
- TARGET = netcore259
++ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-portable259-)
++VERSION = 3.259.3.1
++TARGET = portable259
 +PCLPATH = .NETCore
 +endif
 +
 +# Version number mappings for various back versions of FSharp.Core (F# 3.0 versions of FSharp.Core)
 +
 +ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-net20-3.0)
 +VERSION = 2.3.0.0
 +TARGET = 2.0
 +outsuffix = fsharp30/$(TargetFramework)
 +endif
 +
 +
 +ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-net40-3.0)
 +VERSION = 4.3.0.0
 +TARGET = 4.0
 +outsuffix = fsharp30/$(TargetFramework)
 +endif
 +
- ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-portable-net45+sl5+win8-3.0)
++ifeq (x-$(TargetFramework)-$(FSharpCoreBackVersion),x-portable47-3.0)
 +VERSION = 2.3.5.0
- TARGET = portable-net45+sl5+win8
++TARGET = portable47
 +PCLPATH = .NETPortable
 +outsuffix = fsharp30/$(TargetFramework)
 +endif
 +
 +
 +DELAY_SIGN_TOKEN = b03f5f7f11d50a3a
 +SIGN_TOKEN = f536804aa0eb945b
 +
 +bootstrapdir = $(bootstrap)/4.0/
 +tmpdir = .libs/$(CONFIG)/
 +objdir = $(tmpdir)$(TARGET)/
 +protodir = $(builddir)/lib/proto/
 +outdir = $(builddir)lib/$(CONFIG)/$(outsuffix)/
 +
 +INSTALL = $(SHELL) $(topdir)install-sh
 +INSTALL_DATA = $(INSTALL) -c -m 644
 +INSTALL_BIN = $(INSTALL) -c -m 755
 +INSTALL_LIB = $(INSTALL_BIN)
 +
 +EXTRA_DIST = configure
 +NO_DIST = .gitignore lib/debug lib/proto lib/release
 +
 +DEFAULT: all
 +
diff --cc src/FSharpSource.targets
index ec9067d,767d9c0..a7e5013
mode 100755,100644..100755
--- a/src/FSharpSource.targets
+++ b/src/FSharpSource.targets
@@@ -1,68 -1,71 +1,68 @@@
  <?xml version="1.0" encoding="utf-8"?>
  <!-- Copyright (c) Microsoft Open Technologies, Inc.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information. -->
  <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 -   <Choose>
 -    <When Condition="'$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release' or '$(Configuration)' == 'VSDebug' or '$(Configuration)' == 'VSRelease' ">
 -      <Choose>
 -        <When Condition="'$(ProjectLanguage)' == 'FSharp'">
 -          <Choose>
 -            <When Condition="'$(AssemblyName)' == 'FSharp.Core'">
 -              <PropertyGroup Condition="'$(TargetFramework)' == 'Portable7' or '$(TargetFramework)' == 'Portable78' or '$(TargetFramework)' == 'Portable259'">
 -                <IsPortableProfile>true</IsPortableProfile>
 -              </PropertyGroup>
 -              <PropertyGroup>
 -                <OtherFlags Condition="'$(TargetFramework)' != 'net20' and $(IsPortableProfile) != 'true'">$(OtherFlags) --version:4.3.1.9055</OtherFlags>
 -                <OtherFlags Condition="'$(TargetFramework)' == 'net20'">$(OtherFlags) --version:2.3.1.9055</OtherFlags>
 -                <OtherFlags Condition="'$(TargetFramework)' == 'portable7'">$(OtherFlags) --version:3.3.1.9055</OtherFlags>
 -                <OtherFlags Condition="'$(TargetFramework)' == 'portable47'">$(OtherFlags) --version:2.3.5.9055</OtherFlags>
 -                <OtherFlags Condition="'$(TargetFramework)' == 'portable78'">$(OtherFlags) --version:3.78.3.9055</OtherFlags>
 -                <OtherFlags Condition="'$(TargetFramework)' == 'portable259'">$(OtherFlags) --version:3.259.3.9055</OtherFlags>
 -                <OtherFlags>$(OtherFlags) --delaysign+ --keyfile:"$(FSharpSourcesRoot)\fsharp\msft.pubkey"</OtherFlags>
 -                <DefineConstants>STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)</DefineConstants>
 -                <StrongNames>true</StrongNames>
 -              </PropertyGroup>
 -            </When>
 -            <When Condition="'$(AssemblyName)' == 'FSharp.LanguageService' or '$(AssemblyName)' == 'FSharp.LanguageService.Compiler' or '$(AssemblyName)' == 'FSharp.LanguageService.Base' or '$(AssemblyName)' == 'FSharp.Editor' or '$(AssemblyName)' == 'FSharp.VS.FSI' or '$(AssemblyName)' == 'FSharp.ProjectSystem.FSharp'">
 -              <PropertyGroup>
 -                <OtherFlags>$(OtherFlags) --version:12.0.0.9055 --delaysign+ --keyfile:"$(FSharpSourcesRoot)\fsharp\msft.pubkey"</OtherFlags>
 -                <DefineConstants>STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)</DefineConstants>
 -                <StrongNames>true</StrongNames>
 -              </PropertyGroup>
 -            </When>
 -            <Otherwise>
 -              <PropertyGroup Condition="'$(SIGN_WITH_MSFT_KEY)' == 'true'">
 -                <OtherFlags>$(OtherFlags) --version:4.3.1.9055 --delaysign+ --keyfile:"$(FSharpSourcesRoot)\fsharp\msft.pubkey"</OtherFlags>
 -                <DefineConstants>STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)</DefineConstants>
 -                <StrongNames>true</StrongNames>
 -              </PropertyGroup>
 -              <PropertyGroup Condition="'$(SIGN_WITH_MSFT_KEY)' != 'true'">
 -                <OtherFlags>$(OtherFlags) --version:4.3.1.9055 --keyfile:"$(FSharpSourcesRoot)\fsharp\test.snk"</OtherFlags>
 -                <DefineConstants>STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY;$(DefineConstants)</DefineConstants>
 -                <StrongNames>true</StrongNames>
 -              </PropertyGroup>
 -            </Otherwise>
 -          </Choose>
 -        </When>
 -        <Otherwise>
 -          <PropertyGroup>
 -            <SignAssembly>true</SignAssembly>
 -            <AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\msft.pubkey</AssemblyOriginatorKeyFile>
 -            <DefineConstants>STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)</DefineConstants>
 -            <StrongNames>true</StrongNames>
 -            <DelaySign>true</DelaySign>
 -          </PropertyGroup>
 -        </Otherwise>
 -      </Choose>
 -    </When>
 -    <Otherwise>
 -      <PropertyGroup Condition="'$(StrongNames)' != 'true'">
 -        <!-- For the proto build, portable and Silverlight framework implementations, we don't use strong names. -->
 -        <!-- For Silverlight, there is no way to disable strong name verification, so using the Microsoft name is not possible -->
 -        <OtherFlags>$(OtherFlags) --version:4.3.1.9055</OtherFlags>
 -        <DefineConstants>NO_STRONG_NAMES;$(DefineConstants)</DefineConstants>
 -      </PropertyGroup>
 -    </Otherwise>
 -  </Choose>
 -
 -  <!-- For the proto build, portable and Silverlight framework implementations, we don't use strong names. -->
 -  <!-- For Silverlight, there is no way to disable strong name verification, so using the Microsoft name is not possible -->
 +  <PropertyGroup>
 +    <!-- Tail calls on, even in debug -->
 +    <Tailcalls>true</Tailcalls>
 +    <TargetFramework Condition="'$(TargetFramework)'==''">net40</TargetFramework>
 +    <LkgPath>$(FSharpSourcesRoot)\..\lib\bootstrap\4.0</LkgPath>
 +    <FsLexUnicode>true</FsLexUnicode>
 +    <OtherFlags>$(OtherFlags) --times</OtherFlags>
 +    <NoWarn>$(NoWarn);69;65;54;61;75</NoWarn>
 +    <DebugSymbols>true</DebugSymbols>
 +  </PropertyGroup>
 +
 +  <!-- We use the same versions as VS2012 (see strong naming below) -->
 +  <PropertyGroup>
 +    <!-- Compute the assembly version numbers to use -->
 +    <AssemblyVersion>2.9.9.999</AssemblyVersion>
 +    <!-- This is the primary framework, used to run the compiler itself -->
 +    <AssemblyVersion Condition="'$(TargetFramework)' == 'net40'">4.3.1.0</AssemblyVersion>
 +    <!-- These correspond to the frameworks supported by Microsoft -->
 +    <AssemblyVersion Condition="'$(TargetFramework)' == 'net20'">2.3.1.0</AssemblyVersion>
-     <AssemblyVersion Condition="'$(TargetFramework)' == 'portable-net45+sl5+win8' ">2.3.5.1</AssemblyVersion>
++    <AssemblyVersion Condition="'$(TargetFramework)' == 'portable47' ">2.3.5.1</AssemblyVersion>
 +    <AssemblyVersion Condition="'$(TargetFramework)' == 'monodroid' ">2.3.98.1</AssemblyVersion>
 +    <AssemblyVersion Condition="'$(TargetFramework)' == 'monotouch' ">2.3.98.1</AssemblyVersion>
-     <AssemblyVersion Condition="'$(TargetFramework)' == 'netcore7'">3.3.1.0</AssemblyVersion>
-     <AssemblyVersion Condition="'$(TargetFramework)' == 'netcore78'">3.3.1.78</AssemblyVersion>
-     <AssemblyVersion Condition="'$(TargetFramework)' == 'netcore259'">3.3.1.259</AssemblyVersion>
++    <AssemblyVersion Condition="'$(TargetFramework)' == 'portable7'">3.3.1.0</AssemblyVersion>
++    <AssemblyVersion Condition="'$(TargetFramework)' == 'portable78'">3.78.3.1</AssemblyVersion>
++    <AssemblyVersion Condition="'$(TargetFramework)' == 'portable259'">3.259.3.1</AssemblyVersion>
 +
 +    <!-- These are simulations of previous versions of FSharp.Core for F# 3.0, useable to support the 'build a library compatible with a back version of F#' multi-targeting option supported by some IDEs -->
 +    <!-- The actual libraries will contain additional functionality related to F# 3.1 etc. but that doesn't matter - the version number will be right which is what counts -->
 +    <AssemblyVersion Condition="'$(TargetFramework)' == 'net20' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.0.0</AssemblyVersion>
 +    <AssemblyVersion Condition="'$(TargetFramework)' == 'net40' AND '$(FSharpCoreBackVersion)' == '3.0' ">4.3.0.0</AssemblyVersion>
-     <AssemblyVersion Condition="'$(TargetFramework)' == 'portable-net45+sl5+win8' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.5.0</AssemblyVersion>
++    <AssemblyVersion Condition="'$(TargetFramework)' == 'portable47' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.5.0</AssemblyVersion>
 +    <!-- FSharp.Core using System.Runtime -->
 +    <OtherFlags>$(OtherFlags) --version:$(AssemblyVersion)</OtherFlags>
 +    <!--
 +Some other NuGET monikers to support in the future, see http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Package_Conventions
 +
 +    <VersionFile Condition="'$(TargetFramework)' == 'windows8'">$(FSharpSourcesRoot)\source-build-version-2.3.7.0</VersionFile>
 +    <VersionFile Condition="'$(TargetFramework)' == 'windowsphone8'">$(FSharpSourcesRoot)\source-build-version-2.3.8.0</VersionFile>
 +-->
 +  </PropertyGroup>
 +
 +  <!-- We sign FSharp.Core with the Microsoft key and use delay-signing. -->
 +  <!-- These can then be signed with the special mono.snk (we don't do this as part of this build, -->
 +  <!-- but it can be done manually later, e.g. on the target machine). This is how the Mono team build the binaries -->
 +  <!-- at github.com/fsharp/fsharp and how they are shipped with Mono -->
 +  <!-- -->
 +  <!-- However FSharp.Core must use the Microsoft key name, otherwise the compiler can't load type provider components. -->
 +
 +  <PropertyGroup Condition="('$(Configuration)'=='Debug' OR '$(Configuration)'=='Release') AND ('$(AssemblyName)'=='FSharp.Core')">
 +    <DefineConstants>STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)</DefineConstants>
 +    <OtherFlags>$(OtherFlags) --delaysign+ --keyfile:"$(FSharpSourcesRoot)\fsharp\msft.pubkey"</OtherFlags>
 +    <StrongNames>true</StrongNames>
 +  </PropertyGroup>
 +
 +  <PropertyGroup Condition="('$(Configuration)'=='Debug' OR '$(Configuration)'=='Release') AND ('$(AssemblyName)'!='FSharp.Core')">
 +    <DefineConstants>STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY;$(DefineConstants)</DefineConstants>
 +    <OtherFlags>$(OtherFlags) --keyfile:"$(FSharpSourcesRoot)\fsharp\test.snk"</OtherFlags>
 +    <StrongNames>true</StrongNames>
 +  </PropertyGroup>
 +
 +
 +  <!-- For the proto build and exotic framework implementations, we don't use strong names. For non-exotic framework implementations, this gets adjusted below -->
    <PropertyGroup Condition="'$(StrongNames)' != 'true'">
      <DefineConstants>NO_STRONG_NAMES;$(DefineConstants)</DefineConstants>
    </PropertyGroup>
@@@ -98,9 -99,10 +98,9 @@@
  
    <!-- v2.0-specific flags -->
    <PropertyGroup Condition="'$(TargetFramework)'=='net20'">
-     <!-- If 3.5 is not configured explicitly, use 2.0 -->
-     <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)'==''">v2.0</TargetFrameworkVersion>
-     <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
 -    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+     <DefineConstants>$(DefineConstants);FSHARP_CORE_2_0</DefineConstants>
+     <DefineConstants>$(DefineConstants);RUNTIME</DefineConstants>
+     <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_TASK</DefineConstants>
@@@ -134,49 -130,11 +134,50 @@@
      <!-- MSbuild works out the assembly references -->
    </PropertyGroup>
  
 -  <!-- Target Portable Profile 47 -->
 +  <!-- Target MonoAndroid -->
 +  <PropertyGroup Condition="'$(TargetFramework)'=='monodroid'">
 +    <TargetFrameworkVersion>v2.1</TargetFrameworkVersion>
 +    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
 +    <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_BIGINT_CULTURE_PARSE</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_BIGINT</DefineConstants>
 +    <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
 +    <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE;</DefineConstants>
 +    <AssemblySearchPaths>$(FSharpSourcesRoot)\..\dependencies\mono\2.1;$(AssemblySearchPaths)</AssemblySearchPaths>
 +  </PropertyGroup>
 +
 +  <!-- Target MonoTouch -->
 +  <PropertyGroup Condition="'$(TargetFramework)'=='monotouch'">
 +    <TargetFrameworkVersion>v2.1</TargetFrameworkVersion>
 +    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
 +    <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_BIGINT_CULTURE_PARSE</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_BIGINT</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_REFLECTION_EMIT</DefineConstants>
 +    <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
 +    <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE;</DefineConstants>
 +    <OtherFlags>$(OtherFlags) --simpleresolution -r:"$(FSharpSourcesRoot)\..\dependencies\mono\2.1\MonoTouch\mscorlib-runtime.dll"</OtherFlags>
 +    <AssemblySearchPaths>$(FSharpSourcesRoot)\..\dependencies\mono\2.1\MonoTouch;$(AssemblySearchPaths)</AssemblySearchPaths>
 +  </PropertyGroup>
 +
 +
 +  <!-- Target Portable -->
-   <PropertyGroup Condition="'$(TargetFramework)'=='portable-net45+sl5+win8'">
+   <PropertyGroup Condition="'$(TargetFramework)'=='portable47'">
  
 +    <TargetFrameworkProfile>Profile47</TargetFrameworkProfile>
 +    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
 +    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
 +
      <DefineConstants>$(DefineConstants);FSHARP_CORE_PORTABLE</DefineConstants>
+     <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CONCURRENT_DICTIONARY</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_ATLEAST_PORTABLE</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants>
@@@ -223,20 -180,18 +223,24 @@@
      <DefineConstants>$(DefineConstants);FX_NO_TPL_PARALLEL</DefineConstants>
      <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_NO_BIGINT</DefineConstants>
      <DefineConstants>$(DefineConstants);DONT_INCLUDE_DEPRECATED</DefineConstants>
 +    <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE</DefineConstants>
      <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
 -    <TargetFrameworkProfile>Profile47</TargetFrameworkProfile>
 -    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
 +
 +    <!-- An explicit search path seems to be needed on Mono 3.4.0 otherwise the reference assemblies for the profile aren't found -->
 +    <AssemblySearchPaths Condition="Exists('$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.0\mscorlib.dll')">$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.0</AssemblySearchPaths>
    </PropertyGroup>
 -  
 -   <!-- Target Portable Profile 7 -->
 +
 +  <!-- Target Portable -->
-   <PropertyGroup Condition="'$(TargetFramework)'=='netcore7'">
+   <PropertyGroup Condition="'$(TargetFramework)'=='portable7'">
 +
 +    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
 +    <DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE</DefineConstants>
+     <DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE</DefineConstants>
+     <DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE7</DefineConstants>
+     <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
+     <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_ATLEAST_PORTABLE</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_EXIT</DefineConstants>
@@@ -263,20 -215,17 +264,22 @@@
      <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
 -    <DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants> 
 -    <DefineConstants>$(DefineConstants);FX_EVENTWAITHANDLE_NO_IDISPOSABLE</DefineConstants> 
 -    <TargetingNetCorePortable>true</TargetingNetCorePortable>
 +    <DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
 +    <DefineConstants>$(DefineConstants);FX_EVENTWAITHANDLE_NO_IDISPOSABLE</DefineConstants>
 +    <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
 +    <TargetProfile>netcore</TargetProfile>
      <TargetFrameworkProfile>Profile7</TargetFrameworkProfile>
 -    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>    
 +    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
 +    <!-- An explicit search path seems to be needed on Mono 3.4.0 otherwise the reference assemblies for the profile aren't found -->
 +    <AssemblySearchPaths Condition="Exists('$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.5\System.Runtime.dll')">$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.5</AssemblySearchPaths>
 +    <OtherFlags>$(OtherFlags) --targetprofile:netcore</OtherFlags>
    </PropertyGroup>
 -
 +  
    <!-- Target Portable -->
-   <PropertyGroup Condition="'$(TargetFramework)'=='netcore78'">
+   <PropertyGroup Condition="'$(TargetFramework)'=='portable78'">
 +    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
+     <DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE</DefineConstants>
+     <DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE78</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CONVERTER</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants>
@@@ -299,20 -249,17 +303,22 @@@
      <DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_REGISTERED_WAIT_HANDLES</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_THREADPOOL</DefineConstants>
+     <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
-     <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CONCURRENT_DICTIONARY</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants>
 +    <TargetProfile>netcore</TargetProfile>
      <TargetFrameworkProfile>Profile78</TargetFrameworkProfile>
      <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
 +    <!-- An explicit search path seems to be needed on Mono 3.4.0 otherwise the reference assemblies for the profile aren't found -->
 +    <AssemblySearchPaths Condition="Exists('$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.5\System.Runtime.dll')">$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.5</AssemblySearchPaths>
 +    <OtherFlags>$(OtherFlags) --targetprofile:netcore</OtherFlags>    
    </PropertyGroup>
  
-   <PropertyGroup Condition="'$(TargetFramework)'=='netcore259'">
+   <PropertyGroup Condition="'$(TargetFramework)'=='portable259'">
 +    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
+     <DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE</DefineConstants>
+     <DefineConstants>$(DefineConstants);FSHARP_CORE_NETCORE_PORTABLE259</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CONVERTER</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants>
@@@ -335,70 -283,14 +342,70 @@@
      <DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_REGISTERED_WAIT_HANDLES</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_THREADPOOL</DefineConstants>
+     <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
-     <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_NO_CONCURRENT_DICTIONARY</DefineConstants>
      <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants>
 +    <TargetProfile>netcore</TargetProfile>
      <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
      <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
 +    <!-- An explicit search path seems to be needed on Mono 3.4.0 otherwise the reference assemblies for the profile aren't found -->
 +    <AssemblySearchPaths Condition="Exists('$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.5\System.Runtime.dll')">$(MSBuildExtensionsPath32)\..\xbuild-frameworks\.NETPortable\v4.5</AssemblySearchPaths>
 +    <OtherFlags>$(OtherFlags) --targetprofile:netcore</OtherFlags>    
    </PropertyGroup>
  
 +
 +  <ItemGroup Condition="'$(TargetProfile)'=='netcore'">
-     <Reference Include="System.Collections.Concurrent.dll" Condition="'$(TargetFramework)'=='netcore7'"><Private>false</Private></Reference>
++    <Reference Include="System.Collections.Concurrent.dll" Condition="'$(TargetFramework)'=='portable7'"><Private>false</Private></Reference>
 +    <Reference Include="System.Collections.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.ComponentModel.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Core.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Diagnostics.Contracts.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Diagnostics.Debug.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Diagnostics.Tools.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Dynamic.Runtime.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Globalization.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.IO.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Linq.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Linq.Expressions.dll"><Private>false</Private></Reference>
-     <Reference Include="System.Linq.Parallel.dll" Condition="'$(TargetFramework)'=='netcore7'"><Private>false</Private></Reference>
++    <Reference Include="System.Linq.Parallel.dll" Condition="'$(TargetFramework)'=='portable7'"><Private>false</Private></Reference>
 +    <Reference Include="System.Linq.Queryable.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Net.dll"><Private>false</Private></Reference>
-     <Reference Include="System.Net.Http.dll" Condition="'$(TargetFramework)'=='netcore7'"><Private>false</Private></Reference>
++    <Reference Include="System.Net.Http.dll" Condition="'$(TargetFramework)'=='portable7'"><Private>false</Private></Reference>
 +    <Reference Include="System.Net.NetworkInformation.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Net.Primitives.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Net.Requests.dll"><Private>false</Private></Reference>
-     <Reference Include="System.Numerics.dll" Condition="'$(TargetFramework)'=='netcore7'"><Private>false</Private></Reference>
++    <Reference Include="System.Numerics.dll" Condition="'$(TargetFramework)'=='portable7'"><Private>false</Private></Reference>
 +    <Reference Include="System.ObjectModel.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Reflection.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Reflection.Extensions.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Reflection.Primitives.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Resources.ResourceManager.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Runtime.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Runtime.Extensions.dll"><Private>false</Private></Reference>
-     <Reference Include="System.Runtime.Numerics.dll" Condition="'$(TargetFramework)'=='netcore7'"><Private>false</Private></Reference>
-     <Reference Include="System.Runtime.InteropServices.dll" Condition="'$(TargetFramework)'=='netcore7'"><Private>false</Private></Reference>
++    <Reference Include="System.Runtime.Numerics.dll" Condition="'$(TargetFramework)'=='portable7'"><Private>false</Private></Reference>
++    <Reference Include="System.Runtime.InteropServices.dll" Condition="'$(TargetFramework)'=='portable7'"><Private>false</Private></Reference>
 +    <Reference Include="System.Runtime.Serialization.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Runtime.Serialization.Json.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Runtime.Serialization.Primitives.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Runtime.Serialization.Xml.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Security.Principal.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Text.Encoding.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Text.Encoding.Extensions.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Text.RegularExpressions.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Threading.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Threading.Tasks.dll"><Private>false</Private></Reference>
-     <Reference Include="System.Threading.Tasks.Parallel.dll" Condition="'$(TargetFramework)'=='netcore7'"><Private>false</Private></Reference>
++    <Reference Include="System.Threading.Tasks.Parallel.dll" Condition="'$(TargetFramework)'=='portable7'"><Private>false</Private></Reference>
 +    <Reference Include="System.Windows.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Xml.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Xml.Linq.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Xml.ReaderWriter.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Xml.Serialization.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Xml.XDocument.dll"><Private>false</Private></Reference>
 +    <Reference Include="System.Xml.XmlSerializer.dll"><Private>false</Private></Reference>
 +  </ItemGroup>
 +
    <!-- Target Silverlight 3.0 -->
    <PropertyGroup Condition="'$(TargetFramework)'=='sl3'">
      <TargetFrameworkVersion>v3.0</TargetFrameworkVersion>
@@@ -788,49 -613,61 +795,49 @@@
  
    <!-- Build with prototype compiler (location is given by settings below). The output is the final bootstrapped compiler -->
    <PropertyGroup Condition=" '$(BuildWith)' == ''">
 -    <FSharpTargetsDir>$(FSharpSourcesRoot)\..\Proto\$(protoCLIDir)\bin</FSharpTargetsDir>
 -
 -    <FscToolPath>$(FSharpSourcesRoot)\..\Proto\$(protoCLIDir)\bin</FscToolPath>
 +    <FscToolPath>$(FSharpSourcesRoot)\..\lib\proto</FscToolPath>
      <FscToolExe>fsc-proto.exe</FscToolExe>
 -    <OutputPath Condition=" '$(CustomOutputPath)' != 'true' ">$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFramework)\bin</OutputPath>
 +    <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkOutputDirectory)</OutputPath>
    </PropertyGroup>
  
 -  <Choose>
 -    <When Condition="'$(TargetFramework)'=='portable47' OR '$(TargetFramework)'=='portable7'">
 -      <PropertyGroup>
 -        <FSharpTargetsPath>..\Proto\$(protoCLIDir)\bin\Microsoft.Portable.FSharp-proto.Targets</FSharpTargetsPath>
 -      </PropertyGroup>
 -    </When>
 -    <When Condition="'$(TargetFramework)'=='portable78' or '$(TargetFramework)'=='portable259'">
 -      <PropertyGroup>
 -        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.Portable.FSharp.Targets</FSharpTargetsPath>
 -      </PropertyGroup>
 -    </When>   
 -    <When Condition="'$(TargetFramework)'=='sl3' or '$(TargetFramework)'=='sl4' or '$(TargetFramework)'=='sl5' or '$(TargetFramework)'=='sl5-compiler'">
 -      <PropertyGroup>
 -        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\Silverlight\$(SilverlightVersion)\FSharpSource.Silverlight.Common.targets</FSharpTargetsPath>
 -      </PropertyGroup>
 -    </When>
 -    <When Condition="'$(BuildWith)' == '' AND '$(ProjectLanguage)' == 'FSharp'">
 -      <PropertyGroup>
 -        <FSharpTargetsPath>..\Proto\$(protoCLIDir)\bin\Microsoft.FSharp-proto.Targets</FSharpTargetsPath>
 -      </PropertyGroup>
 -    </When>
 -    <When Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets') AND '$(BuildWith)' == 'LKG'">
 -      <PropertyGroup>
 -         <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
 -         <FSCoreLKGPath Condition="Exists('$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.1.0\FSharp.Core.dll')">$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.1.0\FSharp.Core.dll</FSCoreLKGPath>
 -      </PropertyGroup>
 -    </When>
 -    <When Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets') AND '$(BuildWith)' == 'LKG'">
 -      <PropertyGroup>
 -         <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
 -         <FSCoreLKGPath Condition="Exists('$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\FSharp.Core.dll')">$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\FSharp.Core.dll</FSCoreLKGPath>
 -         <FSCoreLKGPath Condition="Exists('$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll')">$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll</FSCoreLKGPath>
 -      </PropertyGroup>
 -    </When>
 -    <When Condition="'$(BuildWith)' == 'LKG'">
 -      <PropertyGroup>
 -         <FSharpTargetsPath>..\lkg\FSharp-$(LkgVersion)\bin\Microsoft.FSharp.Targets</FSharpTargetsPath>
 -         <FscToolPath>$(FSharpSourcesRoot)\..\lkg\FSharp-$(LkgVersion)\bin</FscToolPath>
 -         <FSCoreLKGPath>$(FSharpSourcesRoot)\..\lkg\FSharp-$(LkgVersion)\bin\FSharp.Core.dll</FSCoreLKGPath>
 -      </PropertyGroup>
 -    </When>
 -    <Otherwise>
 -      <PropertyGroup>
 -         <FSharpTargetsPath>$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
 -      </PropertyGroup>
 -    </Otherwise>
 -  </Choose>
 -  <Import Condition="'$(ProjectLanguage)' == 'FSharp'" Project="$(FSharpTargetsPath)"/>
 +  <!-- If compiling portable, then include Microsoft.Portable.Common.targets -->
 +  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\v4.0\Microsoft.Portable.Common.targets"
-           Condition=" ('$(TargetFramework)'=='portable-net45+sl5+win8' OR '$(TargetProfile)'=='netcore') AND 
++          Condition=" ('$(TargetFramework)'=='portable47' OR '$(TargetProfile)'=='netcore') AND 
 +                      Exists('$(MSBuildExtensionsPath32)\Microsoft\Portable\v4.0\Microsoft.Portable.Common.targets')" />
 +
 +  <!-- If the Microsoft.Portable.Common.targets file does not exist when building the portable FSharp.Core, include the following ProperyGroup -->
-  <PropertyGroup Condition=" ('$(TargetFramework)'=='portable-net45+sl5+win8'  OR '$(TargetProfile)'=='netcore') AND 
++ <PropertyGroup Condition=" ('$(TargetFramework)'=='portable47'  OR '$(TargetProfile)'=='netcore') AND 
 +                            !Exists('$(MSBuildExtensionsPath32)\Microsoft\Portable\v4.0\Microsoft.Portable.Common.targets')">
 +   <AvailablePlatforms>Any CPU</AvailablePlatforms>
 +   <TargetPlatformIdentifier>Portable</TargetPlatformIdentifier>
 +   <TargetFrameworkIdentifier>.NETPortable</TargetFrameworkIdentifier>
 +   <TargetFrameworkMonikerDisplayName>.NET Portable Subset</TargetFrameworkMonikerDisplayName>
 +   <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
 +   <NoStdLib>true</NoStdLib>
 +   <ImplicitlyExpandTargetFramework>false</ImplicitlyExpandTargetFramework>
 + </PropertyGroup>
 +
 +  <!-- Include the proto targets file unless building wioth the LKG -->
 +  <Import Project="..\lib\proto\Microsoft.FSharp-proto.targets"
 +          Condition="Exists('..\lib\proto\Microsoft.FSharp-proto.targets') AND '$(BuildWith)' == ''"/>
 +
 +  <!-- Include the bootstrap targets file when building the proto compiler using the bootstrap -->
 +  <!-- Also include it if Proto targets file doesn't exist, e.g. when cleaning the build with /t:Clean -->
 +  <Import Project="$(LkgPath)\Microsoft.FSharp.Targets"
 +          Condition="(!Exists('..\lib\proto\Microsoft.FSharp-proto.targets')  OR '$(BuildWith)' == 'LKG') " />
 +
 +  <!-- If compiling portable, then Microsoft.Portable.Core.targets -->
 +  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\Microsoft.Portable.Core.targets"
-           Condition=" ('$(TargetFramework)'=='portable-net45+sl5+win8' OR '$(TargetProfile)'=='netcore') AND
++          Condition=" ('$(TargetFramework)'=='portable47' OR '$(TargetProfile)'=='netcore') AND
 +                      Exists('$(MSBuildExtensionsPath32)\Microsoft\Portable\Microsoft.Portable.Core.targets')" />
 +          
 +
 +  <!-- Include the Silverlight targets file if needed -->
 +  <Import Project="Silverlight\$(SilverlightVersion)\FSharpSource.Silverlight.Common.targets"
 +          Condition="('$(TargetFramework)'=='sl3' OR 
 +                      '$(TargetFramework)'=='sl4' OR 
 +                      '$(TargetFramework)'=='sl5' OR 
 +                      '$(TargetFramework)'=='sl5-compiler')"/>
  
    <!-- Reference an existing FSI.EXE for use from within MSBuild -->
    <PropertyGroup>
diff --cc src/fsharp/FSharp.Build/FSharp.Build.fsproj
index e837101,5c1898e..4dc3cac
--- a/src/fsharp/FSharp.Build/FSharp.Build.fsproj
+++ b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
@@@ -13,39 -13,17 +13,43 @@@
      <AllowCrossTargeting>true</AllowCrossTargeting>
      <ProjectGuid>{702A7979-BCF9-4C41-853E-3ADFC9897890}</ProjectGuid>
    </PropertyGroup>
 +  <!-- MonoDevelop likes these here to recognise the configurations -->
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " />
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " />
    <ItemGroup>
 +    <FsSrGen Include="FSBuild.txt">
 +      <Link>FSBuild.txt</Link>
 +    </FsSrGen>
+       <FsSrGen Include="FSBuild.txt">
+         <Link>FSBuild.txt</Link>
+       </FsSrGen>
+     <Compile Include="InternalsVisibleTo.fs" />
      <Compile Include="..\..\assemblyinfo\assemblyinfo.FSharp.Build.dll.fs">
 -      <Link>assemblyinfo.FSharp.Build.dll.fs</Link>
 +      <Link>Utilities/assemblyinfo.FSharp.Build.dll.fs</Link>
      </Compile>
      <Compile Include="..\..\utils\CompilerLocationUtils.fs">
 -      <Link>CompilerLocationUtils.fs</Link>
 +      <Link>Utilities/CompilerLocationUtils.fs</Link>
      </Compile>
 +    <Compile Include="Fsc.fsi" >
 +      <Link>BuildTasks/Fsc.fsi</Link>
 +    </Compile>
 +    <Compile Include="Fsc.fs" >
 +      <Link>BuildTasks/Fsc.fs</Link>
 +    </Compile>
 +    <Compile Include="CreateFSharpManifestResourceName.fsi" >
 +      <Link>BuildTasks/CreateFSharpManifestResourceName.fsi</Link>
 +    </Compile>
 +    <Compile Include="CreateFSharpManifestResourceName.fs" >
 +      <Link>BuildTasks/CreateFSharpManifestResourceName.fs</Link>
 +    </Compile>
 +    <None Include="Microsoft.FSharp.Targets">
 +      <Link>Microsoft.FSharp.Targets</Link>
 +      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
 +    </None>
 +    <None Include="Microsoft.Portable.FSharp.Targets">
 +      <Link>Microsoft.Portable.FSharp.Targets</Link>
 +      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
 +    </None>
      <Compile Include="Fsc.fsi" />
      <Compile Include="Fsc.fs" />
      <Compile Include="CreateFSharpManifestResourceName.fsi" />
diff --cc src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
index d4eda02,63ae670..e80535e
--- a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
+++ b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
@@@ -15,24 -14,22 +15,28 @@@
      <AssemblyName>FSharp.Compiler.Interactive.Settings</AssemblyName>
      <FileAlignment>512</FileAlignment>
    </PropertyGroup>
 +  <!-- MonoDevelop likes these here to recognise the configurations -->
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " />
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " />
    <ItemGroup>
 +    <FsSrGen Include="..\FSInteractiveSettings.txt">
 +      <Link>FSInteractiveSettings.txt</Link>
 +    </FsSrGen>
+       <FsSrGen Include="..\FSInteractiveSettings.txt">
+         <Link>FSInteractiveSettings.txt</Link>
+       </FsSrGen>
+     <Compile Include="InternalsVisibleTo.fs"/>
      <Compile Include="..\..\assemblyinfo\assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs">
 -      <Link>assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs</Link>
 +      <Link>Utilities/assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs</Link>
 +    </Compile>
 +    <Compile Include="..\fsiattrs.fs">
 +      <Link>Utilities/fsiattrs.fs</Link>
      </Compile>
      <Compile Include="..\fsiaux.fsi">
 -      <Link>fsiaux.fsi</Link>
 +      <Link>InteractiveSettings/fsiaux.fsi</Link>
      </Compile>
      <Compile Include="..\fsiaux.fs">
 -      <Link>fsiaux.fs</Link>
 -    </Compile>
 -    <Compile Include="..\fsiattrs.fs">
 -      <Link>fsiattrs.fs</Link>
 +      <Link>InteractiveSettings/fsiaux.fs</Link>
      </Compile>
    </ItemGroup>
    <ItemGroup>
diff --cc src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
index 9f14a07,92264b3..80a217d
--- a/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
+++ b/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
@@@ -11,14 -11,13 +11,18 @@@
      <ProjectGuid>{d5870cf0-ed51-4cbc-b3d7-6f56da84ac06}</ProjectGuid>
      <OutputType>Library</OutputType>
      <AssemblyName>FSharp.Compiler.Server.Shared</AssemblyName>
 -    <TargetFrameworkVersion Condition="'$(TargetFramework)'=='net20'">v2.0</TargetFrameworkVersion>
    </PropertyGroup>
 +  <!-- MonoDevelop likes these here to recognise the configurations -->
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " />
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " />
    <ItemGroup>
 +    <FsSrGen Include="..\fsiserver\FSServerShared.txt">
 +      <Link>FSServerShared.txt</Link>
 +    </FsSrGen>
+       <FsSrGen Include="..\fsiserver\FSServerShared.txt">
+         <Link>FSServerShared.txt</Link>
+       </FsSrGen>
+     <Compile Include="InternalsVisibleTo.fs" />
      <Compile Include="..\..\assemblyinfo\assemblyinfo.FSharp.Compiler.Server.Shared.dll.fs">
        <Link>assemblyinfo.FSharp.Compiler.Server.Shared.dll.fs</Link>
      </Compile>
diff --cc src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
index 65d050a,c136a0f..08ee68d
--- a/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
+++ b/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
@@@ -95,10 -84,15 +95,13 @@@
      <Compile Include="FSharp.Core\Microsoft.FSharp.Control\Cancellation.fs" />
      <Compile Include="FSharp.Core\Microsoft.FSharp.Control\AsyncType.fs" />
      <Compile Include="FSharp.Core\Microsoft.FSharp.Control\LazyType.fs" />
 -    <Compile Include="FSharp.Core\Microsoft.FSharp.Control\MailboxProcessorType.fs" />
 -    <Compile Include="FSharp.Core\Microsoft.FSharp.Control\AsyncModule.fs" />
      <Compile Include="FSharp.Core\Microsoft.FSharp.Control\ObservableModule.fs" />
 -    <Compile Include="FSharp.Core\Microsoft.FSharp.Control\EventModule.fs" />
 -    <Compile Include="FSharp.Core\Microsoft.FSharp.Reflection\FSharpReflection.fs" />
      <Compile Include="FSharp.Core\Microsoft.FSharp.Quotations\FSharpQuotations.fs" />
 +    <Compile Include="FSharp.Core\Microsoft.FSharp.Reflection\FSharpReflection.fs" />
 +    <Compile Include="FSharp.Core\PrimTypes.fs" />
+     <Compile Include="TypeForwarding.fs" />
+     <Compile Include="NUnitFrameworkShims.fs" Condition="'$(TargetFramework)' == 'sl3-wp'" />
+     <Compile Include="SurfaceArea.4.0.fs"/>
    </ItemGroup>
    <Import Project="$(FSharpSourcesRoot)\FSharpSource.targets" />
 -</Project>
 +</Project>
diff --cc src/fsharp/FSharp.Core.Unittests/SurfaceArea.4.0.fs
index 8ab6832,b0a1f98..b0a1f98
mode 100755,100644..100755
--- a/src/fsharp/FSharp.Core.Unittests/SurfaceArea.4.0.fs
+++ b/src/fsharp/FSharp.Core.Unittests/SurfaceArea.4.0.fs
diff --cc src/fsharp/FSharp.Core/FSharp.Core.fsproj
index 6374940,96868be..905e8ab
--- a/src/fsharp/FSharp.Core/FSharp.Core.fsproj
+++ b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
@@@ -194,32 -197,11 +194,32 @@@
      <Compile Include="..\..\assemblyinfo\assemblyinfo.FSharp.Core.dll.fs">
        <Link>assemblyinfo.FSharp.Core.dll.fs</Link>
      </Compile>
 +    <CustomAdditionalCompileInputs Include="$(FscToolPath)\$(FscToolExe)">
 +      <Visible>False</Visible>
 +    </CustomAdditionalCompileInputs>
    </ItemGroup>
 -  <ItemGroup Condition="'$(TargetFramework)' != 'portable7'">
 -    <Reference Include="mscorlib" />
 -    <Reference Include="System" />
 -    <Reference Include="System.Numerics" Condition="'$(TargetFramework)' == 'net40'" />
 +  <ItemGroup>
 +    <Reference Include="mscorlib" Condition=" '$(TargetProfile)' != 'netcore' ">
 +      <Private>false</Private>
 +    </Reference>
 +    <Reference Include="System">
 +      <Private>false</Private>
 +    </Reference>
 +    <Reference Include="System.Runtime" Condition=" '$(TargetProfile)' == 'netcore' " >
 +      <Private>false</Private>
 +    </Reference>
 +    <Reference Include="System.Numerics" Condition="'$(TargetFramework)' == 'net40'" >
 +      <Private>false</Private>
 +    </Reference>
-     <Reference Include="System.Net" Condition="'$(TargetFramework)' == 'sl5' OR '$(TargetFramework)' == 'sl5-compiler' OR '$(TargetFramework)' == 'XNA\5.0' OR '$(TargetFramework)' == 'wp7' OR '$(TargetFramework)' == 'portable-net45+sl5+win8' OR '$(TargetFramework)' == 'net40-xna40-xbox360' OR '$(TargetFramework)' == 'netcore7'" >
++    <Reference Include="System.Net" Condition="'$(TargetFramework)' == 'sl5' OR '$(TargetFramework)' == 'sl5-compiler' OR '$(TargetFramework)' == 'XNA\5.0' OR '$(TargetFramework)' == 'wp7' OR '$(TargetFramework)' == 'portable47' OR '$(TargetFramework)' == 'net40-xna40-xbox360' OR '$(TargetFramework)' == 'portable7'" >
 +      <Private>false</Private>
 +    </Reference>
 +    <Reference Include="System.Observable" Condition="'$(TargetFramework)' == 'wp7' " >
 +      <Private>false</Private>
 +    </Reference>
-     <Reference Include="System.Core" Condition="'$(TargetFramework)' == 'sl5' OR '$(TargetFramework)' == 'sl5-compiler' OR '$(TargetFramework)' == 'XNA\5.0' OR '$(TargetFramework)' == 'wp7' OR '$(TargetFramework)' == 'portable-net45+sl5+win8' OR '$(TargetFramework)' == 'net40-xna40-xbox360' OR '$(TargetFramework)' == 'netcore7'" >
++    <Reference Include="System.Core" Condition="'$(TargetFramework)' == 'sl5' OR '$(TargetFramework)' == 'sl5-compiler' OR '$(TargetFramework)' == 'XNA\5.0' OR '$(TargetFramework)' == 'wp7' OR '$(TargetFramework)' == 'portable47' OR '$(TargetFramework)' == 'net40-xna40-xbox360' OR '$(TargetFramework)' == 'portable7'" >
 +      <Private>false</Private>
 +    </Reference>
      <Reference Include="System.Net" Condition="'$(TargetFramework)' == 'sl5' OR 
                                                 '$(TargetFramework)' == 'portable47' OR 
                                                 '$(TargetFramework)' == 'XNA\5.0' OR 
diff --cc src/fsharp/FSharp.Core/string.fsi
index af49fd5,7e01a97..7e01a97
mode 100755,100644..100755
--- a/src/fsharp/FSharp.Core/string.fsi
+++ b/src/fsharp/FSharp.Core/string.fsi
diff --cc src/fsharp/Fsc/Fsc.fsproj
index 5b0dd76,8f5c42a..5e6f85f
--- a/src/fsharp/Fsc/Fsc.fsproj
+++ b/src/fsharp/Fsc/Fsc.fsproj
@@@ -18,14 -18,13 +18,15 @@@
      <AssemblyName>fsc</AssemblyName>
      <DefineConstants>EXTENSIONTYPING;COMPILER;$(DefineConstants)</DefineConstants>
      <AllowCrossTargeting>true</AllowCrossTargeting>
 -    <TargetFrameworkVersion Condition="'$(TargetFramework)'=='net20'">v2.0</TargetFrameworkVersion>
      <OtherFlags>$(OtherFlags) --warnon:1182</OtherFlags>
    </PropertyGroup>
 +  <!-- MonoDevelop likes these here to recognise the configurations -->
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " />
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " />
    <ItemGroup>
+     <Compile Include="InternalsVisibleTo.fs" />
      <Compile Include="..\..\assemblyinfo\assemblyinfo.fsc.exe.fs">
 -      <Link>assemblyinfo.fsc.exe.fs</Link>
 +      <Link>Resources/assemblyinfo.fsc.exe.fs</Link>
      </Compile>
      <Compile Include="..\fscmain.fs">
        <Link>fscmain.fs</Link>
diff --cc src/fsharp/Makefile.in
index 4c57375,0000000..d1f3155
mode 100644,000000..100644
--- a/src/fsharp/Makefile.in
+++ b/src/fsharp/Makefile.in
@@@ -1,66 -1,0 +1,66 @@@
 +srcdir := @abs_srcdir@/
 +
 +include @abs_top_builddir@/config.make
 +
 +# Make the proto using the bootstrap, then make the final compiler using the proto
 +# We call MAKE sequentially because we don't want build-final to explicitly depend on build-proto,
 +# as that causes a complete recompilation of both proto and final everytime you touch the 
 +# compiler sources.
 +all:
 +	$(MAKE) build-proto
 +	$(MAKE) build
 +
 +# We need the bootstrap's FSharp.Core to run the proto
 +build-proto: $(bootstrapdir)FSharp.Core.dll $(bootstrapdir)FSharp.Core.sigdata $(bootstrapdir)FSharp.Core.optdata
 +	@-mkdir $(protodir)
 +	cp -p $(bootstrapdir)FSharp.Core.dll $(protodir)FSharp.Core.dll
 +	cp -p $(bootstrapdir)FSharp.Core.sigdata $(protodir)FSharp.Core.sigdata
 +	cp -p $(bootstrapdir)FSharp.Core.optdata $(protodir)FSharp.Core.optdata
 +	$(MAKE) -C FSharp.Build-proto Configuration=proto $@
 +	$(MAKE) -C FSharp.Compiler-proto Configuration=proto $@
 +	$(MAKE) -C Fsc-proto Configuration=proto $@
 +
 +build clean install:
 +	$(MAKE) -C FSharp.Core TargetFramework=net40 $@
 +	$(MAKE) -C FSharp.Build $@
 +	$(MAKE) -C FSharp.Compiler $@
 +	$(MAKE) -C Fsc $@
 +	$(MAKE) -C FSharp.Compiler.Interactive.Settings $@
 +	$(MAKE) -C FSharp.Compiler.Server.Shared $@
 +	$(MAKE) -C FSharp.Data.TypeProviders $@
 +	$(MAKE) -C fsi $@
 +	$(MAKE) -C fsiAnyCpu $@
 +	$(MAKE) -C policy.2.0.FSharp.Core $@
 +	$(MAKE) -C policy.4.0.FSharp.Core $@
 +	$(MAKE) -C policy.2.3.FSharp.Core $@
 +	$(MAKE) -C policy.3.3.FSharp.Core $@
 +	$(MAKE) -C policy.4.3.FSharp.Core $@
 +	$(MAKE) -C policy.2.0.FSharp.Core TargetFramework=net20 $@
 +	$(MAKE) -C policy.2.3.FSharp.Core TargetFramework=net20 $@
 +	$(MAKE) -C FSharp.Core TargetFramework=net20 $@
 +	$(MAKE) -C FSharp.Core TargetFramework=monodroid $@
 +	$(MAKE) -C FSharp.Core TargetFramework=monotouch $@
 +	$(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.0 TargetFramework=net40 $@
 +	$(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.0 TargetFramework=net20 $@
 +ifeq ("$(pclenabled47)", "yes")
- 	$(MAKE) -C FSharp.Core TargetFramework=portable-net45+sl5+win8 $@
- 	$(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.0 TargetFramework=portable-net45+sl5+win8 $@
++	$(MAKE) -C FSharp.Core TargetFramework=portable47 $@
++	$(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.0 TargetFramework=portable47 $@
 +endif
 +ifeq ("$(pclenabled7)", "yes")
- 	$(MAKE) -C FSharp.Core TargetFramework=netcore7 $@
++	$(MAKE) -C FSharp.Core TargetFramework=portable7 $@
 +endif
 +ifeq ("$(pclenabled78)", "yes")
- 	$(MAKE) -C FSharp.Core TargetFramework=netcore78 $@
++	$(MAKE) -C FSharp.Core TargetFramework=portable78 $@
 +endif
 +ifeq ("$(pclenabled259)", "yes")
- 	$(MAKE) -C FSharp.Core TargetFramework=netcore259 $@
++	$(MAKE) -C FSharp.Core TargetFramework=portable259 $@
 +endif
 +
 +all-monotouch-monodroid:
 +	$(MAKE) build-proto
 +	$(MAKE) -C FSharp.Core TargetFramework=monodroid build
 +	$(MAKE) -C FSharp.Core TargetFramework=monotouch build
 +
 +
 +
 +
diff --cc tests/fsharp/core/netcore/netcore7/run.bat
index 971ebdc,e999ffe..fe9f64b
--- a/tests/fsharp/core/netcore/netcore7/run.bat
+++ b/tests/fsharp/core/netcore/netcore7/run.bat
@@@ -1,13 -1,17 +1,13 @@@
  @if "%_echo%"=="" echo off
  
 +
  setlocal
  
- call %~d0%~p0..\..\..\config.bat
+ call %~d0%~p0..\..\..\..\config.bat
  
 -IF /I "%INSTALL_SKU%" NEQ "ULTIMATE" (
 -    echo Test not supported except on Ultimate
 -    exit /b 0
 -)
 -
  set CONTROL_FAILURES_LOG=%~dp0\control_failures.log
  
- .\ConsoleApplication1\bin\Debug\PortableTestEntry.exe
+ ..\ConsoleApplication1\bin\Debug\profile7\PortableTestEntry.exe
  endlocal
  exit /b %ERRORLEVEL%
  
diff --cc tests/fsharp/core/netcore/netcorelibrary1/netcoretestinglibrary.fsproj
index 8eb815b,73e588a..40c961d
--- a/tests/fsharp/core/netcore/netcorelibrary1/netcoretestinglibrary.fsproj
+++ b/tests/fsharp/core/netcore/netcorelibrary1/netcoretestinglibrary.fsproj
@@@ -23,19 -37,20 +37,24 @@@
      <DebugType>full</DebugType>
      <Optimize>false</Optimize>
      <Tailcalls>false</Tailcalls>
 +    <OutputPath>bin\Debug\</OutputPath>
 +    <DefineConstants>TRACE;DEBUG;Portable;NetCore;COMPILED;ALL_IN_ONE</DefineConstants>
+     <DefineConstants>TRACE;DEBUG;Portable;NetCore;COMPILED</DefineConstants>
      <WarningLevel>3</WarningLevel>
-     <DocumentationFile>bin\Debug\NetCoreLibrary1.XML</DocumentationFile>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
      <DebugType>pdbonly</DebugType>
      <Optimize>true</Optimize>
      <Tailcalls>true</Tailcalls>
 +    <OutputPath>bin\Release\</OutputPath>
 +    <DefineConstants>TRACE;Portable;NetCore;ALL_IN_ONE</DefineConstants>
+     <DefineConstants>TRACE;Portable;NetCore</DefineConstants>
      <WarningLevel>3</WarningLevel>
-     <DocumentationFile>bin\Release\NetCoreLibrary1.XML</DocumentationFile>
+   </PropertyGroup>
+   <PropertyGroup>
+     <OutputPath>bin\$(Configuration)\$(TestProfile)\</OutputPath>
+     <IntermediateOutputPath>obj\$(Configuration)\$(TestProfile)\</IntermediateOutputPath>
+     <DocumentationFile>bin\$(Configuration)\$(TestProfile)\PortableAutomationHelperLibrary.XML</DocumentationFile>
    </PropertyGroup>
    <ItemGroup>
      <Reference Include="FSharp.Core">

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-cli-apps/packages/fsharp.git



More information about the Pkg-cli-apps-commits mailing list