diff --git a/.gitignore b/.gitignore
index b1a739b148d..e4d0670940f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,14 @@
lib/debug
lib/release
lib/proto
-lib/bootstrap/4.0/*.mdb
-lib/bootstrap/4.0/*.xml
-lib/bootstrap/4.0/fsharpc
-lib/bootstrap/4.0/fsharpi
-lib/bootstrap/4.0/policy*
+lib/bootstrap/4.1/*.mdb
+lib/bootstrap/4.1/*.xml
+lib/bootstrap/4.1/fsharpc
+lib/bootstrap/4.1/fsharpi
+lib/bootstrap/4.1/policy*
aclocal.m4
src/*.userprefs
src/fsharp/FSStrings.resources
-lkg
packages
src/fsharp/FSharp.Build/*.resx
src/fsharp/FSharp.Build-proto/*.resx
@@ -66,12 +65,6 @@ tests/projects/Sample_VS2012_FSharp_ConsoleApp_net45_with_resource/Sample_VS2012
obj
extras
ossreadme*.txt
-tests/fsharp/typecheck/sigs/*.exe
-tests/fsharp/typecheck/sigs/*.diff
-tests/fsharp/typecheck/sigs/*.err
-tests/fsharp/typecheck/sigs/*.vsdiff
-tests/fsharp/typecheck/sigs/*.dll
-tests/fsharp/typecheck/sigs/*.vserr
src/fsharp/FSharp.LanguageService.Compiler/illex.*
src/fsharp/FSharp.LanguageService.Compiler/ilpars.*
src/fsharp/FSharp.LanguageService.Compiler/lex.*
@@ -79,27 +72,26 @@ src/fsharp/FSharp.LanguageService.Compiler/pars.*
src/fsharp/FSharp.LanguageService.Compiler/pplex.fs
src/fsharp/FSharp.LanguageService.Compiler/pppars.fs
src/fsharp/FSharp.LanguageService.Compiler/pppars.fsi
-tests/fsharp/typecheck/sigs/*.dll
-tests/fsharp/typecheck/sigs/*.exe
-tests/fsharp/typeProviders/builtin/SqlDataConnection/DataDirectory/
-tests/fsharp/typeProviders/builtin/SqlDataConnection/ExampleResolutionFolder/
-tests/fsharp/typeProviders/builtin/SqlEntityConnection/DataDirectory/
vsintegration/src/unittests/Unittests.fsi
+tests/*FSharp_Failures.env
+tests/*FSharp_Failures.lst
tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.dll
tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.pdb
-tests/fsharp/typeProviders/helloWorld/bincompat1/
-tests/fsharp/typeProviders/helloWorld/bincompat2/
tests/XFSharpQA_Failures.log.*
vsintegration/src/vs/FsPkgs/FSharp.Project/FS/FSharp.ProjectSystem.FSharp.fsi
vsintegration/src/vs/FsPkgs/FSharp.Project/FS/ctofiles/
tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Utils.dll
tests/fsharpqa/Source/CodeGen/EmittedIL/ComputationExpressions/ComputationExprLibrary.dll
-
+tests/fsharpqa/Source/*FSharpQA_Failures.env
+tests/fsharpqa/Source/*FSharpQA_Failures.lst
*.csproj.user
-
+*.sln.DotSettings.user
*.ide
*.log
*.jrs
*.chk
*.bak
*.orig
+*.mdf
+*.ldf
+tests/**/FSharp.Core.dll
diff --git a/.nuget/NuGet.Config b/.nuget/NuGet.Config
index 67f8ea046ef..baef485daec 100644
--- a/.nuget/NuGet.Config
+++ b/.nuget/NuGet.Config
@@ -3,4 +3,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.nuget/NuGet.exe b/.nuget/NuGet.exe
index c41a0d0debd..9f8781de0db 100644
Binary files a/.nuget/NuGet.exe and b/.nuget/NuGet.exe differ
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae07beb021a..1c1ea833292 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,5 @@
- Copyright (c) Microsoft Open Technologies, Inc. All Rights Reserved.
+ Copyright (c) Microsoft Corporation. All Rights Reserved.
Licensed under the Apache License, Version 2.0.
See License.txt in the project root for license information.
@@ -9,6 +9,28 @@ Visual F#
All notable changes to this project will be documented in this file.
+### [4.0.0] - Visual Studio 2015 Update 1 - 30 November 2015
+
+#### Enhancements
+* Perf: `for i in expr do body` optimization [#219](https://github.com/Microsoft/visualfsharp/pull/219)
+* Remove type provider security dialog and use custom icon for type provider assembly reference [#448](https://github.com/Microsoft/visualfsharp/pull/448)
+* Perf: Enable parallel build inside Visual Studio [#487](https://github.com/Microsoft/visualfsharp/pull/487)
+* Perf: Remove StructBox for Value Types [#549](https://github.com/Microsoft/visualfsharp/pull/549)
+* Add compiler warnings for redundant arguments in raise/failwith/failwithf/nullArg/invalidOp/invalidArg [#630](https://github.com/Microsoft/visualfsharp/pull/630)
+* Add a compiler warning for lower case literals in patterns [#666](https://github.com/Microsoft/visualfsharp/pull/666)
+
+#### Bug fixes
+* Fix scope of types for named values in attributes improperly set [#437](https://github.com/Microsoft/visualfsharp/pull/437)
+* Add general check for escaping typars to check phase [#442](https://github.com/Microsoft/visualfsharp/pull/442)
+* Fix AccessViolationException on obfuscated assemblies [#519](https://github.com/Microsoft/visualfsharp/pull/519)
+* Fix memory leaks while reloading solutions in Visual Studio [#591](https://github.com/Microsoft/visualfsharp/pull/591)
+* Enable breakpoints in `with` augmentations for class types [#608](https://github.com/Microsoft/visualfsharp/pull/608)
+* Fix false escaping type parameter check error [#613](https://github.com/Microsoft/visualfsharp/pull/613)
+* Fix quotation of readonly fields [#622](https://github.com/Microsoft/visualfsharp/pull/622)
+* Keep the reference icons when opening references [#623](https://github.com/Microsoft/visualfsharp/pull/623)
+* Don't suppress missing FSI transitive references [#626](https://github.com/Microsoft/visualfsharp/pull/626)
+* Make Seq.cast's non-generic and generic IEnumerable implementations equivalent [#651](https://github.com/Microsoft/visualfsharp/pull/651)
+
### [4.0.0] - 20 July 2015
Includes commits up to `dd8252eb8d20aaedf7b1c7576cd2a8a82d24f587`
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e4e6059f68e..1f03a068c9d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,14 +3,15 @@
The Visual F# team is proud to be a contributor to F#, and urge you to join in too. F# users and the F# community are grateful for all contributions to F#.
Besides this overview, we recommend ["Becoming a contributor"](http://mrange.wordpress.com/2014/12/11/becoming-an-fsharp-contributor/), a community blog post by Mårten Rånge.
+For those contributing to the core of the F# compiler, we recommend ["The F# Compiler Technical Overview"](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html)
###Getting Started
- Install required software
- Clone the repo
- `git clone https://github.com/microsoft/visualfsharp.git`
-- How to build
-- How to run tests
+- How to build ([DEVGUIDE](DEVGUIDE.md))
+- How to run tests ([TESTGUIDE](TESTGUIDE.md))
###What to Contribute?
@@ -90,6 +91,8 @@ Performance improvement checkins have the following minimum requirements (in add
- The PR must show a reliable, substantive performance improvement that justifies the complexity introduced. For the compiler, performance improvements of ~1% are of interest. For the core library, it will depend on the routine in question. For the Visual F# tools, reactivity of the user interface will be of more interest than raw CPU performance.
+- Performance improvements should not cause performance degradation in existing code.
+
#### Mimimum Bar for Bug Fix Pull Requests
Bug fix PRs have the following minimum requirements
@@ -100,6 +103,8 @@ Bug fix PRs have the following minimum requirements
- Thorough test cases must be included in the PR (unless tests already exist for a failing case). PRs without matching tests will be closed with a polite request to please add the tests. However, if you need help adding tests, please note this in the description of the change and people will guide you through where to add the tests.
+- Bug fix PRs should not cause performance degradation in existing code.
+
#### Mimimum Bar for Feature Pull Requests
Feature PRs have the following minimum requirements:
@@ -112,6 +117,12 @@ Feature PRs have the following minimum requirements:
- For F# Language and Library features, you will be asked to submit a speclet for the feature to the [F# Language Design](https://github.com/fsharp/FSharpLangDesign/) GitHub repository of speclets. In some cases you will only need to do this after your feature is accepted, but for more complex features you may be asked to do this during the review of the feature.
+- Language feature implementations must take into account the expectations of typical users about the performance
+ impact of using the feature. For example, we should avoid the situation where using an optional language feature
+ which appears benign to a typical user has a large negative performance impact on code.
+
+- Language feature implementations should not cause performance degradation in existing code.
+
###Language Evolution
We are committed to carefully managing the evolution of the F# language.
diff --git a/DEVGUIDE.md b/DEVGUIDE.md
index 257bceef898..b133750a2dc 100644
--- a/DEVGUIDE.md
+++ b/DEVGUIDE.md
@@ -1,10 +1,17 @@
# F# Compiler, Core Library and Visual F# Tools Open Contribution Repository
This repo is where you can contribute to the F# compiler, core library and the Visual F# Tools.
+To learn what F# is and why it's interesting, go to [fsharp.org](http://fsharp.org). To get a free F# environment, go to [fsharp.org](http://fsharp.org/use/windows).
-To learn what F# is and why it's interesting, go to [fsharp.org](http://fsharp.org).
+**Compiler Technical Documentation**
-To get a free F# environment, go to [fsharp.org](http://fsharp.org/use/windows).
+The primary technical documents for the F# compiler code are
+
+* [The F# Language Specification](http://fsharp.org/specs/language-spec/)
+
+* [The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html)
+ maintained by contributors to this repository. Please read
+ and contribute to that guide.
**License**
> Contributions made to this repo are subject to terms and conditions of the Apache License, Version 2.0. A copy of the license can be found in the [License.txt](License.txt) file at the root of this distribution.
@@ -15,7 +22,7 @@ To get a free F# environment, go to [fsharp.org](http://fsharp.org/use/windows).
## 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:
+small number of 'smoke' tests using the script used by continuous integration on Windows:
.\appveyor-build.cmd
@@ -66,7 +73,7 @@ Prior to a **Debug** test run, you need to complete **all** of these steps:
[Optional] If testing the Visual Studio bits (see below) you will also need:
- msbuild vsintegration\fsharp-vsintegration-build.proj
+ msbuild VisualFSharp.sln
msbuild vsintegration\fsharp-vsintegration-unittests-build.proj
Prior to a **Release** test run, you need to do **all** of these:
@@ -91,15 +98,15 @@ Prior to a **Release** test run, you need to do **all** of these:
[Optional] If testing **Release** build of the Visual F# IDE Tools (see below) you will also need:
- msbuild vsintegration\fsharp-vsintegration-build.proj /p:Configuration=Release
+ msbuild VisualFSharp.sln /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
+## 4. [Optional] Install the Visual F# IDE Tools and Clobber the F# SDK on the machine
-**Note:** Step #3 will install a VSIX extension into Visual Studio 2015 that changes the Visual F# IDE Tools
+**Note:** Step #2 below 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 #4 will clobber the machine-wide installed F# 4.0 SDK on your machine. This replaces the ``fsi.exe``/``fsiAnyCpu.exe`` used
+**Note:** Step #3 below will clobber the machine-wide installed F# SDK on your machine. This replaces the ``fsi.exe``/``fsiAnyCpu.exe`` used
by Visual F# Interactive and the ``fsc.exe`` used by ``Microsoft.FSharp.targets``. Repairing Visual Studio 2015 is currently the
only way to revert this step.
@@ -111,20 +118,20 @@ For **Debug**:
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)
+1. Run ``vsintegration\update-vsintegration.cmd debug`` (clobbers the installed F# SDK)
For **Release**:
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)
+1. Run ``vsintegration\update-vsintegration.cmd release`` (clobbers the installed F# SDK)
Restart Visual Studio, it should now be running your freshly-built Visual F# IDE Tools with updated F# Interactive.
### Notes on the build
-1. The `update.cmd` script adds the built `FSharp.Core` to the GAC, adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
+1. The `update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
1. The compiler binaries produced are "private" and strong-named signed with a test key.
1. Some additional tools are required to build the compiler, notably `fslex.exe`, `fsyacc.exe`, `FSharp.PowerPack.Build.Tasks.dll`, `FsSrGen.exe`, `FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the `lkg` directory.
1. The overall bootstrapping process executes as follows
@@ -132,3 +139,8 @@ Restart Visual Studio, it should now be running your freshly-built Visual F# IDE
- We use this compiler to compile the source in this distribution, to produce a "proto" compiler, dropped to the `proto` directory. When run, this compiler still relies on `FSharp.Core.dll` with version X.
- We use the proto compiler to compile the source for `FSharp.Core.dll` in this distribution.
- We use the proto compiler to compile the source for `FSharp.Compiler.dll`, `fsc.exe`, `fsi.exe`, and other binaries found in this distribution.
+
+### Further technical resources
+
+The primary technical guide to the core compiler code is [The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html). Please read and contribute to that guide.
+
diff --git a/License.txt b/License.txt
index 4447da3feeb..d985ec668bf 100644
--- a/License.txt
+++ b/License.txt
@@ -1,4 +1,4 @@
-Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
+Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
these files except in compliance with the License. You may obtain a copy of the
diff --git a/README.md b/README.md
index 37ec0d1da39..0c41fb87e40 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,16 @@
-[![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)
[![Join the chat at https://gitter.im/Microsoft/visualfsharp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Microsoft/visualfsharp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
#Visual F# Tools
+## Windows build
+
+| |Debug (Build only)|Release (Build only)|Release (Build and tests)|
+|:----------:|:----------------:|:------------------:|:-----------------------:|
+|**master** |[![Build Status](http://dotnet-ci.cloudapp.net/buildStatus/icon?job=Microsoft_visualfsharp/debug_windows_nt)](http://dotnet-ci.cloudapp.net/job/Microsoft_visualfsharp/job/debug_windows_nt/)|[![Build Status](http://dotnet-ci.cloudapp.net/buildStatus/icon?job=Microsoft_visualfsharp/release_windows_nt)](http://dotnet-ci.cloudapp.net/job/Microsoft_visualfsharp/job/release_windows_nt/)| [![Build status](https://img.shields.io/appveyor/ci/KevinRansom/visualfsharp-radou/master.svg)](https://ci.appveyor.com/project/KevinRansom/visualfsharp-radou/branch/master) |
+|**vs2015** ||| [![Build status](https://img.shields.io/appveyor/ci/KevinRansom/visualfsharp-radou/vs2015.svg)](https://ci.appveyor.com/project/KevinRansom/visualfsharp-radou/branch/vs2015) |
+|**coreclr** ||| [![Build status](https://img.shields.io/appveyor/ci/KevinRansom/visualfsharp-radou/coreclr.svg)](https://ci.appveyor.com/project/KevinRansom/visualfsharp-radou/branch/coreclr) |
+
###Contributing to the F# Language, Library, and Tools
You are invited to join with the F# Community and the Visual F# Tools team to help produce future releases of the F# language compiler, library, and tools.
@@ -16,7 +21,9 @@ Changes contributed here are packaged into the Visual F# Tools, the F# Open Edit
###Engineering status
-[F# 4.0 status](https://github.com/Microsoft/visualfsharp/wiki/F%23-4.0-Status)
+[F# for CoreCLR status](https://github.com/Microsoft/visualfsharp/wiki/F%23-for-CoreCLR---Status)
+
+[F# 4.0 status](https://github.com/Microsoft/visualfsharp/wiki/F%23-4.0-Status) --- Completed, shipped.
###License
@@ -24,15 +31,45 @@ This project is subject to the Apache Licence, Version 2.0. A copy of the licens
###Development and Testing
-See [DEVGUIDE.md](DEVGUIDE.md) and [TESTGUIDE.md](TESTGUIDE.md) in the root of the repo for details on build, development, and testing. A list of required frameworks and development tools can be found [here](https://github.com/Microsoft/visualfsharp/wiki/Required-Software).
-
+See [DEVGUIDE.md](DEVGUIDE.md) and [TESTGUIDE.md](TESTGUIDE.md) in the root of the repo for details on build, development, and testing.
Quickstart guides for build and test can be found [here](https://github.com/Microsoft/visualfsharp/wiki/Build-Quickstart) and [here](https://github.com/Microsoft/visualfsharp/wiki/Test-Quickstart), respectively.
+
+###Required Tools for Windows Development and Testing
+
+###Development tools
+
+For F# 3.1.X development
+
+- [Visual Studio 2013](http://www.visualstudio.com/en-us/downloads) + latest updates (or the free [Visual Studio Community Edition](http://www.visualstudio.com/products/visual-studio-community-vs))
+- [Visual Studio 2013 SDK](https://www.microsoft.com/en-us/download/details.aspx?id=40758)
+
+For F# 4.0 development
+
+- [Visual Studio 2015](http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs)
+- [Visual Studio 2015 SDK](http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs)
+
+###Additional frameworks
+
+- [Git for windows](http://msysgit.github.io/)
+- [Perl](http://www.perl.org/get.html#win32) (ActiveState 5.16.3 is known to be supported)
+- [.NET 3.5](http://www.microsoft.com/en-us/download/details.aspx?id=21)
+- [.NET 4.5](http://www.microsoft.com/en-us/download/details.aspx?id=30653)
+- [.NET 4.5.1](http://www.microsoft.com/en-us/download/details.aspx?id=40779)
+- [MSBuild 12.0](http://www.microsoft.com/en-us/download/details.aspx?id=40760)
+- [Windows 7 SDK](http://www.microsoft.com/en-us/download/details.aspx?id=8279)
+- [Windows 8 SDK](http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx)
+- [Windows 8.1 SDK](http://msdn.microsoft.com/en-us/library/windows/desktop/bg162891.aspx)
###Contributing
Guidelines for contributions to the Visual F# compiler, library, and tools can be found [here](CONTRIBUTING.md).
-If you would like to contribute to the F# ecosystem more generally, please see the F# Software Foundation's [Community Projects](http://fsharp.org/community/projects/) pages.
+How we label issues and PRs: https://github.com/dotnet/roslyn/wiki/Labels-used-for-issues
+
+
+This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/) to clarify expected behavior in our community. This code of conduct has been [adopted by many other projects](http://contributor-covenant.org/adopters/). For more information see the [Code of conduct](https://github.com/Microsoft/visualfsharp/wiki/Code-of-Conduct).
+
+If you would like to contribute to the F# ecosystem more generally see the F# Software Foundation's [Community Projects](http://fsharp.org/community/projects/) pages.
###Code Flow to Other Platforms
@@ -43,3 +80,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/).
+
diff --git a/TESTGUIDE.md b/TESTGUIDE.md
index c676493d187..b54f7a43a7d 100644
--- a/TESTGUIDE.md
+++ b/TESTGUIDE.md
@@ -23,7 +23,7 @@ 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)
-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.
+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 require 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).
@@ -103,7 +103,7 @@ To build these unit test binaries, from the `src` directory call
- `msbuild fsharp-library-unittests-build.proj`
- Output binary is `FSharp.Core.Unittests.dll`
-You can execute and re-run these tests using any standard NUnit approach - via graphical `nunit.exe` or on the command line via `nunit-console.exe`.
+You can execute and re-run these tests using any standard NUnit approach - via graphical `nunit.exe` or on the command line via `nunit3-console.exe`.
### Visual F# Tools IDE Unit Test Suite
@@ -113,9 +113,9 @@ To build the unit test binary, call
msbuild fsharp-vsintegration-unittests-build.proj
```
-from the `src` directory. Tests are contained in the binary `Unittests.dll`.
+from the `src` directory. Tests are contained in the binary `VisualFSharp.Unittests.dll`.
-The IDE unit tests rely on the "Salsa" library, which is a set of Visual Studio mocks. The code for Salsa resides at `vsintegration\src\Salsa`.
+The IDE unit tests rely on the "VisualFSharp.Salsa" library, which is a set of Visual Studio mocks. The code for Salsa resides at `vsintegration\src\Salsa`.
Note that for compatibility reasons, the IDE unit tests should be run in a 32-bit process, either `nunit-console-x86.exe` or `nunit-x86.exe`.
diff --git a/vsintegration/src/Deployment.sln b/VisualFSharp.sln
similarity index 82%
rename from vsintegration/src/Deployment.sln
rename to VisualFSharp.sln
index f322743e9af..7010474b3d8 100644
--- a/vsintegration/src/Deployment.sln
+++ b/VisualFSharp.sln
@@ -1,99 +1,117 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
-VisualStudioVersion = 14.0.22512.0
+VisualStudioVersion = 14.0.24720.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnableOpenSource", "deployment\EnableOpenSource\EnableOpenSource.csproj", "{4D7BE558-E6BF-44DA-8CE2-46AA6E0DC2E7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnableOpenSource", "vsintegration\src\deployment\EnableOpenSource\EnableOpenSource.csproj", "{4D7BE558-E6BF-44DA-8CE2-46AA6E0DC2E7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ItemTemplates", "Templates\ItemTemplates\ItemTemplates.csproj", "{CE3EB47C-F7E7-4A5A-9F92-29A22DE218C6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ItemTemplates", "vsintegration\src\Templates\ItemTemplates\ItemTemplates.csproj", "{CE3EB47C-F7E7-4A5A-9F92-29A22DE218C6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SilverlightProjectTemplates", "Templates\SilverlightProjectTemplates\SilverlightProjectTemplates.csproj", "{15A57828-F9F5-4FB4-8E1E-AE7622A10F70}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SilverlightProjectTemplates", "vsintegration\src\Templates\SilverlightProjectTemplates\SilverlightProjectTemplates.csproj", "{15A57828-F9F5-4FB4-8E1E-AE7622A10F70}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCoreProjectTemplates", "Templates\NetCoreProjectTemplates\NetCoreProjectTemplates.csproj", "{5B739CF3-1116-4EB4-B598-6C16BEA81CE5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCoreProjectTemplates", "vsintegration\src\Templates\NetCoreProjectTemplates\NetCoreProjectTemplates.csproj", "{5B739CF3-1116-4EB4-B598-6C16BEA81CE5}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortableLibraryProjectTemplates", "Templates\PortableLibraryProjectTemplates\PortableLibraryProjectTemplates.csproj", "{DB374A0C-7560-479F-9B21-D37C81F7624F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortableLibraryProjectTemplates", "vsintegration\src\Templates\PortableLibraryProjectTemplates\PortableLibraryProjectTemplates.csproj", "{DB374A0C-7560-479F-9B21-D37C81F7624F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TutorialProjectTemplates", "Templates\TutorialProjectTemplates\TutorialProjectTemplates.csproj", "{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TutorialProjectTemplates", "vsintegration\src\Templates\TutorialProjectTemplates\TutorialProjectTemplates.csproj", "{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleProjectTemplates", "Templates\ConsoleProjectTemplates\ConsoleProjectTemplates.csproj", "{604F0DAA-2D33-48DD-B162-EDF0B672803D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleProjectTemplates", "vsintegration\src\Templates\ConsoleProjectTemplates\ConsoleProjectTemplates.csproj", "{604F0DAA-2D33-48DD-B162-EDF0B672803D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryProjectTemplates", "Templates\LibraryProjectTemplates\LibraryProjectTemplates.csproj", "{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryProjectTemplates", "vsintegration\src\Templates\LibraryProjectTemplates\LibraryProjectTemplates.csproj", "{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VsProDeployTemplates", "deployment\VsProDeployTemplates\VsProDeployTemplates.csproj", "{493D19F9-35A4-4D0B-9B25-CA948823B709}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VsProDeployTemplates", "vsintegration\src\deployment\VsProDeployTemplates\VsProDeployTemplates.csproj", "{493D19F9-35A4-4D0B-9B25-CA948823B709}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VWDExpressDeployTemplates", "deployment\VWDExpressDeployTemplates\VWDExpressDeployTemplates.csproj", "{530DF8CA-7996-407A-B533-D0C2873257AF}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VWDExpressDeployTemplates", "vsintegration\src\deployment\VWDExpressDeployTemplates\VWDExpressDeployTemplates.csproj", "{530DF8CA-7996-407A-B533-D0C2873257AF}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WDExpressDeployTemplates", "deployment\WDExpressDeployTemplates\WDExpressDeployTemplates.csproj", "{98ABDE09-9E08-49C7-B006-FB3CB5365B54}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WDExpressDeployTemplates", "vsintegration\src\deployment\WDExpressDeployTemplates\WDExpressDeployTemplates.csproj", "{98ABDE09-9E08-49C7-B006-FB3CB5365B54}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler", "..\..\src\fsharp\FSharp.Compiler\FSharp.Compiler.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler", "src\fsharp\FSharp.Compiler\FSharp.Compiler.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSHarp.VS.FSI", "vs\FsPkgs\FSharp.VS.FSI\FSHarp.VS.FSI.fsproj", "{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.VS.FSI", "vsintegration\src\vs\FsPkgs\FSharp.VS.FSI\FSharp.VS.FSI.fsproj", "{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Server.Shared", "..\..\src\fsharp\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Server.Shared", "src\fsharp\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core", "..\..\src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core", "src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.LanguageService.Compiler", "..\..\src\fsharp\FSharp.LanguageService.Compiler\FSharp.LanguageService.Compiler.fsproj", "{A437A6EC-5323-47C2-8F86-E2CAC54FF152}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.LanguageService.Compiler", "src\fsharp\FSharp.LanguageService.Compiler\FSharp.LanguageService.Compiler.fsproj", "{A437A6EC-5323-47C2-8F86-E2CAC54FF152}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.LanguageService", "vs\FsPkgs\FSharp.LanguageService\FSharp.LanguageService.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.LanguageService", "vsintegration\src\vs\FsPkgs\FSharp.LanguageService\FSharp.LanguageService.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FSharp.LanguageService.Base", "vs\FsPkgs\FSharp.LanguageService\FSharp.LanguageService.Base\FSharp.LanguageService.Base.csproj", "{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FSharp.LanguageService.Base", "vsintegration\src\vs\FsPkgs\FSharp.LanguageService\FSharp.LanguageService.Base\FSharp.LanguageService.Base.csproj", "{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Editor", "vs\FsPkgs\FSharp.Editor\FSharp.Editor.fsproj", "{65E0E82A-EACE-4787-8994-888674C2FE87}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Editor", "vsintegration\src\vs\FsPkgs\FSharp.Editor\FSharp.Editor.fsproj", "{65E0E82A-EACE-4787-8994-888674C2FE87}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectSystem.Base", "vs\FsPkgs\FSharp.Project\Common.Source.CSharp\Project\ProjectSystem.Base.csproj", "{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectSystem.Base", "vsintegration\src\vs\FsPkgs\FSharp.Project\Common.Source.CSharp\Project\ProjectSystem.Base.csproj", "{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}"
EndProject
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "FSharp.PropertiesPages", "vs\FsPkgs\FSharp.Project\VB\FSharpPropPage\FSharp.PropertiesPages.vbproj", "{FCFB214C-462E-42B3-91CA-FC557EFEE74F}"
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "FSharp.PropertiesPages", "vsintegration\src\vs\FsPkgs\FSharp.Project\VB\FSharpPropPage\FSharp.PropertiesPages.vbproj", "{FCFB214C-462E-42B3-91CA-FC557EFEE74F}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ProjectSystem", "vs\FsPkgs\FSharp.Project\FS\ProjectSystem.fsproj", "{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ProjectSystem", "vsintegration\src\vs\FsPkgs\FSharp.Project\FS\ProjectSystem.fsproj", "{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCore259ProjectTemplates", "Templates\NetCore259ProjectTemplates\NetCore259ProjectTemplates.csproj", "{D9D95330-3626-4199-B7AF-17B8E4AF6D87}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCore259ProjectTemplates", "vsintegration\src\Templates\NetCore259ProjectTemplates\NetCore259ProjectTemplates.csproj", "{D9D95330-3626-4199-B7AF-17B8E4AF6D87}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCore78ProjectTemplates", "Templates\NetCore78ProjectTemplates\NetCore78ProjectTemplates.csproj", "{1A8DBF70-4178-4AE3-AF5F-39DDD5692210}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCore78ProjectTemplates", "vsintegration\src\Templates\NetCore78ProjectTemplates\NetCore78ProjectTemplates.csproj", "{1A8DBF70-4178-4AE3-AF5F-39DDD5692210}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Templates", "Templates", "{C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Salsa", "Salsa\Salsa.fsproj", "{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VisualFSharp.Salsa", "vsintegration\src\Salsa\VisualFSharp.Salsa.fsproj", "{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Unittests", "unittests\Unittests.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VisualFSharp.Unittests", "vsintegration\src\unittests\VisualFSharp.Unittests.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttribute", "unittests\Resources.MockTypeProviders\DefinitionLocationAttribute\DefinitionLocationAttribute.csproj", "{DA39AD38-4A58-47BF-9215-E49768295169}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttribute", "vsintegration\src\unittests\Resources.MockTypeProviders\DefinitionLocationAttribute\DefinitionLocationAttribute.csproj", "{DA39AD38-4A58-47BF-9215-E49768295169}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeFileDoesnotExist", "unittests\Resources.MockTypeProviders\DefinitionLocationAttributeFileDoesnotExist\DefinitionLocationAttributeFileDoesnotExist.csproj", "{8C2439BD-0E49-4929-A8B1-29CEE228191E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeFileDoesnotExist", "vsintegration\src\unittests\Resources.MockTypeProviders\DefinitionLocationAttributeFileDoesnotExist\DefinitionLocationAttributeFileDoesnotExist.csproj", "{8C2439BD-0E49-4929-A8B1-29CEE228191E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeLineDoesnotExist", "unittests\Resources.MockTypeProviders\DefinitionLocationAttributeLineDoesnotExist\DefinitionLocationAttributeLineDoesnotExist.csproj", "{F47196DC-186D-4055-BAF2-658282A12F33}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeLineDoesnotExist", "vsintegration\src\unittests\Resources.MockTypeProviders\DefinitionLocationAttributeLineDoesnotExist\DefinitionLocationAttributeLineDoesnotExist.csproj", "{F47196DC-186D-4055-BAF2-658282A12F33}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeWithSpaceInTheType", "unittests\Resources.MockTypeProviders\DefinitionLocationAttributeWithSpaceInTheType\DefinitionLocationAttributeWithSpaceInTheType.csproj", "{D4C88934-5893-467E-A55C-A11ECD6479FE}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeWithSpaceInTheType", "vsintegration\src\unittests\Resources.MockTypeProviders\DefinitionLocationAttributeWithSpaceInTheType\DefinitionLocationAttributeWithSpaceInTheType.csproj", "{D4C88934-5893-467E-A55C-A11ECD6479FE}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "DummyProviderForLanguageServiceTesting", "unittests\Resources.MockTypeProviders\DummyProviderForLanguageServiceTesting\DummyProviderForLanguageServiceTesting.fsproj", "{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "DummyProviderForLanguageServiceTesting", "vsintegration\src\unittests\Resources.MockTypeProviders\DummyProviderForLanguageServiceTesting\DummyProviderForLanguageServiceTesting.fsproj", "{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EditorHideMethodsAttribute", "unittests\Resources.MockTypeProviders\EditorHideMethodsAttribute\EditorHideMethodsAttribute.csproj", "{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EditorHideMethodsAttribute", "vsintegration\src\unittests\Resources.MockTypeProviders\EditorHideMethodsAttribute\EditorHideMethodsAttribute.csproj", "{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "EmptyAssembly", "unittests\Resources.MockTypeProviders\EmptyAssembly\EmptyAssembly.fsproj", "{004982C6-93EA-4E70-B4F0-BE7D7219926A}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "EmptyAssembly", "vsintegration\src\unittests\Resources.MockTypeProviders\EmptyAssembly\EmptyAssembly.fsproj", "{004982C6-93EA-4E70-B4F0-BE7D7219926A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithAdequateComment", "unittests\Resources.MockTypeProviders\XmlDocAttributeWithAdequateComment\XmlDocAttributeWithAdequateComment.csproj", "{243A81AC-A954-4601-833A-60EEEFB00FCD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithAdequateComment", "vsintegration\src\unittests\Resources.MockTypeProviders\XmlDocAttributeWithAdequateComment\XmlDocAttributeWithAdequateComment.csproj", "{243A81AC-A954-4601-833A-60EEEFB00FCD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithEmptyComment", "unittests\Resources.MockTypeProviders\XmlDocAttributeWithEmptyComment\XmlDocAttributeWithEmptyComment.csproj", "{B4595EB6-053A-400E-AA1B-7727F1BC900F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithEmptyComment", "vsintegration\src\unittests\Resources.MockTypeProviders\XmlDocAttributeWithEmptyComment\XmlDocAttributeWithEmptyComment.csproj", "{B4595EB6-053A-400E-AA1B-7727F1BC900F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithLocalizedComment", "unittests\Resources.MockTypeProviders\XmlDocAttributeWithLocalizedComment\XmlDocAttributeWithLocalizedComment.csproj", "{A559D7E8-7EFD-473A-B618-A10B41AB523B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithLocalizedComment", "vsintegration\src\unittests\Resources.MockTypeProviders\XmlDocAttributeWithLocalizedComment\XmlDocAttributeWithLocalizedComment.csproj", "{A559D7E8-7EFD-473A-B618-A10B41AB523B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithLongComment", "unittests\Resources.MockTypeProviders\XmlDocAttributeWithLongComment\XmlDocAttributeWithLongComment.csproj", "{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithLongComment", "vsintegration\src\unittests\Resources.MockTypeProviders\XmlDocAttributeWithLongComment\XmlDocAttributeWithLongComment.csproj", "{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithNullComment", "unittests\Resources.MockTypeProviders\XmlDocAttributeWithNullComment\XmlDocAttributeWithNullComment.csproj", "{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithNullComment", "vsintegration\src\unittests\Resources.MockTypeProviders\XmlDocAttributeWithNullComment\XmlDocAttributeWithNullComment.csproj", "{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build", "..\..\src\fsharp\FSharp.Build\FSharp.Build.fsproj", "{702A7979-BCF9-4C41-853E-3ADFC9897890}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build", "src\fsharp\FSharp.Build\FSharp.Build.fsproj", "{702A7979-BCF9-4C41-853E-3ADFC9897890}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsc", "..\..\src\fsharp\Fsc\Fsc.fsproj", "{C94C257C-3C0A-4858-B5D8-D746498D1F08}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsc", "src\fsharp\Fsc\Fsc.fsproj", "{C94C257C-3C0A-4858-B5D8-D746498D1F08}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Data.TypeProviders", "..\..\src\fsharp\FSharp.Data.TypeProviders\FSharp.Data.TypeProviders.fsproj", "{CB7D20C4-6506-406D-9144-5342C3595F03}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Data.TypeProviders", "src\fsharp\FSharp.Data.TypeProviders\FSharp.Data.TypeProviders.fsproj", "{CB7D20C4-6506-406D-9144-5342C3595F03}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Interactive.Settings", "..\..\src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{649FA588-F02E-457C-9FCF-87E46407481E}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Interactive.Settings", "src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{649FA588-F02E-457C-9FCF-87E46407481E}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsiAnyCPU", "..\..\src\fsharp\fsiAnyCpu\FsiAnyCPU.fsproj", "{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsiAnyCPU", "src\fsharp\fsiAnyCpu\FsiAnyCPU.fsproj", "{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsi", "..\..\src\fsharp\fsi\Fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsi", "src\fsharp\fsi\Fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Tests", "tests\fsharp\FSharp.Tests.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp.Unittests Support", "VisualFSharp.Unittests Support", "{3F044931-FB83-4433-B934-AE66AB27B278}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Unittests", "src\fsharp\FSharp.Compiler.Unittests\FSharp.Compiler.Unittests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core.Unittests", "src\fsharp\FSharp.Core.Unittests\FSharp.Core.Unittests.fsproj", "{88E2D422-6852-46E3-A740-83E391DC7973}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp", "VisualFSharp", "{4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B8DDA694-7939-42E3-95E5-265C2217C142}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{3058BC79-8E79-4645-B05D-48CC182FA8A6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -988,11 +1006,72 @@ Global
{D0E98C0D-490B-4C61-9329-0862F6E87645}.VSRelease|Any CPU.Build.0 = VSRelease|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.VSRelease|x86.ActiveCfg = VSRelease|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.VSRelease|x86.Build.0 = VSRelease|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.Build.0 = Debug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.Build.0 = Proto|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|x86.ActiveCfg = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|x86.Build.0 = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSDebug|Any CPU.ActiveCfg = VSDebug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSDebug|Any CPU.Build.0 = VSDebug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSDebug|x86.ActiveCfg = VSDebug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSDebug|x86.Build.0 = VSDebug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSRelease|Any CPU.ActiveCfg = VSRelease|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSRelease|Any CPU.Build.0 = VSRelease|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSRelease|x86.ActiveCfg = VSRelease|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.VSRelease|x86.Build.0 = VSRelease|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.Build.0 = Debug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.Build.0 = Proto|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|x86.ActiveCfg = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|x86.Build.0 = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSDebug|Any CPU.ActiveCfg = VSDebug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSDebug|Any CPU.Build.0 = VSDebug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSDebug|x86.ActiveCfg = VSDebug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSDebug|x86.Build.0 = VSDebug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSRelease|Any CPU.ActiveCfg = VSRelease|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSRelease|Any CPU.Build.0 = VSRelease|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSRelease|x86.ActiveCfg = VSRelease|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.VSRelease|x86.Build.0 = VSRelease|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.Build.0 = Debug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.Build.0 = Proto|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.Build.0 = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.ActiveCfg = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.Build.0 = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSDebug|Any CPU.ActiveCfg = VSDebug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSDebug|Any CPU.Build.0 = VSDebug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSDebug|x86.ActiveCfg = VSDebug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSDebug|x86.Build.0 = VSDebug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSRelease|Any CPU.ActiveCfg = VSRelease|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSRelease|Any CPU.Build.0 = VSRelease|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSRelease|x86.ActiveCfg = VSRelease|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.VSRelease|x86.Build.0 = VSRelease|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {4D7BE558-E6BF-44DA-8CE2-46AA6E0DC2E7} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{CE3EB47C-F7E7-4A5A-9F92-29A22DE218C6} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{15A57828-F9F5-4FB4-8E1E-AE7622A10F70} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{5B739CF3-1116-4EB4-B598-6C16BEA81CE5} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
@@ -1003,21 +1082,44 @@ Global
{493D19F9-35A4-4D0B-9B25-CA948823B709} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{530DF8CA-7996-407A-B533-D0C2873257AF} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{98ABDE09-9E08-49C7-B006-FB3CB5365B54} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
+ {991DCF75-C2EB-42B6-9A0D-AA1D2409D519} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06} = {B8DDA694-7939-42E3-95E5-265C2217C142}
+ {DED3BBD7-53F4-428A-8C9F-27968E768605} = {3058BC79-8E79-4645-B05D-48CC182FA8A6}
+ {A437A6EC-5323-47C2-8F86-E2CAC54FF152} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
+ {EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {65E0E82A-EACE-4787-8994-888674C2FE87} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {FCFB214C-462E-42B3-91CA-FC557EFEE74F} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {6196B0F8-CAEA-4CF1-AF82-1B520F77FE44} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{D9D95330-3626-4199-B7AF-17B8E4AF6D87} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{1A8DBF70-4178-4AE3-AF5F-39DDD5692210} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {DA39AD38-4A58-47BF-9215-E49768295169} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {8C2439BD-0E49-4929-A8B1-29CEE228191E} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {F47196DC-186D-4055-BAF2-658282A12F33} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {D4C88934-5893-467E-A55C-A11ECD6479FE} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {004982C6-93EA-4E70-B4F0-BE7D7219926A} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {243A81AC-A954-4601-833A-60EEEFB00FCD} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {B4595EB6-053A-400E-AA1B-7727F1BC900F} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {A559D7E8-7EFD-473A-B618-A10B41AB523B} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {AC85EE6D-033C-45F9-B8BA-884BC22EC6D9} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
+ {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
+ {EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
+ {DA39AD38-4A58-47BF-9215-E49768295169} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {8C2439BD-0E49-4929-A8B1-29CEE228191E} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {F47196DC-186D-4055-BAF2-658282A12F33} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {D4C88934-5893-467E-A55C-A11ECD6479FE} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {004982C6-93EA-4E70-B4F0-BE7D7219926A} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {243A81AC-A954-4601-833A-60EEEFB00FCD} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {B4595EB6-053A-400E-AA1B-7727F1BC900F} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {A559D7E8-7EFD-473A-B618-A10B41AB523B} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {AC85EE6D-033C-45F9-B8BA-884BC22EC6D9} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C} = {3F044931-FB83-4433-B934-AE66AB27B278}
+ {702A7979-BCF9-4C41-853E-3ADFC9897890} = {B8DDA694-7939-42E3-95E5-265C2217C142}
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
+ {CB7D20C4-6506-406D-9144-5342C3595F03} = {3058BC79-8E79-4645-B05D-48CC182FA8A6}
+ {649FA588-F02E-457C-9FCF-87E46407481E} = {B8DDA694-7939-42E3-95E5-265C2217C142}
+ {8B3E283D-B5FE-4055-9D80-7E3A32F3967B} = {B8DDA694-7939-42E3-95E5-265C2217C142}
+ {D0E98C0D-490B-4C61-9329-0862F6E87645} = {B8DDA694-7939-42E3-95E5-265C2217C142}
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
+ {3F044931-FB83-4433-B934-AE66AB27B278} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
+ {88E2D422-6852-46E3-A740-83E391DC7973} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
+ {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
EndGlobalSection
EndGlobal
diff --git a/appveyor-build.cmd b/appveyor-build.cmd
index c6039fa1148..b6abcaffc7b 100644
--- a/appveyor-build.cmd
+++ b/appveyor-build.cmd
@@ -1,26 +1,224 @@
+@echo off
+
+:ARGUMENTS_VALIDATION
+
+if /I "%1" == "/help" (goto :USAGE)
+if /I "%1" == "/h" (goto :USAGE)
+if /I "%1" == "/?" (goto :USAGE)
+goto :ARGUMENTS_OK
+
+:USAGE
+
+echo Build and run a subset of test suites
+echo.
+echo Usage:
+echo.
+echo appveyor-build.cmd ^
+echo.
+echo No arguments default to 'smoke' ( build all profiles, run all unit tests, cambridge Smoke, fsharpqa Smoke)
+echo.
+echo To specify multiple values, separate strings by comma
+echo.
+echo The example below run portable47, vs and qa:
+echo.
+echo appveyor-build.cmd portable47,vs,qa_suite
+exit /b 1
+
+:ARGUMENTS_OK
+
+set DO_NET40=0
+set DO_PORTABLE47=0
+set DO_PORTABLE7=0
+set DO_PORTABLE78=0
+set DO_PORTABLE259=0
+set DO_VS=0
+set TEST_NET40=0
+set TEST_PORTABLE47=0
+set TEST_PORTABLE7=0
+set TEST_PORTABLE78=0
+set TEST_PORTABLE259=0
+set TEST_VS=0
+set TEST_CAMBRIDGE_SUITE=0
+set CONF_CAMBRIDGE_SUITE=
+set TEST_QA_SUITE=0
+set CONF_QA_SUITE=
+
+setlocal enableDelayedExpansion
+set /a counter=0
+for /l %%x in (1 1 9) do (
+ set /a counter=!counter!+1
+ call :SET_CONFIG %%!counter! "!counter!"
+)
+setlocal disableDelayedExpansion
+echo.
+echo.
+
+goto :MAIN
+
+:SET_CONFIG
+set BUILD_PROFILE=%~1
+
+if "%BUILD_PROFILE%" == "1" if "%2" == "" (
+ set BUILD_PROFILE=smoke
+)
+
+if "%2" == "" if not "%BUILD_PROFILE%" == "smoke" goto :EOF
+
+echo Parse argument %BUILD_PROFILE%
+
+if /i '%BUILD_PROFILE%' == 'net40' (
+ set DO_NET40=1
+ set TEST_NET40=1
+)
+
+if /i '%BUILD_PROFILE%' == 'portable47' (
+ set DO_PORTABLE47=1
+ set TEST_PORTABLE47=1
+)
+
+if /i '%BUILD_PROFILE%' == 'portable7' (
+ set DO_PORTABLE7=1
+ set TEST_PORTABLE7=1
+)
+
+if /i '%BUILD_PROFILE%' == 'portable78' (
+ set DO_PORTABLE78=1
+ set TEST_PORTABLE78=1
+)
+
+if /i '%BUILD_PROFILE%' == 'portable259' (
+ set DO_PORTABLE259=1
+ set TEST_PORTABLE259=1
+)
+
+if /i '%BUILD_PROFILE%' == 'vs' (
+ set DO_VS=1
+ set TEST_VS=1
+)
+
+if /i '%BUILD_PROFILE%' == 'cambridge_suite' (
+ set DO_NET40=1
+ set TEST_CAMBRIDGE_SUITE=1
+)
+
+if /i '%BUILD_PROFILE%' == 'qa_suite' (
+ set DO_NET40=1
+ set TEST_QA_SUITE=1
+)
+
+if /i '%BUILD_PROFILE%' == 'all' (
+ set DO_NET40=1
+ set DO_PORTABLE47=1
+ set DO_PORTABLE7=1
+ set DO_PORTABLE78=1
+ set DO_PORTABLE259=1
+ set DO_VS=1
+ set TEST_NET40=1
+ set TEST_PORTABLE47=1
+ set TEST_PORTABLE7=1
+ set TEST_PORTABLE78=1
+ set TEST_PORTABLE259=1
+ set TEST_VS=1
+ set TEST_CAMBRIDGE_SUITE=1
+ set TEST_QA_SUITE=1
+)
+
+if /i '%BUILD_PROFILE%' == 'smoke' (
+ set DO_NET40=1
+ set DO_PORTABLE47=1
+ set DO_PORTABLE7=1
+ set DO_PORTABLE78=1
+ set DO_PORTABLE259=1
+ set DO_VS=1
+ set TEST_NET40=1
+ set TEST_PORTABLE47=1
+ set TEST_PORTABLE7=1
+ set TEST_PORTABLE78=1
+ set TEST_PORTABLE259=1
+ set TEST_VS=1
+ set TEST_CAMBRIDGE_SUITE=1
+ set CONF_CAMBRIDGE_SUITE=Smoke
+ set TEST_QA_SUITE=1
+ set CONF_QA_SUITE=Smoke
+)
+
+if /i '%BUILD_PROFILE%' == 'smoke_only' (
+ set CONF_CAMBRIDGE_SUITE=Smoke
+ set CONF_QA_SUITE=Smoke
+)
+
+if /i '%BUILD_PROFILE%' == 'build_only' (
+ set TEST_NET40=0
+ set TEST_PORTABLE47=0
+ set TEST_PORTABLE7=0
+ set TEST_PORTABLE78=0
+ set TEST_PORTABLE259=0
+ set TEST_VS=0
+ set TEST_CAMBRIDGE_SUITE=0
+ set TEST_QA_SUITE=0
+)
+
+goto :EOF
+
+:MAIN
+
+REM after this point, BUILD_PROFILE variable should not be used, use only DO_* or TEST_*
+
+echo Build/Tests configuration:
+echo.
+echo DO_NET40=%DO_NET40%
+echo DO_PORTABLE47=%DO_PORTABLE47%
+echo DO_PORTABLE7=%DO_PORTABLE7%
+echo DO_PORTABLE78=%DO_PORTABLE78%
+echo DO_PORTABLE259=%DO_PORTABLE259%
+echo DO_VS=%DO_VS%
+echo.
+echo TEST_NET40=%TEST_NET40%
+echo TEST_PORTABLE47=%TEST_PORTABLE47%
+echo TEST_PORTABLE7=%TEST_PORTABLE7%
+echo TEST_PORTABLE78=%TEST_PORTABLE78%
+echo TEST_PORTABLE259=%TEST_PORTABLE259%
+echo TEST_VS=%TEST_VS%
+echo TEST_CAMBRIDGE_SUITE=%TEST_CAMBRIDGE_SUITE%
+echo CONF_CAMBRIDGE_SUITE=%CONF_CAMBRIDGE_SUITE%
+echo TEST_QA_SUITE=%TEST_QA_SUITE%
+echo CONF_QA_SUITE=%CONF_QA_SUITE%
+echo.
+
@echo on
set APPVEYOR_CI=1
:: Check prerequisites
if not '%VisualStudioVersion%' == '' goto vsversionset
+if exist "%VS140COMNTOOLS%..\ide\devenv.exe" set VisualStudioVersion=14.0
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\common7\ide\devenv.exe" set VisualStudioVersion=14.0
if exist "%ProgramFiles%\Microsoft Visual Studio 14.0\common7\ide\devenv.exe" set VisualStudioVersion=14.0
if not '%VisualStudioVersion%' == '' goto vsversionset
+if exist "%VS120COMNTOOLS%..\ide\devenv.exe" set VisualStudioVersion=12.0
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\common7\ide\devenv.exe" set VisualStudioVersion=12.0
if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\common7\ide\devenv.exe" set VisualStudioVersion=12.0
:vsversionset
-if '%VisualStudioVersion%' == '' echo Error: Could not find an installation of Visual Studio && goto :eof
+if '%VisualStudioVersion%' == '' echo Error: Could not find an installation of Visual Studio && goto :failure
if exist "%ProgramFiles(x86)%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe" set _msbuildexe="%ProgramFiles(x86)%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe"
if exist "%ProgramFiles%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe" set _msbuildexe="%ProgramFiles%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe"
-if not exist %_msbuildexe% echo Error: Could not find MSBuild.exe. && goto :eof
+if not exist %_msbuildexe% echo Error: Could not find MSBuild.exe. && goto :failure
+
+:: See
+if defined APPVEYOR (
+ rem See
+ if exist "C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" (
+ rem HACK HACK HACK
+ set _msbuildexe=%_msbuildexe% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
+ )
+)
set _ngenexe="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\ngen.exe"
if not exist %_ngenexe% echo Error: Could not find ngen.exe. && goto :failure
-.\.nuget\NuGet.exe restore packages.config -PackagesDirectory packages
+.\.nuget\NuGet.exe restore packages.config -PackagesDirectory packages -ConfigFile .nuget\nuget.config
@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
:: Build
@@ -36,63 +234,120 @@ if not exist %_ngenexe% echo Error: Could not find ngen.exe. && goto :failure
%_msbuildexe% src/fsharp-compiler-build.proj /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: compiler build failed && goto :failure
+if '%DO_PORTABLE47%' == '1' (
%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library portable47 build failed && goto :failure
+)
+if '%DO_PORTABLE7%' == '1' (
%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library portable7 build failed && goto :failure
+)
+if '%DO_PORTABLE78%' == '1' (
%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library portable78 build failed && goto :failure
+)
+if '%DO_PORTABLE259%' == '' (
%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library portable259 build failed && goto :failure
+)
+if '%TEST_NET40%' == '1' (
%_msbuildexe% src/fsharp-compiler-unittests-build.proj /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: compiler unittests build failed && goto :failure
%_msbuildexe% src/fsharp-library-unittests-build.proj /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library unittests build failed && goto :failure
+)
+if '%TEST_PORTABLE47%' == '1' (
%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library unittests build failed portable47 && goto :failure
+)
+if '%TEST_PORTABLE7%' == '1' (
%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library unittests build failed portable7 && goto :failure
+)
+if '%TEST_PORTABLE78%' == '1' (
%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library unittests build failed portable78 && goto :failure
+)
+if '%TEST_PORTABLE259%' == '1' (
%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: library unittests build failed portable259 && goto :failure
+)
-%_msbuildexe% vsintegration\fsharp-vsintegration-build.proj /p:Configuration=Release
+if '%DO_VS%' == '1' (
+%_msbuildexe% VisualFSharp.sln /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: VS integration build failed && goto :failure
+)
+if '%TEST_VS%' == '1' (
%_msbuildexe% vsintegration\fsharp-vsintegration-unittests-build.proj /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: VS integration unit tests build failed && goto :failure
+)
@echo on
call src\update.cmd release -ngen
+REM This clobbers the installed F# SDK on the machine
+REM call vsintegration\update-vsintegration.cmd release
+pushd tests
@echo on
-call tests\BuildTestTools.cmd release
-@if ERRORLEVEL 1 echo Error: 'tests\BuildTestTools.cmd release' failed && goto :failure
+call BuildTestTools.cmd release
+@if ERRORLEVEL 1 echo Error: 'BuildTestTools.cmd release' failed && goto :failure
@echo on
-pushd tests
+if '%TEST_CAMBRIDGE_SUITE%' == '1' (
+set FSHARP_TEST_SUITE_USE_NUNIT_RUNNER=true
-call RunTests.cmd release fsharp Smoke
-@if ERRORLEVEL 1 type testresults\fsharp_failures.log && echo Error: 'RunTests.cmd release fsharp Smoke' failed && goto :failure
+%_msbuildexe% fsharp\fsharp.tests.fsproj /p:Configuration=Release
+@if ERRORLEVEL 1 echo Error: fsharp cambridge tests for nunit failed && goto :failure
-call RunTests.cmd release fsharpqa Smoke
-@if ERRORLEVEL 1 type testresults\fsharpqa_failures.log && echo Error: 'RunTests.cmd release fsharpqa Smoke' failed && goto :failure
+call RunTests.cmd release fsharp %CONF_CAMBRIDGE_SUITE%
+@if ERRORLEVEL 1 type testresults\fsharp_failures.log && echo Error: 'RunTests.cmd release fsharp %CONF_CAMBRIDGE_SUITE%' failed && goto :failure
+set FSHARP_TEST_SUITE_USE_NUNIT_RUNNER=
+)
+if '%TEST_QA_SUITE%' == '1' (
+call RunTests.cmd release fsharpqa %CONF_QA_SUITE%
+@if ERRORLEVEL 1 type testresults\fsharpqa_failures.log && echo Error: 'RunTests.cmd release fsharpqa %CONF_QA_SUITE%' failed && goto :failure
+)
+
+if '%TEST_NET40%' == '1' (
call RunTests.cmd release compilerunit
@if ERRORLEVEL 1 echo Error: 'RunTests.cmd release compilerunit' failed && goto :failure
call RunTests.cmd release coreunit
@if ERRORLEVEL 1 echo Error: 'RunTests.cmd release coreunit' failed && goto :failure
+)
+
+if '%TEST_PORTABLE47%' == '1' (
+call RunTests.cmd release coreunitportable47
+@if ERRORLEVEL 1 echo Error: 'RunTests.cmd release coreunitportable47' failed && goto :failure
+)
+
+if '%TEST_PORTABLE7%' == '1' (
+call RunTests.cmd release coreunitportable7
+@if ERRORLEVEL 1 echo Error: 'RunTests.cmd release coreunitportable7' failed && goto :failure
+)
+
+if '%TEST_PORTABLE78%' == '1' (
+call RunTests.cmd release coreunitportable78
+@if ERRORLEVEL 1 echo Error: 'RunTests.cmd release coreunitportable78' failed && goto :failure
+)
+
+if '%TEST_PORTABLE259%' == '1' (
+call RunTests.cmd release coreunitportable259
+@if ERRORLEVEL 1 echo Error: 'RunTests.cmd release coreunitportable259' failed && goto :failure
+)
+
+rem tests for TEST_VS are not executed
popd
diff --git a/appveyor.yml b/appveyor.yml
index 0dbbaa64802..f528d69f665 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,8 +1,14 @@
-os: Windows Server 2012 R2
+os: Visual Studio 2015
+
+environment:
+ matrix:
+ - BUILD_PROFILE: net40,portable7,portable47,portable78,portable259,vs
+ - BUILD_PROFILE: cambridge_suite,smoke_only
+ - BUILD_PROFILE: qa_suite,smoke_only
init:
build_script:
- - cmd: appveyor-build.cmd
+ - cmd: appveyor-build.cmd %BUILD_PROFILE%
# scripts that run after cloning repository
install:
@@ -13,4 +19,4 @@ test: off
version: 0.0.1.{build}
artifacts:
- path: Release
- name: Release
+ name: Release
\ No newline at end of file
diff --git a/jenkins-build.cmd b/jenkins-build.cmd
new file mode 100644
index 00000000000..0e5eb363620
--- /dev/null
+++ b/jenkins-build.cmd
@@ -0,0 +1,118 @@
+@echo off
+
+:ARGUMENTS_VALIDATION
+
+if /I "%1" == "/help" (goto :USAGE)
+if /I "%1" == "/h" (goto :USAGE)
+if /I "%1" == "/?" (goto :USAGE)
+
+set BUILD_PROFILE=%1
+
+if /I "%BUILD_PROFILE%" == "debug" (
+ goto :ARGUMENTS_OK
+)
+if /I "%BUILD_PROFILE%" == "release" (
+ goto :ARGUMENTS_OK
+)
+
+echo '%BUILD_PROFILE%' is not a valid profile
+goto :USAGE
+
+:USAGE
+
+echo Usage:
+echo Builds the source tree using a specific configuration
+echo jenkins-build.cmd ^
+exit /b 1
+
+:ARGUMENTS_OK
+
+if not '%VisualStudioVersion%' == '' goto vsversionset
+if exist "%VS140COMNTOOLS%..\ide\devenv.exe" set VisualStudioVersion=14.0
+if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\common7\ide\devenv.exe" set VisualStudioVersion=14.0
+if exist "%ProgramFiles%\Microsoft Visual Studio 14.0\common7\ide\devenv.exe" set VisualStudioVersion=14.0
+if not '%VisualStudioVersion%' == '' goto vsversionset
+if exist "%VS120COMNTOOLS%..\ide\devenv.exe" set VisualStudioVersion=12.0
+if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\common7\ide\devenv.exe" set VisualStudioVersion=12.0
+if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\common7\ide\devenv.exe" set VisualStudioVersion=12.0
+
+:vsversionset
+if '%VisualStudioVersion%' == '' echo Error: Could not find an installation of Visual Studio && goto :failure
+
+if exist "%ProgramFiles(x86)%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe" set _msbuildexe="%ProgramFiles(x86)%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe"
+if exist "%ProgramFiles%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe" set _msbuildexe="%ProgramFiles%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe"
+if not exist %_msbuildexe% echo Error: Could not find MSBuild.exe. && goto :failure
+
+set _ngenexe="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\ngen.exe"
+if not exist %_ngenexe% echo Error: Could not find ngen.exe. && goto :failure
+
+echo Restoring nuget packages:
+
+.\.nuget\NuGet.exe restore packages.config -PackagesDirectory packages -ConfigFile .nuget\nuget.config
+@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
+
+echo Building the source tree using configuration: %BUILD_PROFILE%
+
+%_msbuildexe% src\fsharp-proto-build.proj
+@if ERRORLEVEL 1 echo Error: compiler proto build failed && goto :failure
+
+%_ngenexe% install Proto\net40\bin\fsc-proto.exe
+@if ERRORLEVEL 1 echo Error: NGen of proto failed && goto :failure
+
+%_msbuildexe% src/fsharp-library-build.proj /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library build failed && goto :failure
+
+%_msbuildexe% src/fsharp-compiler-build.proj /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: compiler build failed && goto :failure
+
+%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library portable47 build failed && goto :failure
+
+%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable7 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library portable7 build failed && goto :failure
+
+%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable78 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library portable78 build failed && goto :failure
+
+%_msbuildexe% src/fsharp-library-build.proj /p:TargetFramework=portable259 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library portable259 build failed && goto :failure
+
+echo Building the test tree using configuration: %BUILD_PROFILE%
+
+%_msbuildexe% src/fsharp-compiler-unittests-build.proj /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: compiler unittests build failed && goto :failure
+
+%_msbuildexe% src/fsharp-library-unittests-build.proj /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library unittests build failed && goto :failure
+
+%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library unittests build failed portable47 && goto :failure
+
+%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library unittests build failed portable7 && goto :failure
+
+%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library unittests build failed portable78 && goto :failure
+
+%_msbuildexe% src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259 /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: library unittests build failed portable259 && goto :failure
+
+%_msbuildexe% tests/fsharp\fsharp.tests.fsproj /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: fsharp cambridge tests for nunit failed && goto :failure
+
+%_msbuildexe% VisualFSharp.sln /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: VS integration build failed && goto :failure
+
+%_msbuildexe% vsintegration\fsharp-vsintegration-unittests-build.proj /p:Configuration=%BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: VS integration unit tests build failed && goto :failure
+
+echo Running update scripts
+
+@echo on
+call tests/BuildTestTools.cmd %BUILD_PROFILE%
+@if ERRORLEVEL 1 echo Error: 'BuildTestTools.cmd %BUILD_PROFILE%' failed && goto :failure
+
+goto :eof
+
+:failure
+exit /b 1
diff --git a/lkg/FSharp-14.0.23413.0/bin/FSharp.Build.dll b/lkg/FSharp-14.0.23413.0/bin/FSharp.Build.dll
new file mode 100644
index 00000000000..1c3381272a8
Binary files /dev/null and b/lkg/FSharp-14.0.23413.0/bin/FSharp.Build.dll differ
diff --git a/lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.Interactive.Settings.dll b/lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.Interactive.Settings.dll
new file mode 100644
index 00000000000..6df56160452
Binary files /dev/null and b/lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.Interactive.Settings.dll differ
diff --git a/lkg/FSharp-4.0.30319.1/bin/FSharp.Compiler.Server.Shared.dll b/lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.Server.Shared.dll
similarity index 100%
rename from lkg/FSharp-4.0.30319.1/bin/FSharp.Compiler.Server.Shared.dll
rename to lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.Server.Shared.dll
diff --git a/lkg/FSharp-4.0.30319.1/bin/FSharp.Compiler.dll b/lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.dll
similarity index 56%
rename from lkg/FSharp-4.0.30319.1/bin/FSharp.Compiler.dll
rename to lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.dll
index 122194a8d8c..13cf1c8bee2 100644
Binary files a/lkg/FSharp-4.0.30319.1/bin/FSharp.Compiler.dll and b/lkg/FSharp-14.0.23413.0/bin/FSharp.Compiler.dll differ
diff --git a/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.dll b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.dll
new file mode 100644
index 00000000000..d2ede9e9789
Binary files /dev/null and b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.dll differ
diff --git a/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.optdata b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.optdata
new file mode 100644
index 00000000000..896507e6b38
Binary files /dev/null and b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.optdata differ
diff --git a/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.sigdata b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.sigdata
new file mode 100644
index 00000000000..a383f91dd43
Binary files /dev/null and b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.sigdata differ
diff --git a/lkg/FSharp-4.0.30319.1/bin/FSharp.Core.xml b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.xml
similarity index 68%
rename from lkg/FSharp-4.0.30319.1/bin/FSharp.Core.xml
rename to lkg/FSharp-14.0.23413.0/bin/FSharp.Core.xml
index 81a308d414f..803e617ed71 100644
--- a/lkg/FSharp-4.0.30319.1/bin/FSharp.Core.xml
+++ b/lkg/FSharp-14.0.23413.0/bin/FSharp.Core.xml
@@ -2,30 +2,6 @@
FSharp.Core
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Gets the tail of the list, which is a list containing all the elements of the list, excluding the first element
@@ -47,6 +23,12 @@
Returns an empty list of a particular type
+
+ Gets a slice of the list, the elements of the list from the given start index to the given end index.
+ The start index.
+ The end index.
+ The sub list specified by the input indices.
+
Returns a list with head as its first element and tail as its subsequent elements
A new head value for the list.
@@ -83,9 +65,6 @@
Removes an element from the domain of the map. No exception is raised if the element is not present.
The input key.
The resulting map.
-
-
-
Tests if an element is in the domain of the map.
@@ -93,11 +72,12 @@
True if the map contains the given key.
- Returns a new map with the binding added to the given map.
+ Returns a new map with the binding added to the given map.
+ If a binding with the given key already exists in the input map, the existing binding is replaced by the new binding in the result map.
The input key.
The resulting map.
-
+
Builds a map that contains the bindings of the given IEnumerable.
The input sequence of key/value pairs.
The resulting map.
@@ -165,9 +145,6 @@
one element of the second is not in the first.
The set to test against.
True if this set is a proper subset of otherSet.
-
-
-
A useful shortcut for Set.contains. See the Set module for further operations on sets.
@@ -233,7 +210,7 @@
The zero-based output array.
-
+
Builds a new array whose elements are the results of applying the given function
to each of the elements of the array. The integer indices passed to the
function indicates the element being transformed.
@@ -247,11 +224,11 @@
An array whose elements have been transformed by the given mapping.
-
+
Builds a new array whose elements are the results of applying the given function
to each of the elements of the array.
- For non-zero-based arrays the basing on an input array will be propogated to the output
+ For non-zero-based arrays the basing on an input array will be propagated to the output
array.
A function that is applied to transform each item of the input array.
@@ -273,14 +250,14 @@
The length of the array in the first dimension.
-
+
Applies the given function to each element of the array. The integer indices passed to the
function indicates the index of element.
A function to apply to each element of the array with the indices available as an argument.
The input array.
-
+
Applies the given function to each element of the array.
A function to apply to each element of the array.
@@ -309,7 +286,7 @@
The created array.
Thrown when base1, base2, length1, or length2 is negative.
-
+
Creates a based array given the dimensions and a generator function to compute the elements.
The base for the first dimension of the array.
@@ -340,7 +317,7 @@
The created array.
Thrown when length1 or length2 is negative.
-
+
Creates an array given the dimensions and a generator function to compute the elements.
The length of the first dimension of the array.
@@ -367,7 +344,7 @@
Builds a new array whose elements are the same as the input array.
- For non-zero-based arrays the basing on an input array will be propogated to the output
+ For non-zero-based arrays the basing on an input array will be propagated to the output
array.
The input array.
@@ -417,22 +394,22 @@
The index along the third dimension.
The value to set at the given index.
-
+
Builds a new array whose elements are the results of applying the given function
to each of the elements of the array. The integer indices passed to the
function indicates the element being transformed.
- For non-zero-based arrays the basing on an input array will be propogated to the output
+ For non-zero-based arrays the basing on an input array will be propagated to the output
array.
The function to transform the elements at each index in the array.
The input array.
The array created from the transformed elements.
-
+
Builds a new array whose elements are the results of applying the given function
to each of the elements of the array.
- For non-zero-based arrays the basing on an input array will be propogated to the output
+ For non-zero-based arrays the basing on an input array will be propagated to the output
array.
The function to transform each element of the array.
The input array.
@@ -453,13 +430,13 @@
The input array.
The length of the array in the first dimension.
-
- Applies the given function to each element of the array. The integer indicies passed to the
+
+ Applies the given function to each element of the array. The integer indices passed to the
function indicates the index of element.
The function to apply to each element of the array.
The input array.
-
+
Applies the given function to each element of the array.
The function to apply to each element of the array.
The input array.
@@ -472,7 +449,7 @@
The index along the third dimension.
The value at the given index.
-
+
Creates an array given the dimensions and a generator function to compute the elements.
The length of the first dimension.
The length of the second dimension.
@@ -538,7 +515,7 @@
The input array.
The length of the array in the first dimension.
-
+
Creates an array given the dimensions and a generator function to compute the elements.
The length of the first dimension.
The length of the second dimension.
@@ -565,6 +542,7 @@
The first input array.
The second input array.
The third input array.
+ Thrown when any of the input arrays are null.
Thrown when the input arrays differ in length.
The array of tupled elements.
@@ -573,65 +551,196 @@
raised.
The first input array.
The second input array.
+ Thrown when either of the input arrays is null.
Thrown when the input arrays differ in length.
The array of tupled elements.
-
+
+ Returns an array of sliding windows containing elements drawn from the input
+ array. Each window is returned as a fresh array.
+ The number of elements in each window.
+ The input array.
+ The result array.
+ Thrown when the input array is null.
+ Thrown when windowSize is not positive.
+
+
+ Returns a new array containing only the elements of the array
+ for which the given predicate returns "true".
+ The function to test the input elements.
+ The input array.
+ An array containing the elements for which the given predicate returns true.
+
+ Thrown when the input array is null.
+
+
Splits an array of triples into three arrays.
The input array.
The tuple of three arrays.
+ Thrown when the input array is null.
-
+
Splits an array of pairs into two arrays.
The input array.
The two arrays.
+ Thrown when the input array is null.
+
+
+ Returns an array that contains the elements generated by the given computation.
+ The given initial state argument is passed to the element generator.
+ A function that takes in the current state and returns an option tuple of the next
+ element of the array and the next state value.
+ The initial state value.
+ The result array.
+
+
+ Returns the index of the last element in the array
+ that satisfies the given predicate.
+ The function to test the input elements.
+ The input array.
+ Thrown when the input array is null.
+ The index of the last element that satisfies the predicate, or None.
+
+
+ Tries to find the nth element in the array.
+ Returns None if index is negative or the input array does not contain enough elements.
+ The index of element to retrieve.
+ The input array.
+ The nth element of the array or None.
+ Thrown when the input array is null.
-
+
Returns the index of the first element in the array
that satisfies the given predicate.
The function to test the input elements.
The input array.
+ Thrown when the input array is null.
The index of the first element that satisfies the predicate, or None.
-
+
+ Returns the last element for which the given function returns true.
+ Return None if no such element exists.
+ The function to test the input elements.
+ The input array.
+ Thrown when the input array is null.
+ The last element that satisfies the predicate, or None.
+
+
Returns the first element for which the given function returns true.
Return None if no such element exists.
The function to test the input elements.
The input array.
The first element that satisfies the predicate, or None.
+ Thrown when the input array is null.
+
+
+ Returns at most N elements in a new array.
+ The maximum number of items to return.
+ The input array.
+ The result array.
+ Thrown when the input array is null.
Views the given array as a sequence.
The input array.
The sequence of array elements.
+ Thrown when the input array is null.
Builds a list from the given array.
The input array.
The list of array elements.
+ Thrown when the input array is null.
+
+
+ Returns a new array containing the elements of the original except the first element.
+
+ The input array.
+ Thrown when the array is empty.
+ Thrown when the input array is null.
+ A new array containing the elements of the original except the first element.
+
+
+ Returns an array that contains all elements of the original array while the
+ given predicate returns true, and then returns no further elements.
+
+ A function that evaluates to false when no more items should be returned.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
-
+
+ Returns the first N elements of the array.
+ Throws InvalidOperationException
+ if the count exceeds the number of elements in the array. Array.truncate
+ returns as many items as the array contains instead of throwing an exception.
+
+ The number of items to take.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+ Thrown when count exceeds the number of elements
+ in the list.
+
+
Returns the sum of the results generated by applying the function to each element of the array.
The function to transform the array elements into the type to be summed.
The input array.
The resulting sum.
+ Thrown when the input array is null.
Returns the sum of the elements in the array.
The input array.
The resulting sum.
+ Thrown when the input array is null.
+
+
+ Sorts the elements of an array, in descending order, using the given projection for the keys and returning a new array.
+ Elements are compared using Operators.compare.
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using Seq.sort.
+ The function to transform array elements into the type that is compared.
+ The input array.
+ The sorted array.
+
+
+ Sorts the elements of an array, in descending order, returning a new array. Elements are compared using Operators.compare.
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using Seq.sort.
+ The input array.
+ The sorted array.
+
+
+ Splits an array into two arrays, at the given index.
+ The index at which the array is split.
+ The input array.
+ The two split arrays.
+
+ Thrown when the input array is null.
+ Thrown when split index exceeds the number of elements
+ in the array.
Sorts the elements of an array by mutating the array in-place, using the given comparison function.
Elements are compared using Operators.compare.
The input array.
+ Thrown when the input array is null.
-
+
Sorts the elements of an array by mutating the array in-place, using the given comparison function as the order.
The function to compare pairs of array elements.
The input array.
+ Thrown when the input array is null.
-
+
Sorts the elements of an array by mutating the array in-place, using the given projection for the keys.
Elements are compared using Operators.compare.
@@ -639,8 +748,9 @@
For a stable sort, consider using Seq.sort.
The function to transform array elements into the type that is compared.
The input array.
+ Thrown when the input array is null.
-
+
Sorts the elements of an array, using the given comparison function as the order, returning a new array.
This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
@@ -648,8 +758,9 @@
The function to compare pairs of array elements.
The input array.
The sorted array.
+ Thrown when the input array is null.
-
+
Sorts the elements of an array, using the given projection for the keys and returning a new array.
Elements are compared using Operators.compare.
@@ -658,6 +769,7 @@
The function to transform array elements into the type that is compared.
The input array.
The sorted array.
+ Thrown when the input array is null.
Sorts the elements of an array, returning a new array. Elements are compared using Operators.compare.
@@ -666,6 +778,7 @@
For a stable sort, consider using Seq.sort.
The input array.
The sorted array.
+ Thrown when the input array is null.
Builds a new array that contains the given subrange specified by
@@ -674,60 +787,103 @@
The index of the first element of the sub array.
The length of the sub array.
The created sub array.
+ Thrown when the input array is null.
+ Thrown when either startIndex or count is negative,
+ or when there aren't enough elements in the input array.
+
+
+ Bypasses elements in an array while the given predicate returns true, and then returns
+ the remaining elements in a new array.
+ A function that evaluates an element of the array to a boolean value.
+ The input array.
+ The created sub array.
+ Thrown when the input array is null.
+
+
+ Builds a new array that contains the elements of the given array, excluding the first N elements.
+ The number of elements to skip.
+ The input array.
+ A copy of the input array, after removing the first N elements.
+ Thrown when the input array is null.
+ Thrown when count is negative or exceeds the number of
+ elements in the array.
Sets an element of an array.
The input array.
The input index.
The input value.
+ Thrown when the input array is null.
+ Thrown when the index is negative or the input array does not contain enough elements.
+
+
+ Returns an array that contains one item only.
+
+ The input item.
+
+ The result array of one item.
-
+
Like foldBack, but return both the intermediary and final results.
The function to update the state given the input elements.
The input array.
The initial state.
The array of state values.
+ Thrown when the input array is null.
-
+
Like fold, but return the intermediary and final results.
The function to update the state given the input elements.
The initial state.
The input array.
The array of state values.
+ Thrown when the input array is null.
Returns a new array with the elements in reverse order.
The input array.
The reversed array.
+ Thrown when the input array is null.
-
- Applies a function to each element of the array, threading an accumulator argument
+
+ Creates an array by replicating the given initial value.
+ The number of elements to replicate.
+ The value to replicate
+ The generated array.
+ Thrown when count is negative.
+
+
+ Applies a function to each element of the array, starting from the end, threading an accumulator argument
through the computation. If the input function is f and the elements are i0...iN
- then computes f i0 (...(f iN-1 iN)).
- Raises ArgumentException if the array has size zero.
- The function to reduce a pair of elements to a single element.
+ then computes f i0 (...(f iN-1 iN)).
+ A function that takes in the next-to-last element of the list and the
+ current accumulated result to produce the next accumulated result.
The input array.
+ Thrown when the input array is null.
Thrown when the input array is empty.
The final result of the reductions.
-
+
Applies a function to each element of the array, threading an accumulator argument
through the computation. If the input function is f and the elements are i0...iN
then computes f (... (f i0 i1)...) iN.
Raises ArgumentException if the array has size zero.
The function to reduce a pair of elements to a single element.
The input array.
+ Thrown when the input array is null.
Thrown when the input array is empty.
- The final result of the redcutions.
+ The final result of the reductions.
-
+
Returns an array with all elements permuted according to the
specified permutation.
The function that maps input indices to output indices.
The input array.
The output array.
+ Thrown when the input array is null.
+ Thrown when indexMap does not produce a valid permutation.
-
+
Splits the collection into two collections, containing the
elements for which the given predicate returns "true" and "false"
respectively.
@@ -735,23 +891,36 @@
The input array.
A pair of arrays. The first containing the elements the predicate evaluated to true,
and the second containing those evaluated to false.
+ Thrown when the input array is null.
+
+
+ Returns an array of each element in the input array and its predecessor, with the
+ exception of the first element which is only returned as the predecessor of the second element.
+
+ The input array.
+
+ The result array.
+
+ Thrown when the input sequence is null.
Builds a new array from the given enumerable object.
The input sequence.
The array of elements from the sequence.
+ Thrown when the input sequence is null.
Builds an array from the given list.
The input list.
The array of elements from the list.
-
+
Returns the lowest of all elements of the array, compared via Operators.min on the function result.
Throws ArgumentException for empty arrays.
The function to transform the elements into a type supporting comparison.
The input array.
+ Thrown when the input array is null.
Thrown when the input array is empty.
The minimum element.
@@ -760,15 +929,17 @@
Throws ArgumentException for empty arrays
The input array.
+ Thrown when the input array is null.
Thrown when the input array is empty.
The minimum element.
-
+
Returns the greatest of all elements of the array, compared via Operators.max on the function result.
Throws ArgumentException for empty arrays.
The function to transform the elements into a type supporting comparison.
The input array.
+ Thrown when the input array is null.
Thrown when the input array is empty.
The maximum element.
@@ -777,18 +948,20 @@
Throws ArgumentException for empty arrays.
The input array.
+ Thrown when the input array is null.
Thrown when the input array is empty.
The maximum element.
-
+
Builds a new array whose elements are the results of applying the given function
to each of the elements of the array. The integer index passed to the
function indicates the index of element being transformed.
The function to transform elements and their indices.
The input array.
The array of transformed elements.
+ Thrown when the input array is null.
-
+
Builds a new collection whose elements are the results of applying the given function
to the corresponding elements of the two collections pairwise, also passing the index of
the elements. The two input arrays must have the same lengths, otherwise an ArgumentException is
@@ -796,10 +969,42 @@
The function to transform pairs of input elements and their indices.
The first input array.
The second input array.
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+ The array of transformed elements.
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding triples from the three collections. The three input
+ arrays must have the same length, otherwise an ArgumentException is
+ raised.
+ The function to transform the pairs of the input elements.
+ The first input array.
+ The second input array.
+ The third input array.
Thrown when the input arrays differ in length.
+ Thrown when any of the input arrays is null.
The array of transformed elements.
-
+
+ Combines map and foldBack. Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the input array. The function is also used to accumulate a final value.
+ The function to transform elements from the input array and accumulate the final value.
+ The input array.
+ The initial state.
+ Thrown when the input array is null.
+ The array of transformed elements, and the final accumulated value.
+
+
+ Combines map and fold. Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the input array. The function is also used to accumulate a final value.
+ The function to transform elements from the input array and accumulate the final value.
+ The initial state.
+ The input array.
+ Thrown when the input array is null.
+ The array of transformed elements, and the final accumulated value.
+
+
Builds a new collection whose elements are the results of applying the given function
to the corresponding elements of the two collections pairwise. The two input
arrays must have the same lengths, otherwise an ArgumentException is
@@ -808,72 +1013,135 @@
The first input array.
The second input array.
Thrown when the input arrays differ in length.
+ Thrown when either of the input arrays is null.
The array of transformed elements.
-
+
Builds a new array whose elements are the results of applying the given function
to each of the elements of the array.
The function to transform elements of the array.
The input array.
The array of transformed elements.
+ Thrown when the input array is null.
+
+
+ Returns the last element of the array.
+ Return None if no such element exists.
+ The input array.
+ The last element of the array or None.
+ Thrown when the input sequence is null.
Returns the length of an array. You can also use property arr.Length.
The input array.
The length of the array.
+ Thrown when the input array is null.
+
+
+ Gets an element from an array.
+ The input index.
+ The input array.
+ The value of the array at the given index.
+ Thrown when the input array is null.
+ Thrown when the index is negative or the input array does not contain enough elements.
-
+
+ Returns the last element of the array.
+ The input array.
+ The last element of the array.
+ Thrown when the input array is null.
+ Thrown when the input does not have any elements.
+
+
Applies the given function to pair of elements drawn from matching indices in two arrays,
also passing the index of the elements. The two arrays must have the same lengths,
otherwise an ArgumentException is raised.
The function to apply to each index and pair of elements.
The first input array.
The second input array.
+ Thrown when either of the input arrays is null.
Thrown when the input arrays differ in length.
-
+
Applies the given function to each element of the array. The integer passed to the
function indicates the index of element.
The function to apply to each index and element.
The input array.
+ Thrown when the input array is null.
-
+
Applies the given function to pair of elements drawn from matching indices in two arrays. The
two arrays must have the same lengths, otherwise an ArgumentException is
raised.
The function to apply.
The first input array.
The second input array.
+ Thrown when either of the input arrays is null.
Thrown when the input arrays differ in length.
-
+
Applies the given function to each element of the array.
The function to apply.
The input array.
+ Thrown when the input array is null.
Returns true if the given array is empty, otherwise false.
The input array.
True if the array is empty.
+ Thrown when the input array is null.
Creates an array where the entries are initially the default value Unchecked.defaultof<'T>.
The length of the array to create.
The created array.
+ Thrown when count is negative.
-
+
Creates an array given the dimension and a generator function to compute the elements.
The number of elements to initialize.
The function to generate the initial values for each index.
The created array.
+ Thrown when count is negative.
+
+
+ Builds a new array whose elements are the corresponding elements of the input array
+ paired with the integer index (from 0) of each element.
+ The input array.
+ The array of indexed elements.
+ Thrown when the input array is null.
+
+
+ Applies a key-generating function to each element of an array and yields an array of
+ unique keys. Each unique key contains an array of all elements that match
+ to this key.
+
+ A function that transforms an element of the array into a comparable key.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+ Returns the first element of the array.
+
+ The input array.
+
+ The first element of the array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
Gets an element from an array.
The input array.
The input index.
The value of the array at the given index.
+ Thrown when the input array is null.
+ Thrown when the index is negative or the input array does not contain enough elements.
-
+
Apply a function to pairs of elements drawn from the two collections, right-to-left,
threading an accumulator argument through the computation. The two input
arrays must have the same lengths, otherwise an ArgumentException is
@@ -882,10 +1150,11 @@
The first input array.
The second input array.
The initial state.
+ Thrown when either of the input arrays is null.
Thrown when the input arrays differ in length.
The final state.
-
+
Applies a function to pairs of elements drawn from the two collections,
left-to-right, threading an accumulator argument
through the computation. The two input
@@ -895,19 +1164,21 @@
The initial state.
The first input array.
The second input array.
+ Thrown when either of the input arrays is null.
Thrown when the input arrays differ in length.
The final state.
-
- Applies a function to each element of the array, threading an accumulator argument
+
+ Applies a function to each element of the array, starting from the end, threading an accumulator argument
through the computation. If the input function is f and the elements are i0...iN then computes
f i0 (...(f iN s))
The function to update the state given the input elements.
The input array.
The initial state.
- The final state.
+ The state object after the folding function is applied to each element of the array.
+ Thrown when the input array is null.
-
+
Applies a function to each element of the collection, threading an accumulator argument
through the computation. If the input function is f and the elements are i0...iN then computes
f (... (f s i0)...) iN
@@ -915,8 +1186,9 @@
The initial state.
The input array.
The final state.
+ Thrown when the input array is null.
-
+
Tests if all corresponding elements of the array satisfy the given predicate pairwise.
The predicate is applied to matching elements in the two collections up to the lesser of the
@@ -927,10 +1199,11 @@
The function to test the input elements.
The first input array.
The second input array.
+ Thrown when either of the input arrays is null.
Thrown when the input arrays differ in length.
True if all of the array elements satisfy the predicate.
-
+
Tests if all elements of the array satisfy the given predicate.
The predicate is applied to the elements of the input collection. If any application
@@ -939,34 +1212,59 @@
The function to test the input elements.
The input array.
True if all of the array elements satisfy the predicate.
+ Thrown when the input array is null.
+
+
+ Returns the index of the last element in the array
+ that satisfies the given predicate. Raise KeyNotFoundException if
+ none of the elements satisfy the predicate.
+ The function to test the input elements.
+ The input array.
+ Thrown if predicate
+ never returns true.
+ Thrown when the input array is null.
+ The index of the last element in the array that satisfies the given predicate.
-
+
Returns the index of the first element in the array
that satisfies the given predicate. Raise KeyNotFoundException if
- none of the elements satisy the predicate.
+ none of the elements satisfy the predicate.
The function to test the input elements.
The input array.
Thrown if predicate
never returns true.
+ Thrown when the input array is null.
The index of the first element in the array that satisfies the given predicate.
-
+
+ Returns the last element for which the given function returns 'true'.
+ Raise KeyNotFoundException if no such element exists.
+ The function to test the input elements.
+ The input array.
+ Thrown if predicate
+ never returns true.
+ Thrown when the input array is null.
+ The last element for which predicate returns true.
+
+
Returns the first element for which the given function returns 'true'.
Raise KeyNotFoundException if no such element exists.
The function to test the input elements.
The input array.
+ Thrown when the input array is null.
Thrown if predicate
never returns true.
The first element for which predicate returns true.
-
+
Returns a new collection containing only the elements of the collection
for which the given predicate returns "true".
The function to test the input elements.
The input array.
An array containing the elements for which the given predicate returns true.
+ Thrown when the input array is null.
-
+
Tests if any pair of corresponding elements of the arrays satisfies the given predicate.
The predicate is applied to matching elements in the two collections up to the lesser of the
@@ -978,8 +1276,10 @@
The first input array.
The second input array.
True if any result from predicate is true.
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
-
+
Tests if any element of the array satisfies the given predicate.
The predicate is applied to the elements of the input array. If any application
@@ -988,24 +1288,89 @@
The function to test the input elements.
The input array.
True if any result from predicate is true.
+ Thrown when the input array is null.
+
+
+ Returns a new list with the distinct elements of the input array which do not appear in the itemsToExclude sequence,
+ using generic hash and equality comparisons to compare values.
+
+ A sequence whose elements that also occur in the input array will cause those elements to be
+ removed from the result.
+ An array whose elements that are not also in itemsToExclude will be returned.
+
+ An array that contains the distinct elements of array that do not appear in itemsToExclude.
+
+ Thrown when either itemsToExclude or array is null.
+
+
+ Returns the only element of the array.
+
+ The input array.
+
+ The only element of the array.
+
+ Thrown when the input array is null.
+ Thrown when the input does not have precisely one element.
Returns an empty array of the given type.
+ The empty array.
+
+
+ Splits the input array into at most count chunks.
+ The maximum number of chunks.
+ The input array.
+ The array split into chunks.
+ Thrown when the input array is null.
+ Thrown when count is not positive.
+
+
+ Returns an array that contains no duplicate entries according to the
+ generic hash and equality comparisons on the keys returned by the given key-generating function.
+ If an element occurs multiple times in the array then the later occurrences are discarded.
+
+ A function transforming the array items into comparable keys.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
-
+
+ Returns an array that contains no duplicate entries according to generic hash and
+ equality comparisons on the entries.
+ If an element occurs multiple times in the array then the later occurrences are discarded.
+
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+ Divides the input array into chunks of size at most chunkSize.
+ The maximum size of each chunk.
+ The input array.
+ The array divided into chunks.
+ Thrown when the input array is null.
+ Thrown when chunkSize is not positive.
+
+
Applies the given function to each element of the array. Returns
the array comprised of the results "x" for each element where
the function returns Some(x)
The function to generate options from the elements.
The input array.
The array of results.
+ Thrown when the input array is null.
-
+
Applies the given function to successive elements, returning the first
result where function returns Some(x) for some x. If the function
never returns Some(x) then KeyNotFoundException is raised.
The function to generate options from the elements.
The input array.
+ Thrown when the input array is null.
Thrown if every result from
chooser is None.
The first result.
@@ -1016,36 +1381,85 @@
The index of the first element to set.
The number of elements to set.
The value to set.
+ Thrown when the input array is null.
+ Thrown when either targetIndex or count is negative.
-
+
Applies the given function to successive elements, returning the first
result where function returns Some(x) for some x. If the function
never returns Some(x) then None is returned.
The function to transform the array elements into options.
The input array.
The first transformed element that is Some(x).
+ Thrown when the input array is null.
+
+
+ Returns the first element of the array, or
+ None if the array is empty.
+ The input array.
+ Thrown when the input array is null.
+ The first element of the array or None.
Creates an array whose elements are all initially the given value.
The length of the array to create.
The value for the elements.
The created array.
+ Thrown when count is negative.
+
+
+ Applies a key-generating function to each element of an array and returns an array yielding unique
+ keys and their number of occurrences in the original array.
+
+ A function transforming each item of the input array into a key to be
+ compared against the others.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
Builds a new array that contains the elements of the given array.
The input array.
A copy of the input array.
+ Thrown when the input array is null.
+
+
+ Tests if the array contains the specified element.
+ The value to locate in the input array.
+ The input array.
+ True if the input array contains the specified element; false otherwise.
+ Thrown when the input array is null.
Builds a new array that contains the elements of each of the given sequence of arrays.
The input sequence of arrays.
The concatenation of the sequence of input arrays.
+ Thrown when the input sequence is null.
+
+
+ Compares two arrays using the given comparison function, element by element.
+ Returns the first non-zero result from the comparison function. If the end of an array
+ is reached it returns a -1 if the first array is shorter and a 1 if the second array
+ is shorter.
+
+ A function that takes an element from each array and returns an int.
+ If it evaluates to a non-zero value iteration is stopped and that value is returned.
+ The first input array.
+ The second input array.
+
+ The first non-zero value from the comparison function.
+
+ Thrown when either of the input arrays
+ is null.
-
+
For each element of the array, applies the given function. Concatenates all the results and return the combined array.
The function to create sub-arrays from the input array elements.
The input array.
The concatenation of the sub-arrays.
+ Thrown when the input array is null.
Reads a range of elements from the first array and write them into the second.
@@ -1054,47 +1468,54 @@
The target array.
The starting index of the target array.
The number of elements to copy.
+ Thrown when either of the input arrays is null.
+ Thrown when any of sourceIndex, targetIndex or count are negative,
+ or when there aren't enough elements in source or target.
-
+
Returns the average of the elements generated by applying the function to each element of the array.
The function to transform the array elements before averaging.
The input array.
Thrown when array is empty.
The computed average.
+ Thrown when the input array is null.
Returns the average of the elements in the array.
The input array.
Thrown when array is empty.
The average of the elements in the array.
+ Thrown when the input array is null.
Builds a new array that contains the elements of the first array followed by the elements of the second array.
The first input array.
The second input array.
The resulting array.
+ Thrown when either of the input arrays is null.
-
+
Split the collection into two collections, containing the
elements for which the given predicate returns "true" and "false"
respectively
Performs the operation in parallel using System.Threading.Parallel.For.
- The order in which the given function is applied to indicies is not specified.
+ The order in which the given function is applied to indices is not specified.
The function to test the input elements.
The input array.
'T[] * 'T[]
+ Thrown when the input array is null.
-
+
Create an array given the dimension and a generator function to compute the elements.
Performs the operation in parallel using System.Threading.Parallel.For.
- The order in which the given function is applied to indicies is not specified.
+ The order in which the given function is applied to indices is not specified.
'T[]
-
+
Apply the given function to each element of the array. The integer passed to the
function indicates the index of element.
@@ -1102,16 +1523,18 @@
The order in which the given function is applied to elements of the input array is not specified.
The input array.
+ Thrown when the input array is null.
-
+
Apply the given function to each element of the array.
Performs the operation in parallel using System.Threading.Parallel.For.
The order in which the given function is applied to elements of the input array is not specified.
The input array.
+ Thrown when the input array is null.
-
+
Build a new array whose elements are the results of applying the given function
to each of the elements of the array. The integer index passed to the
function indicates the index of element being transformed.
@@ -1121,8 +1544,9 @@
The input array.
'U[]
+ Thrown when the input array is null.
-
+
Build a new array whose elements are the results of applying the given function
to each of the elements of the array.
@@ -1131,8 +1555,9 @@
The input array.
'U[]
+ Thrown when the input array is null.
-
+
For each element of the array, apply the given function. Concatenate all the results and return the combined array.
Performs the operation in parallel using System.Threading.Parallel.For.
@@ -1140,8 +1565,9 @@
The input array.
'U[]
+ Thrown when the input array is null.
-
+
Apply the given function to each element of the array. Return
the array comprised of the results "x" for each element where
the function returns Some(x).
@@ -1151,6 +1577,7 @@
The function to generate options from the elements.
The input array.
'U[]
+ Thrown when the input array is null.
Provides parallel operations on arrays
@@ -1158,18 +1585,21 @@
Basic operations on arrays.
-
+
Compare using the given comparer function.
A function to compare two values.
An object implementing IComparer using the supplied comparer.
+
+ Non-structural comparison. Compare using NonStructuralComparison.compare.
+
Structural comparison. Compare using Operators.compare.
Common notions of comparison identity used with sorted data structures.
-
+
Hash using the given hashing and equality functions.
A function to generate a hash code from a value.
A function to test equality of two values.
@@ -1182,8 +1612,8 @@
and for reference types use System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode and
reference equality.
-
-
+
+ Non-structural hashing. Equality using NonStructuralComparison.(=) and NonStructuralComparison.hash.
Structural hashing. Hash using Operators.(=) and Operators.hash.
@@ -1204,17 +1634,56 @@
The second input list.
A single list containing pairs of matching elements from the input lists.
-
+
+ Returns a list of sliding windows containing elements drawn from the input
+ list. Each window is returned as a fresh list.
+ The number of elements in each window.
+ The input list.
+ The result list.
+ Thrown when windowSize is not positive.
+
+
+ Returns a new list containing only the elements of the list
+ for which the given predicate returns "true"
+ The function to test the input elements.
+ The input list.
+ A list containing only the elements that satisfy the predicate.
+
+
Splits a list of triples into three lists.
The input list.
Three lists of split elements.
-
+
Splits a list of pairs into two lists.
The input list.
Two lists of split elements.
-
+
+ Returns a list that contains the elements generated by the given computation.
+ The given initial state argument is passed to the element generator.
+ A function that takes in the current state and returns an option tuple of the next
+ element of the list and the next state value.
+ The initial state value.
+ The result list.
+
+
+ Returns the index of the last element in the list
+ that satisfies the given predicate.
+ Return None if no such element exists.
+ The function to test the input elements.
+ The input list.
+ The index of the last element for which the predicate returns true, or None if
+ every element evaluates to false.
+
+
+ Tries to find the nth element in the list.
+ Returns None if index is negative or the list does not contain enough elements.
+ The index to retrieve.
+ The input list.
+ The value at the given index or None.
+
+
Returns the index of the first element in the list
that satisfies the given predicate.
Return None if no such element exists.
@@ -1223,7 +1692,15 @@
The index of the first element for which the predicate returns true, or None if
every element evaluates to false.
-
+
+ Returns the last element for which the given function returns true..
+ Return None if no such element exists.
+ The function to test the input elements.
+ The input list.
+ The last element for which the predicate returns true, or None if
+ every element evaluates to false.
+
+
Returns the first element for which the given function returns true..
Return None if no such element exists.
The function to test the input elements.
@@ -1231,7 +1708,7 @@
The first element for which the predicate returns true, or None if
every element evaluates to false.
-
+
Applies the given function to successive elements, returning Some(x) the first
result where function returns Some(x) for some x. If no such element
exists then return None.
@@ -1239,6 +1716,18 @@
The input list.
The first resulting value or None.
+
+ Returns at most N elements in a new list.
+ The maximum number of items to return.
+ The input list.
+ The result list.
+
+
+ Returns the first element of the list, or
+ None if the list is empty.
+ The input list.
+ The first element of the list or None.
+
Views the given list as a sequence.
The input list.
@@ -1249,10 +1738,38 @@
The input list.
The array containing the elements of the list.
-
+
+ Returns a list that contains all elements of the original list while the
+ given predicate returns true, and then returns no further elements.
+
+ A function that evaluates to false when no more items should be returned.
+ The input list.
+
+ The result list.
+
+
+ Returns the first N elements of the list.
+ Throws InvalidOperationException
+ if the count exceeds the number of elements in the list. List.truncate
+ returns as many items as the list contains instead of throwing an exception.
+
+ The number of items to take.
+ The input list.
+
+ The result list.
+
+ Thrown when the input list is empty.
+ Thrown when count exceeds the number of elements
+ in the list.
+
+
+ Returns the list after removing the first element.
+ The input list.
+ Thrown when the list is empty.
+ The list after removing the first element.
-
+
Returns the sum of the results generated by applying the function to each element of the list.
The function to transform the list elements into the type to be summed.
The input list.
@@ -1263,6 +1780,30 @@
The input list.
The resulting sum.
+
+ Sorts the given list in descending order using Operators.compare.
+
+ This is a stable sort, i.e. the original order of equal elements is preserved.
+ The input list.
+ The sorted list.
+
+
+ Sorts the given list in descending order using keys given by the given projection. Keys are compared using Operators.compare.
+
+ This is a stable sort, i.e. the original order of equal elements is preserved.
+ The function to transform the list elements into the type to be compared.
+ The input list.
+ The sorted list.
+
+
+ Splits a list into two lists, at the given index.
+ The index at which the list is split.
+ The input list.
+ The two split lists.
+
+ Thrown when split index exceeds the number of elements
+ in the list.
+
Sorts the given list using Operators.compare.
@@ -1270,7 +1811,7 @@
The input list.
The sorted list.
-
+
Sorts the given list using keys given by the given projection. Keys are compared using Operators.compare.
This is a stable sort, i.e. the original order of equal elements is preserved.
@@ -1278,7 +1819,7 @@
The input list.
The sorted list.
-
+
Sorts the given list using the given comparison function.
This is a stable sort, i.e. the original order of equal elements is preserved.
@@ -1286,14 +1827,36 @@
The input list.
The sorted list.
-
+
+ Bypasses elements in a list while the given predicate returns true, and then returns
+ the remaining elements of the list.
+ A function that evaluates an element of the list to a boolean value.
+ The input list.
+ The result list.
+
+
+ Returns the list after removing the first N elements.
+ The number of elements to skip.
+ The input list.
+ The list after removing the first N elements.
+ Thrown when count is negative or exceeds the number of
+ elements in the list.
+
+
+ Returns a list that contains one item only.
+
+ The input item.
+
+ The result list of one item.
+
+
Like foldBack, but returns both the intermediary and final results
The function to update the state given the input elements.
The input list.
The initial state.
The list of states.
-
+
Applies a function to each element of the collection, threading an accumulator argument
through the computation. Take the second argument, and apply the function to it
and the first element of the list. Then feed this result into the function along
@@ -1309,23 +1872,22 @@
The reversed list.
- Creates a list by calling the given generator on each index.
+ Creates a list by replicating the given initial value.
The number of elements to replicate.
The value to replicate
The generated list.
-
- Applies a function to each element of the collection, threading an accumulator argument
+
+ Applies a function to each element of the collection, starting from the end, threading an accumulator argument
through the computation. If the input function is f and the elements are i0...iN then computes
f i0 (...(f iN-1 iN)).
-
- Raises System.ArgumentException if list is empty
- The function to reduce two list elements to a single element.
+ A function that takes in the next-to-last element of the list and the
+ current accumulated result to produce the next accumulated result.
The input list.
Thrown when the list is empty.
- The final reduced value.
+ The final result of the reductions.
-
+
Apply a function to each element of the collection, threading an accumulator argument
through the computation. Apply the function to the first two elements of the list.
Then feed this result into the function along with the third element and so on.
@@ -1338,14 +1900,15 @@
Thrown when the list is empty.
The final reduced value.
-
+
Returns a list with all elements permuted according to the
specified permutation.
The function to map input indices to output indices.
The input list.
- The permutated list.
+ The permuted list.
+ Thrown when indexMap does not produce a valid permutation.
-
+
Applies the given function to successive elements, returning the first
result where function returns Some(x) for some x. If no such
element exists then raise System.Collections.Generic.KeyNotFoundException
@@ -1354,15 +1917,23 @@
Thrown when the list is empty.
The first resulting value.
-
+
Splits the collection into two collections, containing the
elements for which the given predicate returns true and false
- respectively.
+ respectively. Element order is preserved in both of the created lists.
The function to test the input elements.
The input list.
A list containing the elements for which the predicate evaluated to false and a list
containing the elements for which the predicate evaluated to true.
+
+ Returns a list of each element in the input list and its predecessor, with the
+ exception of the first element which is only returned as the predecessor of the second element.
+
+ The input list.
+
+ The result list.
+
Builds a new list from the given enumerable object.
The input sequence.
@@ -1378,8 +1949,9 @@
The input list.
The index to retrieve.
The value at the given index.
+ Thrown when the index is negative or the input list does not contain enough elements.
-
+
Returns the lowest of all elements of the list, compared via Operators.min on the function result
Raises System.ArgumentException if list is empty.
@@ -1396,7 +1968,7 @@
Thrown when the list is empty.
The minimum value.
-
+
Returns the greatest of all elements of the list, compared via Operators.max on the function result.
Raises System.ArgumentException if list is empty.
@@ -1413,14 +1985,14 @@
Thrown when the list is empty.
The maximum element.
-
+
Like mapi, but mapping corresponding elements from two lists of equal length.
The function to transform pairs of elements from the two lists and their index.
The first input list.
The second input list.
The list of transformed elements.
-
+
Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection. The integer index passed to the
function indicates the index (from 0) of element being transformed.
@@ -1428,7 +2000,23 @@
The input list.
The list of transformed elements.
-
+
+ Combines map and foldBack. Builds a new list whose elements are the results of applying the given function
+ to each of the elements of the input list. The function is also used to accumulate a final value.
+ The function to transform elements from the input list and accumulate the final value.
+ The input list.
+ The initial state.
+ The list of transformed elements, and the final accumulated value.
+
+
+ Combines map and fold. Builds a new list whose elements are the results of applying the given function
+ to each of the elements of the input list. The function is also used to accumulate a final value.
+ The function to transform elements from the input list and accumulate the final value.
+ The initial state.
+ The input list.
+ The list of transformed elements, and the final accumulated value.
+
+
Builds a new collection whose elements are the results of applying the given function
to the corresponding elements of the three collections simultaneously.
The function to transform triples of elements from the input lists.
@@ -1437,7 +2025,7 @@
The third input list.
The list of transformed elements.
-
+
Builds a new collection whose elements are the results of applying the given function
to the corresponding elements of the two collections pairwise.
The function to transform pairs of elements from the input lists.
@@ -1445,19 +2033,31 @@
The second input list.
The list of transformed elements.
-
+
Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection.
The function to transform elements from the input list.
The input list.
The list of transformed elements.
+
+ Returns the last element of the list.
+ Return None if no such element exists.
+ The input list.
+ The last element of the list or None.
+
Returns the length of the list.
The input list.
The length of the list.
-
+
+ Returns the last element of the list.
+ The input list.
+ The last element of the list.
+ Thrown when the input does not have any elements.
+
+
Applies the given function to two collections simultaneously. The
collections must have identical size. The integer passed to the
function indicates the index of element.
@@ -1465,44 +2065,66 @@
The first input list.
The second input list.
-
+
Applies the given function to each element of the collection. The integer passed to the
function indicates the index of element.
The function to apply to the elements of the list along with their index.
The input list.
-
+
Applies the given function to two collections simultaneously. The
collections must have identical size.
The function to apply to pairs of elements from the input lists.
The first input list.
The second input list.
-
+
Applies the given function to each element of the collection.
The function to apply to elements from the input list.
The input list.
+
+ Indexes into the list. The first element has index 0.
+ The index to retrieve.
+ The input list.
+ The value at the given index.
+ Thrown when the index is negative or the input list does not contain enough elements.
+
Returns true if the list contains no elements, false otherwise.
The input list.
True if the list is empty.
-
+
Creates a list by calling the given generator on each index.
The length of the list to generate.
The function to generate an element from an index.
The list of generated elements.
+
+ Returns a new list whose elements are the corresponding elements
+ of the input list paired with the index (from 0) of each element.
+ The input list.
+ The list of indexed elements.
+
Returns the first element of the list.
- Raises System.ArgumentException if list is empty
The input list.
Thrown when the list is empty.
The first element of the list.
-
+
+ Applies a key-generating function to each element of a list and yields a list of
+ unique keys. Each unique key contains a list of all elements that match
+ to this key.
+
+ A function that transforms an element of the list into a comparable key.
+ The input list.
+
+ The result list.
+
+
Tests if all corresponding elements of the collection satisfy the given predicate pairwise.
The predicate is applied to matching elements in the two collections up to the lesser of the
@@ -1516,7 +2138,7 @@
Thrown when the input lists differ in length.
True if all of the pairs of elements satisfy the predicate.
-
+
Tests if all elements of the collection satisfy the given predicate.
The predicate is applied to the elements of the input list. If any application
@@ -1526,7 +2148,7 @@
The input list.
True if all of the elements satisfy the predicate.
-
+
Applies a function to corresponding elements of two collections, threading an accumulator argument
through the computation. The collections must have identical sizes.
If the input function is f and the elements are i0...iN and j0...jN
@@ -1537,16 +2159,16 @@
The initial state.
The final state value.
-
- Applies a function to each element of the collection, threading an accumulator argument
+
+ Applies a function to each element of the collection, starting from the end, threading an accumulator argument
through the computation. If the input function is f and the elements are i0...iN then
computes f i0 (...(f iN s)).
The function to update the state given the input elements.
The input list.
The initial state.
- The final state value.
+ The state object after the folding function is applied to each element of the list.
-
+
Applies a function to corresponding elements of two collections, threading an accumulator argument
through the computation. The collections must have identical sizes.
If the input function is f and the elements are i0...iN and j0...jN
@@ -1557,7 +2179,7 @@
The second input list.
The final state value.
-
+
Applies a function to each element of the collection, threading an accumulator argument
through the computation. Take the second argument, and apply the function to it
and the first element of the list. Then feed this result into the function along
@@ -1569,14 +2191,24 @@
The input list.
The final state value.
-
+
Returns a new collection containing only the elements of the collection
for which the given predicate returns "true"
The function to test the input elements.
The input list.
A list containing only the elements that satisfy the predicate.
-
+
+ Returns the index of the last element in the list
+ that satisfies the given predicate.
+ Raises KeyNotFoundException if no such element exists.
+ The function to test the input elements.
+ The input list.
+ Thrown if the predicate evaluates to false for all the
+ elements of the list.
+ The index of the last element that satisfies the predicate.
+
+
Returns the index of the first element in the list
that satisfies the given predicate.
Raises KeyNotFoundException if no such element exists.
@@ -1586,7 +2218,16 @@
elements of the list.
The index of the first element that satisfies the predicate.
-
+
+ Returns the last element for which the given function returns true.
+ Raises KeyNotFoundException if no such element exists.
+ The function to test the input elements.
+ The input list.
+ Thrown if the predicate evaluates to false for
+ all the elements of the list.
+ The last element that satisfies the predicate.
+
+
Returns the first element for which the given function returns true.
Raises KeyNotFoundException if no such element exists.
The function to test the input elements.
@@ -1595,7 +2236,7 @@
all the elements of the list.
The first element that satisfies the predicate.
-
+
Tests if any pair of corresponding elements of the lists satisfies the given predicate.
The predicate is applied to matching elements in the two collections up to the lesser of the
@@ -1609,7 +2250,7 @@
Thrown when the input lists differ in length.
True if any pair of elements satisfy the predicate.
-
+
Tests if any element of the list satisfies the given predicate.
The predicate is applied to the elements of the input list. If any application
@@ -1619,21 +2260,104 @@
The input list.
True if any element satisfies the predicate.
+
+ Returns the only element of the list.
+
+ The input list.
+
+ The only element of the list.
+
+ Thrown when the input does not have precisely one element.
+
+
+ Returns a new list with the distinct elements of the input list which do not appear in the itemsToExclude sequence,
+ using generic hash and equality comparisons to compare values.
+
+ A sequence whose elements that also occur in the input list will cause those elements to be
+ removed from the result.
+ A list whose elements that are not also in itemsToExclude will be returned.
+
+ A list that contains the distinct elements of list that do not appear in itemsToExclude.
+
+ Thrown when itemsToExclude is null.
+
Returns an empty list of the given type.
+
+ Splits the input list into at most count chunks.
+ The maximum number of chunks.
+ The input list.
+ The list split into chunks.
+ Thrown when count is not positive.
+
+
+ Applies a key-generating function to each element of a list and returns a list yielding unique
+ keys and their number of occurrences in the original list.
+
+ A function transforming each item of the input list into a key to be
+ compared against the others.
+ The input list.
+
+ The result list.
+
+
+ Returns a list that contains no duplicate entries according to the
+ generic hash and equality comparisons on the keys returned by the given key-generating function.
+ If an element occurs multiple times in the list then the later occurrences are discarded.
+
+ A function transforming the list items into comparable keys.
+ The input list.
+
+ The result list.
+
+
+ Returns a list that contains no duplicate entries according to generic hash and
+ equality comparisons on the entries.
+ If an element occurs multiple times in the list then the later occurrences are discarded.
+
+ The input list.
+
+ The result list.
+
+
+ Tests if the list contains the specified element.
+ The value to locate in the input list.
+ The input list.
+ True if the input list contains the specified element; false otherwise.
+
Returns a new list that contains the elements of each the lists in order.
The input sequence of lists.
The resulting concatenated list.
-
+
+ Compares two lists using the given comparison function, element by element.
+ Returns the first non-zero result from the comparison function. If the end of a list
+ is reached it returns a -1 if the first list is shorter and a 1 if the second list
+ is shorter.
+
+ A function that takes an element from each list and returns an int.
+ If it evaluates to a non-zero value iteration is stopped and that value is returned.
+ The first input list.
+ The second input list.
+
+ The first non-zero value from the comparison function.
+
+
For each element of the list, applies the given function. Concatenates all the results and return the combined list.
The function to transform each input element into a sublist to be concatenated.
The input list.
The concatenation of the transformed sublists.
-
+
+ Divides the input list into chunks of size at most chunkSize.
+ The maximum size of each chunk.
+ The input list.
+ The list divided into chunks.
+ Thrown when chunkSize is not positive.
+
+
Applies the given function to each element of the list. Returns
the list comprised of the results x for each element where
the function returns Some(x)
@@ -1641,7 +2365,7 @@
The input list.
The list comprising the values selected from the chooser function.
-
+
Returns the average of the elements generated by applying the function to each element of the list.
Raises System.ArgumentException if list is empty.
@@ -1668,14 +2392,14 @@
Basic operations on lists.
-
+
Returns the key of the first mapping in the collection that satisfies the given predicate.
Returns 'None' if no such element exists.
The function to test the input elements.
The input map.
The first key for which the predicate returns true or None if the predicate evaluates to false for each key/value pair.
-
+
Evaluates the function on each mapping in the collection. Returns the key for the first mapping
where the function returns 'true'. Raise KeyNotFoundException if no such element exists.
The function to test the input elements.
@@ -1696,7 +2420,7 @@
The input map.
The resulting map.
-
+
Builds two new maps, one containing the bindings for which the given predicate returns 'true',
and the other the remaining bindings.
The function to test the input elements.
@@ -1710,7 +2434,7 @@
The input map.
True if the map contains the key.
-
+
Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection. The key passed to the
function indicates the key of element being transformed.
@@ -1718,52 +2442,52 @@
The input map.
The resulting map of keys and transformed values.
-
+
Returns true if the given predicate returns true for all of the
bindings in the map.
The function to test the input elements.
The input map.
True if the predicate evaluates to true for all of the bindings in the map.
-
+
Builds a new map containing only the bindings for which the given predicate returns 'true'.
The function to test the key/value pairs.
The input map.
The filtered map.
-
+
Returns true if the given predicate returns true for one of the
bindings in the map.
The function to test the input elements.
The input map.
True if the predicate returns true for one of the key/value pairs.
-
+
Applies the given function to each binding in the dictionary
The function to apply to each key/value pair.
The input map.
-
+
Folds over the bindings in the map
The function to update the state given the input key/value pairs.
The initial state.
The input map.
The final state value.
-
+
Folds over the bindings in the map.
The function to update the state given the input key/value pairs.
The input map.
The initial state.
The final state value.
-
+
Searches the map looking for the first element where the given function returns a Some value
The function to generate options from the key/value pairs.
The input map.
The first result.
-
+
Searches the map looking for the first element where the given function returns a Some value.
The function to generate options from the key/value pairs.
The input map.
@@ -1803,23 +2527,24 @@
The input map.
The sequence of key/value pairs.
-
+
Returns a new map made from the given bindings.
The input sequence of key/value pairs.
The resulting map.
-
+
Returns a new map made from the given bindings.
The input array of key/value pairs.
The resulting map.
-
+
Returns a new map made from the given bindings.
The input list of key/value pairs.
The resulting map.
- Returns a new map with the binding added to the given map.
+ Returns a new map with the binding added to the given map.
+ If a binding with the given key already exists in the input map, the existing binding is replaced by the new binding in the result map.
The input key.
The input value.
The input map.
@@ -1854,18 +2579,15 @@
Thrown when either of the input sequences is null.
- Returns a sequence that yields sliding windows of containing elements drawn from the input
+ Returns a sequence that yields sliding windows containing elements drawn from the input
sequence. Each window is returned as a fresh array.
-
The number of elements in each window.
The input sequence.
-
The result sequence.
-
Thrown when the input sequence is null.
- Thrown when the input sequence is empty.
+ Thrown when windowSize is not positive.
-
+
Returns a sequence that contains the elements generated by the given computation.
The given initial state argument is passed to the element generator.
For each IEnumerator elements in the stream are generated on-demand by applying the element
@@ -1893,36 +2615,64 @@
Thrown when the input sequence is null.
-
+
Applies the given function to successive elements, returning the first
result where the function returns "Some(x)".
A function that transforms items from the input sequence into options.
The input sequence.
- The result sequence.
+ The chosen element or None.
Thrown when the input sequence is null.
-
+
+ Returns the index of the last element in the sequence
+ that satisfies the given predicate. Return None if no such element exists.
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+ A function that evaluates to a Boolean when given an item in the sequence.
+ The input sequence.
+ The found index or None.
+ Thrown when the input sequence is null.
+
+
+ Tries to find the nth element in the sequence.
+ Returns None if index is negative or the input sequence does not contain enough elements.
+ The index of element to retrieve.
+ The input sequence.
+ The nth element of the sequence or None.
+ Thrown when the input sequence is null.
+
+
Returns the index of the first element in the sequence
that satisfies the given predicate. Return None if no such element exists.
A function that evaluates to a Boolean when given an item in the sequence.
The input sequence.
- The result sequence.
+ The found index or None.
Thrown when the input sequence is null.
-
+
+ Returns the last element for which the given function returns true.
+ Return None if no such element exists.
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+ A function that evaluates to a Boolean when given an item in the sequence.
+ The input sequence.
+ The found element or None.
+ Thrown when the input sequence is null.
+
+
Returns the first element for which the given function returns true.
Return None if no such element exists.
A function that evaluates to a Boolean when given an item in the sequence.
The input sequence.
- The result sequence.
+ The found element or None.
Thrown when the input sequence is null.
@@ -1931,7 +2681,7 @@
The input sequence.
- The result sequence.
+ The result list.
Thrown when the input sequence is null.
@@ -1940,11 +2690,11 @@
The input sequence.
- The result sequence.
+ The result array.
Thrown when the input sequence is null.
-
+
Returns a sequence that, when iterated, yields elements of the underlying sequence while the
given predicate returns true, and then returns no further elements.
@@ -1971,14 +2721,25 @@
Thrown when count exceeds the number of elements
in the sequence.
-
+
+ Returns a sequence that skips 1 element of the underlying sequence and then yields the
+ remaining elements of the sequence.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
Returns the sum of the results generated by applying the function to each element of the sequence.
The generated elements are summed using the + operator and Zero property associated with the generated type.
A function to transform items from the input sequence into the type that will be summed.
The input sequence.
- The result sequence.
+ The computed sum.
Returns the sum of the elements in the sequence.
@@ -1987,9 +2748,43 @@
The input sequence.
+ The computed sum.
+
+
+ Applies a key-generating function to each element of a sequence and yield a sequence ordered
+ descending by keys. The keys are compared using generic comparison as implemented by Operators.compare.
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences. The function makes no assumption on the ordering of the original
+ sequence.
+
+ This is a stable sort, that is the original order of equal elements is preserved.
+
+ A function to transform items of the input sequence into comparable keys.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+ Yields a sequence ordered descending by keys.
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences. The function makes no assumption on the ordering of the original
+ sequence.
+
+ This is a stable sort, that is the original order of equal elements is preserved.
+
+ The input sequence.
+
The result sequence.
+
+ Thrown when the input sequence is null.
-
+
Applies a key-generating function to each element of a sequence and yield a sequence ordered
by keys. The keys are compared using generic comparison as implemented by Operators.compare.
@@ -2007,6 +2802,18 @@
Thrown when the input sequence is null.
+
+ Yields a sequence ordered using the given comparison function.
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences. The function makes no assumption on the ordering of the original
+ sequence.
+
+ This is a stable sort, that is the original order of equal elements is preserved.
+ The function to compare the collection elements.
+ The input sequence.
+ The result sequence.
+
Yields a sequence ordered by keys.
@@ -2023,7 +2830,7 @@
Thrown when the input sequence is null.
-
+
Returns a sequence that, when iterated, skips elements of the underlying sequence while the
given predicate returns true, and then yields the remaining elements of the sequence.
@@ -2052,20 +2859,54 @@
The input item.
- The result sequence.
+ The result sequence of one item.
+
+
+ Like foldBack, but returns the sequence of intermediary and final results.
+ This function returns a sequence that digests the whole initial sequence as soon as that
+ sequence is iterated. As a result this function should not be used with large or infinite sequences.
+
+ A function that updates the state with each element from the sequence.
+ The input sequence.
+ The initial state.
+ The resulting sequence of computed states.
+ Thrown when the input sequence is null.
-
+
Like fold, but computes on-demand and returns the sequence of intermediary and final results.
A function that updates the state with each element from the sequence.
The initial state.
The input sequence.
- The result sequence.
+ The resulting sequence of computed states.
Thrown when the input sequence is null.
-
+
+ Returns a new sequence with the elements in reverse order.
+ The input sequence.
+ The reversed sequence.
+ Thrown when the input sequence is null.
+
+
+ Applies a function to each element of the sequence, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN
+ then computes f i0 (...(f iN-1 iN)).
+ A function that takes in the next-to-last element of the sequence and the
+ current accumulated result to produce the next accumulated result.
+ The input sequence.
+ The final result of the reductions.
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
+ Creates a sequence by replicating the given initial value.
+ The number of elements to replicate.
+ The value to replicate
+ The generated sequence.
+
+
Applies a function to each element of the sequence, threading an accumulator argument
through the computation. Begin by applying the function to the first two elements.
Then feed this result into the function along with the third element and so on.
@@ -2075,7 +2916,7 @@
element of the sequence to produce the next accumulated result.
The input sequence.
- The result sequence.
+ The final result of the reduction function.
Thrown when the input sequence is null.
Thrown when the input sequence is empty.
@@ -2092,19 +2933,35 @@
Thrown when the input sequence is null.
-
+
Applies the given function to successive elements, returning the first
x where the function returns "Some(x)".
A function to transform each item of the input sequence into an option of the output type.
The input sequence.
- The result sequence.
+ The selected element.
Thrown when the input sequence is null.
Thrown when every item of the sequence
evaluates to None when the given function is applied.
+
+ Returns a sequence with all elements permuted according to the
+ specified permutation.
+
+ Note that this function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences.
+
+ The function that maps input indices to output indices.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when indexMap does not produce a valid permutation.
+
Returns a sequence of each element in the input sequence and its predecessor, with the
exception of the first element which is only returned as the predecessor of the second element.
@@ -2137,17 +2994,18 @@
The index of element to retrieve.
The input sequence.
- The result sequence.
+ The nth element of the sequence.
Thrown when the input sequence is null.
+ Thrown when the index is negative or the input sequence does not contain enough elements.
-
+
Returns the lowest of all elements of the sequence, compared via Operators.min on the function result.
A function to transform items from the input sequence into comparable keys.
The input sequence.
- The result sequence.
+ The smallest element of the sequence.
Thrown when the input sequence is null.
Thrown when the input sequence is empty.
@@ -2157,18 +3015,18 @@
The input sequence.
- The result sequence.
+ The smallest element of the sequence.
Thrown when the input sequence is null.
Thrown when the input sequence is empty.
-
+
Returns the greatest of all elements of the sequence, compared via Operators.max on the function result.
A function to transform items from the input sequence into comparable keys.
The input sequence.
- The result sequence.
+ The largest element of the sequence.
Thrown when the input sequence is null.
Thrown when the input sequence is empty.
@@ -2181,9 +3039,23 @@
Thrown when the input sequence is null.
Thrown when the input sequence is empty.
+ The largest element of the sequence.
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored. The integer index passed to the
+ function indicates the index (from 0) of element being transformed.
+
+ A function to transform pairs of items from the input sequences that also supplies the current index.
+ The first input sequence.
+ The second input sequence.
+
The result sequence.
+
+ Thrown when either of the input sequences is null.
-
+
Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection. The integer index passed to the
function indicates the index (from 0) of element being transformed.
@@ -2195,20 +3067,56 @@
Thrown when the input sequence is null.
-
+
Builds a new collection whose elements are the results of applying the given function
- to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than
- the other then the remaining elements of the longer sequence are ignored.
+ to the corresponding triples of elements from the three sequences. If one input sequence if shorter than
+ the others then the remaining elements of the longer sequences are ignored.
- A function to transform pairs of items from the input sequences.
- The first input sequence.
+ The function to transform triples of elements from the input sequences.
+ The first input sequence.
The second input sequence.
+ The third input sequence.
The result sequence.
- Thrown when either of the input sequences is null.
+ Thrown when any of the input sequences is null.
-
+
+ Combines map and foldBack. Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The function is also used to accumulate a final value.
+ This function digests the whole initial sequence as soon as it is called. As a result this function should
+ not be used with large or infinite sequences.
+ The function to transform elements from the input collection and accumulate the final value.
+ The input collection.
+ The initial state.
+ Thrown when the input collection is null.
+ The collection of transformed elements, and the final accumulated value.
+
+
+ Combines map and fold. Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The function is also used to accumulate a final value.
+ This function digests the whole initial sequence as soon as it is called. As a result this function should
+ not be used with large or infinite sequences.
+ The function to transform elements from the input collection and accumulate the final value.
+ The initial state.
+ The input collection.
+ Thrown when the input collection is null.
+ The collection of transformed elements, and the final accumulated value.
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored.
+
+ A function to transform pairs of items from the input sequences.
+ The first input sequence.
+ The second input sequence.
+
+ The result sequence.
+
+ Thrown when either of the input sequences is null.
+
+
Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection. The given function will be applied
as elements are demanded using the MoveNext method on enumerators retrieved from the
@@ -2229,11 +3137,22 @@
The input sequence.
- The result sequence.
+ The length of the sequence.
Thrown when the input sequence is null.
-
+
+ Applies the given function to two collections simultaneously. If one sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored. The integer passed to the
+ function indicates the index of element.
+
+ A function to apply to each pair of elements from the input sequences along with their index.
+ The first input sequence.
+ The second input sequence.
+
+ Thrown when either of the input sequences is null.
+
+
Applies the given function to two collections simultaneously. If one sequence is shorter than
the other then the remaining elements of the longer sequence are ignored.
@@ -2241,32 +3160,34 @@
The first input sequence.
The second input sequence.
- The result sequence.
-
Thrown when either of the input sequences is null.
-
+
Applies the given function to each element of the collection. The integer passed to the
function indicates the index of element.
A function to apply to each element of the sequence that can also access the current index.
The input sequence.
- The result sequence.
-
Thrown when the input sequence is null.
-
+
Applies the given function to each element of the collection.
A function to apply to each element of the sequence.
The input sequence.
- The result sequence.
-
Thrown when the input sequence is null.
-
+
+ Computes the element at the specified index in the collection.
+ The index of the element to retrieve.
+ The input sequence.
+ The element at the specified index of the sequence.
+ Thrown when the input sequence is null.
+ Thrown when the index is negative or the input sequence does not contain enough elements.
+
+
Generates a new sequence which, when iterated, will return successive
elements by calling the given function. The results of calling the function
will not be saved, that is the function will be reapplied as necessary to
@@ -2281,11 +3202,10 @@
The result sequence.
-
+
Generates a new sequence which, when iterated, will return successive
- elements by calling the given function, up to the given count. The results of calling the function
- will not be saved, that is the function will be reapplied as necessary to
- regenerate the elements. The function is passed the index of the item being
+ elements by calling the given function, up to the given count. Each element is saved after its
+ initialization. The function is passed the index of the item being
generated.
The returned sequence may be passed between threads safely. However,
@@ -2298,12 +3218,55 @@
Thrown when count is negative.
+
+ Builds a new collection whose elements are the corresponding elements of the input collection
+ paired with the integer index (from 0) of each element.
+ The input sequence.
+ The result sequence.
+ Thrown when the input sequence is null.
+
Returns true if the sequence contains no elements, false otherwise.
The input sequence.
- The result sequence.
+ True if the sequence is empty; false otherwise.
+
+ Thrown when the input sequence is null.
+
+
+ Returns the only element of the sequence.
+
+ The input sequence.
+
+ The only element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input does not have precisely one element.
+
+
+ Returns the last element of the sequence.
+ Return None if no such element exists.
+
+ The input sequence.
+
+ The last element of the sequence or None.
+
+ Thrown when the input sequence is null.
+
+
+ Returns the last element of the sequence.
+ The input sequence.
+ The last element of the sequence.
+ Thrown when the input sequence is null.
+ Thrown when the input does not have any elements.
+
+
+ Returns the first element of the sequence, or None if the sequence is empty.
+
+ The input sequence.
+
+ The first element of the sequence or None.
Thrown when the input sequence is null.
@@ -2312,14 +3275,14 @@
The input sequence.
- The result sequence.
+ The first element of the sequence.
Thrown when the input sequence is null.
Thrown when the input does not have any elements.
-
+
Applies a key-generating function to each element of a sequence and yields a sequence of
- unique keys. Each unique key has also contains a sequence of all elements that match
+ unique keys. Each unique key contains a sequence of all elements that match
to this key.
This function returns a sequence that digests the whole initial sequence as soon as
@@ -2332,7 +3295,7 @@
The result sequence.
-
+
Tests the all pairs of elements drawn from the two sequences satisfy the
given predicate. If one sequence is shorter than
the other then the remaining elements of the longer sequence are ignored.
@@ -2341,11 +3304,11 @@
The first input sequence.
The second input sequence.
- The result sequence.
+ True if all pairs satisfy the predicate; false otherwise.
Thrown when either of the input sequences is null.
-
+
Tests if all elements of the sequence satisfy the given predicate.
The predicate is applied to the elements of the input sequence. If any application
@@ -2355,11 +3318,46 @@
A function to test an element of the input sequence.
The input sequence.
- The result sequence.
+ True if every element of the sequence satisfies the predicate; false otherwise.
Thrown when the input sequence is null.
-
+
+ Applies a function to corresponding elements of two collections, starting from the end of the shorter collection,
+ threading an accumulator argument through the computation. The two sequences need not have equal lengths.
+ If the input function is f and the elements are i0...iN and j0...jM, N < M
+ then computes f i0 j0 (... (f iN jN s)...).
+ The function to update the state given the input elements.
+ The first input sequence.
+ The second input sequence.
+ The initial state.
+ The final state value.
+ Thrown when the either of the input sequences is null.
+
+
+ Applies a function to each element of the collection, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN
+ then computes f i0 (... (f iN s)...)
+ The function to update the state given the input elements.
+ The input sequence.
+ The initial state.
+ The state object after the folding function is applied to each element of the sequence.
+ Thrown when the input sequence is null.
+
+
+ Applies a function to corresponding elements of two collections, threading an accumulator argument
+ through the computation. The two sequences need not have equal lengths:
+ when one sequence is exhausted any remaining elements in the other sequence are ignored.
+ If the input function is f and the elements are i0...iN and j0...jN
+ then computes f (... (f s i0 j0)...) iN jN.
+ The function to update the state given the input elements.
+ The initial state.
+ The first input sequence.
+ The second input sequence.
+ The final state value.
+ Thrown when the either of the input sequences is null.
+
+
Applies a function to each element of the collection, threading an accumulator argument
through the computation. If the input function is f and the elements are i0...iN
then computes f (... (f s i0)...) iN
@@ -2368,41 +3366,81 @@
The initial state.
The input sequence.
- The result sequence.
+ The state object after the folding function is applied to each element of the sequence.
Thrown when the input sequence is null.
-
+
+ Returns the index of the last element for which the given function returns true.
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+ A function to test whether the index of a particular element should be returned.
+ The input sequence.
+ The index of the last element for which the predicate returns true.
+ Thrown if no element returns true when
+ evaluated by the predicate
+ Thrown when the input sequence is null
+
+
Returns the index of the first element for which the given function returns true.
A function to test whether the index of a particular element should be returned.
The input sequence.
- The result sequence.
+ The index of the first element for which the predicate returns true.
Thrown if no element returns true when
evaluated by the predicate
Thrown when the input sequence is null
-
+
+ Returns the last element for which the given function returns true.
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+ A function to test whether an item in the sequence should be returned.
+ The input sequence.
+ The last element for which the predicate returns true.
+ Thrown if no element returns true when
+ evaluated by the predicate
+ Thrown when the input sequence is null
+
+
Returns the first element for which the given function returns true.
A function to test whether an item in the sequence should be returned.
The input sequence.
- The result sequence.
+ The first element for which the predicate returns true.
Thrown if no element returns true when
evaluated by the predicate
Thrown when the input sequence is null
-
+
Returns a new collection containing only the elements of the collection
for which the given predicate returns "true".
The returned sequence may be passed between threads safely. However,
individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+ Remember sequence is lazy, effects are delayed until it is enumerated.
+
+ A synonym for Seq.filter.
+
+ A function to test whether each item in the input sequence should be included in the output.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+ Returns a new collection containing only the elements of the collection
+ for which the given predicate returns "true". This is a synonym for Seq.where.
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+
Remember sequence is lazy, effects are delayed until it is enumerated.
A function to test whether each item in the input sequence should be included in the output.
@@ -2412,7 +3450,7 @@
Thrown when the input sequence is null.
-
+
Tests if any pair of corresponding elements of the input sequences satisfies the given predicate.
The predicate is applied to matching elements in the two sequences up to the lesser of the
@@ -2424,11 +3462,11 @@
The first input sequence.
The second input sequence.
- The result sequence.
+ True if any result from the predicate is true; false otherwise.
Thrown when either of the two input sequences is null.
-
+
Tests if any element of the sequence satisfies the given predicate.
The predicate is applied to the elements of the input sequence. If any application
@@ -2438,16 +3476,43 @@
A function to test each item of the input sequence.
The input sequence.
- The result sequence.
+ True if any result from the predicate is true; false otherwise.
Thrown when the input sequence is null.
+
+ Returns a new sequence with the distinct elements of the second sequence which do not appear in the first sequence,
+ using generic hash and equality comparisons to compare values.
+
+ Note that this function returns a sequence that digests the whole of the first input sequence as soon as
+ the result sequence is iterated. As a result this function should not be used with
+ large or infinite sequences in the first parameter. The function makes no assumption on the ordering of the first input
+ sequence.
+
+ A sequence whose elements that also occur in the second sequence will cause those elements to be
+ removed from the returned sequence.
+ A sequence whose elements that are not also in first will be returned.
+
+ A sequence that contains the set difference of the elements of two sequences.
+
+ Thrown when either of the two input sequences is null.
+
Creates an empty sequence.
- The result sequence.
+ An empty sequence.
+
+
+ Splits the input sequence into at most count chunks.
+ This function returns a sequence that digests the whole initial sequence as soon as that
+ sequence is iterated. As a result this function should not be used with large or infinite sequences.
+ The maximum number of chunks.
+ The input sequence.
+ The sequence split into chunks.
+ Thrown when the input sequence is null.
+ Thrown when count is not positive.
-
+
Returns a sequence that contains no duplicate entries according to the
generic hash and equality comparisons on the keys returned by the given key-generating function.
If an element occurs multiple times in the sequence then the later occurrences are discarded.
@@ -2470,7 +3535,7 @@
Thrown when the input sequence is null.
-
+
Returns a sequence that is built from the given delayed specification of a
sequence.
@@ -2479,8 +3544,8 @@
The generating function for the sequence.
-
- Applies a key-generating function to each element of a sequence and return a sequence yielding unique
+
+ Applies a key-generating function to each element of a sequence and returns a sequence yielding unique
keys and their number of occurrences in the original sequence.
Note that this function returns a sequence that digests the whole initial sequence as soon as
@@ -2488,7 +3553,7 @@
large or infinite sequences. The function makes no assumption on the ordering of the original
sequence.
- A function transforming each item of input sequence into a key to be
+ A function transforming each item of the input sequence into a key to be
compared against the others.
The input sequence.
@@ -2496,6 +3561,13 @@
Thrown when the input sequence is null.
+
+ Tests if the sequence contains the specified element.
+ The value to locate in the input sequence.
+ The input sequence.
+ True if the input sequence contains the specified element; false otherwise.
+ Thrown when the input sequence is null.
+
Combines the given enumeration-of-enumerations as a single concatenated
enumeration.
@@ -2509,7 +3581,7 @@
Thrown when the input sequence is null.
-
+
Compares two sequences using the given comparison function, element by element.
Returns the first non-zero result from the comparison function. If the end of a sequence
is reached it returns a -1 if the first sequence is shorter and a 1 if the second sequence
@@ -2520,12 +3592,12 @@
The first input sequence.
The second input sequence.
- The result sequence.
+ The first non-zero value from the comparison function.
Thrown when either of the input sequences
is null.
-
+
Applies the given function to each element of the sequence and concatenates all the
results.
@@ -2539,7 +3611,15 @@
Thrown when the input sequence is null.
-
+
+ Divides the input sequence into chunks of size at most chunkSize.
+ The maximum size of each chunk.
+ The input sequence.
+ The sequence divided into chunks.
+ Thrown when the input sequence is null.
+ Thrown when chunkSize is not positive.
+
+
Applies the given function to each element of the list. Return
the list comprised of the results "x" for each element where
the function returns Some(x).
@@ -2598,7 +3678,7 @@
Thrown when the input sequence is null.
-
+
Returns the average of the results generated by applying the function to each element
of the sequence.
@@ -2608,7 +3688,7 @@
A function applied to transform each element of the sequence.
The input sequence.
- The result sequence.
+ The average.
Thrown when the input sequence is null.
Thrown when the input sequence has zero elements.
@@ -2621,7 +3701,7 @@
The input sequence.
- The result sequence.
+ The average.
Thrown when the input sequence is null.
Thrown when the input sequence has zero elements.
@@ -2698,7 +3778,7 @@
The input set.
The input set with value removed.
-
+
Splits the set into two sets containing the elements for which the given predicate
returns true and false respectively.
The function to test set elements.
@@ -2706,7 +3786,7 @@
A pair of sets with the first containing the elements for which predicate returns
true and the second containing the elements for which predicate returns false.
-
+
Applies the given function to each element of the set, in order according
to the comparison function.
The function to apply to each element.
@@ -2719,7 +3799,7 @@
Computes the union of a sequence of sets.
- The sequence of sets to untion.
+ The sequence of sets to union.
The union of the input sets.
@@ -2739,7 +3819,7 @@
The second input set.
The intersection of set1 and set2.
-
+
Tests if all elements of the collection satisfy the given predicate.
If the input function is f and the elements are i0...iN and "j0...jN"
then computes p i0 && ... && p iN.
@@ -2747,35 +3827,35 @@
The input set.
True if all elements of set satisfy predicate.
-
+
Applies the given accumulating function to all the elements of the set.
The accumulating function.
The input set.
The initial state.
The final state.
-
+
Applies the given accumulating function to all the elements of the set
The accumulating function.
The initial state.
The input set.
The final state.
-
+
Returns a new collection containing the results of applying the
given function to each element of the input set.
The function to transform elements of the input set.
The input set.
A set containing the transformed elements.
-
+
Returns a new collection containing only the elements of the collection
for which the given predicate returns true.
The function to test set elements.
The input set.
The set containing only the elements for which predicate returns true.
-
+
Tests if any element of the collection satisfies the given predicate.
If the input function is predicate and the elements are i0...iN
then computes p i0 or ... or p iN.
@@ -2850,7 +3930,7 @@
An asynchronous computation capable of retrieving the CancellationToken from a computation
expression.
-
+
Creates an asynchronous computation that executes computation.
If this computation is cancelled before it completes then the computation generated by
running compensation is executed.
@@ -2876,7 +3956,7 @@
The synchronization context to accept the posted computation.
An asynchronous computation that uses the syncContext context to execute.
-
+
Runs an asynchronous computation, starting immediately on the current operating system
thread. Call one of the three continuations when the operation completes.
If no cancellation token is provided then the default cancellation token
@@ -2897,9 +3977,7 @@
The default is used if this parameter is not provided.
-
- Creates an asynchronous computation which starts the given computation as a <c>System.Threading.Tasks.Task</c>
-
+ Creates an asynchronous computation which starts the given computation as a System.Threading.Tasks.Task
Starts a child computation within an asynchronous workflow.
@@ -2925,12 +4003,11 @@
A new computation that waits for the input computation to finish.
-
- Executes a computation in the thread pool. Returns a <c>System.Threading.Tasks.Task</c> that will be completed
- in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled)
+ Executes a computation in the thread pool.
+ If no cancellation token is provided then the default cancellation token is used.
+ A System.Threading.Tasks.Task that will be completed
+ in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled)
- If no cancellation token is provided then the default cancellation token is used.
-
Starts the asynchronous computation in the thread pool. Do not await its result.
@@ -2982,7 +4059,7 @@
A sequence of distinct computations to be parallelized.
A computation that returns an array of values from the sequence of input computations.
-
+
Generates a scoped, cooperative cancellation handler for use within an asynchronous workflow.
For example,
@@ -3003,7 +4080,7 @@
The input computation.
A computation that is equivalent to the input computation, but disregards the result.
-
+
Creates an asynchronous computation that captures the current
success, exception and cancellation continuations. The callback must
eventually call exactly one of the given continuations.
@@ -3011,9 +4088,9 @@
continuations.
An asynchronous computation that provides the callback with the current continuations.
-
+
Creates an asynchronous computation in terms of a Begin/End pair of actions in
- the style used in CLI APIs. This overlaod should be used if the operation is
+ the style used in CLI APIs. This overload should be used if the operation is
qualified by three arguments. For example,
Async.FromBeginEnd(arg1,arg2,arg3,ws.BeginGetWeather,ws.EndGetWeather)
When the computation is run, beginFunc is executed, with
@@ -3034,9 +4111,9 @@
An optional function to be executed when a cancellation is requested.
An asynchronous computation wrapping the given Begin/End functions.
-
+
Creates an asynchronous computation in terms of a Begin/End pair of actions in
- the style used in CLI APIs. This overlaod should be used if the operation is
+ the style used in CLI APIs. This overload should be used if the operation is
qualified by two arguments. For example,
Async.FromBeginEnd(arg1,arg2,ws.BeginGetWeather,ws.EndGetWeather)
When the computation is run, beginFunc is executed, with
@@ -3056,9 +4133,9 @@
An optional function to be executed when a cancellation is requested.
An asynchronous computation wrapping the given Begin/End functions.
-
+
Creates an asynchronous computation in terms of a Begin/End pair of actions in
- the style used in CLI APIs. This overlaod should be used if the operation is
+ the style used in CLI APIs. This overload should be used if the operation is
qualified by one argument. For example,
Async.FromBeginEnd(place,ws.BeginGetWeather,ws.EndGetWeather)
When the computation is run, beginFunc is executed, with
@@ -3077,7 +4154,7 @@
An optional function to be executed when a cancellation is requested.
An asynchronous computation wrapping the given Begin/End functions.
-
+
Creates an asynchronous computation in terms of a Begin/End pair of actions in
the style used in CLI APIs. For example,
Async.FromBeginEnd(ws.BeginGetWeather,ws.EndGetWeather)
@@ -3119,6 +4196,12 @@
then the default value of -1 corresponding to System.Threading.Timeout.Infinite.
An asynchronous computation that waits on the given WaitHandle.
+
+
+ Return an asynchronous computation that will wait for the given task to complete and return
+ its result.
+
+
Return an asynchronous computation that will wait for the given task to complete and return
@@ -3134,7 +4217,7 @@
then the default value of -1 corresponding to System.Threading.Timeout.Infinite.
An asynchronous computation that waits on the given IAsyncResult.
-
+
Creates an asynchronous computation that waits for a single invocation of a CLI
event by adding a handler to the event. Once the computation completes or is
cancelled, the handler is removed from the event.
@@ -3150,7 +4233,7 @@
cancellation is issued.
An asynchronous computation that waits for the event to be invoked.
-
+
Creates three functions that can be used to implement the .NET Asynchronous
Programming Model (APM) for a given asynchronous computation.
@@ -3198,7 +4281,7 @@
async { ... } computation expression syntax.
An asynchronous computation that returns ().
-
+
Creates an asynchronous computation that runs computation repeatedly
until guard() becomes false.
@@ -3211,7 +4294,7 @@
of a while expression.
An asynchronous computation that behaves similarly to a while loop when run.
-
+
Creates an asynchronous computation that runs binder(resource).
The action resource.Dispose() is executed as this computation yields its result
or if the asynchronous computation exits by an exception or by cancellation.
@@ -3225,7 +4308,7 @@
computation.
An asynchronous computation that binds and eventually disposes resource.
-
+
Creates an asynchronous computation that runs computation and returns its result.
If an exception happens then catchHandler(exn) is called and the resulting computation executed instead.
@@ -3238,7 +4321,7 @@
An asynchronous computation that executes computation and calls catchHandler if an
exception is thrown.
-
+
Creates an asynchronous computation that runs computation. The action compensation is executed
after computation completes, whether computation exits normally or by an exception. If compensation raises an exception itself
the original exception is discarded and the new exception becomes the overall result of the computation.
@@ -3250,7 +4333,7 @@
The input computation.
The action to be run after computation completes or raises an
exception (including cancellation).
- An asynchronous computation that executes computation and compensation aftewards or
+ An asynchronous computation that executes computation and compensation afterwards or
when an exception is raised.
@@ -3271,7 +4354,7 @@
The value to return from the computation.
An asynchronous computation that returns value when executed.
-
+
Creates an asynchronous computation that enumerates the sequence seq
on demand and runs body for each element.
@@ -3285,7 +4368,7 @@
An asynchronous computation that will enumerate the sequence and run body
for each element.
-
+
Creates an asynchronous computation that runs generator.
A cancellation check is performed when the computation is executed.
@@ -3304,7 +4387,7 @@
The second part of the sequenced computation.
An asynchronous computation that runs both of the computations sequentially.
-
+
Creates an asynchronous computation that runs computation, and when
computation generates a result T, runs binder res.
@@ -3392,9 +4475,6 @@
Event implementations for a delegate types following the standard .NET Framework convention of a first 'sender' argument.
-
-
-
A delegate type associated with the F# event type IEvent<_>
@@ -3415,7 +4495,7 @@
First class event values for arbitrary delegate types.
F# gives special status to member properties compatible with type IDelegateEvent and
- tagged with the CLIEventAttribute. In this case the F# compiler generates approriate
+ tagged with the CLIEventAttribute. In this case the F# compiler generates appropriate
CLI metadata to make the member appear to other CLI languages as a CLI event.
@@ -3452,7 +4532,7 @@
Occurs when the execution of the agent results in an exception.
-
+
Scans for a message by looking through messages in arrival order until scanner
returns a Some value. Other messages remain in the queue.
@@ -3480,7 +4560,7 @@
An asynchronous computation that returns the received message or
None if the timeout is exceeded.
-
+
Like PostAndReply, but returns None if no reply within the timeout period.
The function to incorporate the AsyncReplyChannel into
the message to be sent.
@@ -3491,7 +4571,7 @@
Starts the agent.
-
+
Creates and starts an agent. The body function is used to generate the asynchronous
computation executed by the agent.
The function to produce an asynchronous computation that will be executed
@@ -3500,7 +4580,7 @@
Defaults to Async.DefaultCancellationToken.
The created MailboxProcessor.
-
+
Scans for a message by looking through messages in arrival order until scanner
returns a Some value. Other messages remain in the queue.
@@ -3529,7 +4609,7 @@
An asynchronous computation that returns the received message.
Thrown when the timeout is exceeded.
-
+
Like AsyncPostAndReply, but returns None if no reply within the timeout period.
The function to incorporate the AsyncReplyChannel into
the message to be sent.
@@ -3537,7 +4617,7 @@
Defaults to -1 which corresponds to System.Threading.Timeout.Infinite.
An asynchronous computation that will return the reply or None if the timeout expires.
-
+
Posts a message to an agent and await a reply on the channel, synchronously.
The message is generated by applying buildMessage to a new reply channel
@@ -3549,7 +4629,7 @@
Defaults to -1 which corresponds to System.Threading.Timeout.Infinite.
The reply from the agent.
-
+
Posts a message to an agent and await a reply on the channel, asynchronously.
The message is generated by applying buildMessage to a new reply channel
@@ -3559,13 +4639,13 @@
the message to be sent.
An optional timeout parameter (in milliseconds) to wait for a reply message.
Defaults to -1 which corresponds to System.Threading.Timeout.Infinite.
- An asychronous computation that will wait for the reply from the agent.
+ An asynchronous computation that will wait for the reply from the agent.
Posts a message to the message queue of the MailboxProcessor, asynchronously.
The message to post.
-
+
Creates an agent. The body function is used to generate the asynchronous
computation executed by the agent. This function is not executed until
Start is called.
@@ -3585,8 +4665,42 @@
The agent may wait for messages using the Receive or TryReceive methods or
scan through all available messages using the Scan or TryScan method.
-
-
+
+ Connects a listener function to the observable. The listener will
+ be invoked for each observation. The listener can be removed by
+ calling Dispose on the returned IDisposable object.
+ The function to be called for each observation.
+ An object that will remove the listener if disposed.
+
+
+ Permanently connects a listener function to the observable. The listener will
+ be invoked for each observation.
+ The function to be called for each observation.
+
+
+ Returns an asynchronous computation that will write the given bytes to the stream.
+ The buffer to write from.
+ An optional offset as a number of bytes in the stream.
+ An optional number of bytes to write to the stream.
+ An asynchronous computation that will write the given bytes to the stream.
+ Thrown when the sum of offset and count is longer than
+ the buffer length.
+ Thrown when offset or count is negative.
+
+
+ Returns an asynchronous computation that will read the given number of bytes from the stream.
+ The number of bytes to read.
+ An asynchronous computation that returns the read byte[] when run.
+
+
+ Returns an asynchronous computation that will read from the stream into the given buffer.
+ The buffer to read into.
+ An optional offset as a number of bytes in the stream.
+ An optional number of bytes to read from the stream.
+ An asynchronous computation that will read from the stream into the given buffer.
+ Thrown when the sum of offset and count is longer than
+ the buffer length.
+ Thrown when offset or count is negative.
A module of extension members providing asynchronous operations for some basic CLI types related to concurrency and I/O.
@@ -3599,12 +4713,12 @@
The input event.
An event that triggers on pairs of consecutive values passed from the source event.
-
+
Runs the given function each time the given event is triggered.
The function to call when the event is triggered.
The input event.
-
+
Returns a new event consisting of the results of applying the given accumulating function
to successive values triggered on the input event. An item of internal state
records the current value of the state parameter. The internal state is not locked during the
@@ -3615,14 +4729,14 @@
The input event.
An event that fires on the updated state values.
-
+
Returns a new event which fires on a selection of messages from the original event.
The selection function takes an original message to an optional new message.
The function to select and transform event values to pass on.
The input event.
An event that fires only when the chooser returns Some.
-
+
Returns a new event that listens to the original event and triggers the
first resulting event if the application of the function to the event arguments
returned a Choice1Of2, and the second event if it returns a Choice2Of2.
@@ -3631,7 +4745,7 @@
A tuple of events. The first fires whenever splitter evaluates to Choice1of1 and
the second fires whenever splitter evaluates to Choice2of2.
-
+
Returns a new event that listens to the original event and triggers the
first resulting event if the application of the predicate to the event arguments
returned true, and the second event if it returned false.
@@ -3640,14 +4754,14 @@
A tuple of events. The first is triggered when the predicate evaluates to true
and the second when the predicate evaluates to false.
-
+
Returns a new event that listens to the original event and triggers the resulting
event only when the argument to the event passes the given function.
The function to determine which triggers from the event to propagate.
The input event.
An event that only passes values that pass the predicate.
-
+
Returns a new event that passes values transformed by the given function.
The function to transform event values.
The input event.
@@ -3659,8 +4773,20 @@
The second input event.
An event that fires when either of the input events fire.
-
-
+
+ Forces the execution of this value and return its result. Same as Value. Mutual exclusion is used to
+ prevent other threads also computing the value.
+ The value of the Lazy object.
+
+
+ Creates a lazy computation that evaluates to the given value when forced.
+ The input value.
+ The created Lazy object.
+
+
+ Creates a lazy computation that evaluates to the result of the given function when forced.
+ The function to provide the value when needed.
+ The created Lazy object.
Extensions related to Lazy values.
@@ -3677,20 +4803,20 @@
The input Observable.
An Observable that triggers on successive pairs of observations from the input Observable.
-
+
Creates an observer which subscribes to the given observable and which calls
the given function for each observation.
The function to be called on each observation.
The input Observable.
An object that will remove the callback if disposed.
-
+
Creates an observer which permanently subscribes to the given observable and which calls
the given function for each observation.
The function to be called on each observation.
The input Observable.
-
+
Returns an observable which, for each observer, allocates an item of state
and applies the given accumulating function to successive values arising from
the input. The returned object will trigger observations for each computed
@@ -3705,7 +4831,7 @@
The input Observable.
An Observable that triggers on the updated state values.
-
+
Returns an observable which chooses a projection of observations from the source
using the given function. The returned object will trigger observations x
for which the splitter returns Some x. The returned object also propagates
@@ -3715,7 +4841,7 @@
The input Observable.
An Observable that only propagates some of the observations from the source.
-
+
Returns two observables which split the observations of the source by the
given function. The first will trigger observations x for which the
splitter returns Choice1Of2 x. The second will trigger observations
@@ -3729,7 +4855,7 @@
A tuple of Observables. The first triggers when splitter returns Choice1of2
and the second triggers when splitter returns Choice2of2.
-
+
Returns two observables which partition the observations of the source by
the given function. The first will trigger observations for those values
for which the predicate returns true. The second will trigger observations
@@ -3743,7 +4869,7 @@
A tuple of Observables. The first triggers when the predicate returns true, and
the second triggers when the predicate returns false.
-
+
Returns an observable which filters the observations of the source
by the given function. The observable will see only those observations
for which the predicate returns true. The predicate is executed once for
@@ -3754,7 +4880,7 @@
The input Observable.
An Observable that filters observations based on filter.
-
+
Returns an observable which transforms the observations of the source by the
given function. The transformation function is executed once for each
subscribed observer. The returned object also propagates error observations
@@ -3778,6 +4904,26 @@
Basic operations on first class event and other observable objects.
+
+ Returns an asynchronous computation that, when run, will wait for the download of the given URI to specified file.
+ The URI to retrieve.
+ The filename to save download to.
+ An asynchronous computation that will wait for the download of the URI to specified file.
+
+
+ Returns an asynchronous computation that, when run, will wait for the download of the given URI.
+ The URI to retrieve.
+ An asynchronous computation that will wait for the download of the URI.
+
+
+ Returns an asynchronous computation that, when run, will wait for the download of the given URI.
+ The URI to retrieve.
+ An asynchronous computation that will wait for the download of the URI.
+
+
+ Returns an asynchronous computation that, when run, will wait for a response to the given WebRequest.
+ An asynchronous computation that waits for response to the WebRequest.
+
A module of extension members providing asynchronous operations for some basic Web operations.
@@ -3789,6 +4935,13 @@
Adding this attribute to class definition makes it abstract, which means it need not
implement all its methods. Instances of abstract classes may not be constructed directly.
+
+ The value of the attribute, indicating whether the type allows the null literal or not
+
+
+ Creates an instance of the attribute with the specified value
+ AllowNullLiteralAttribute
+
Creates an instance of the attribute
AllowNullLiteralAttribute
@@ -3816,7 +4969,7 @@
This attribute is used for two purposes. When applied to an assembly, it must be given a string
argument, and this argument must indicate a valid module or namespace in that assembly. Source
code files compiled with a reference to this assembly are processed in an environment
- where the given path is automatically oepned.
+ where the given path is automatically opened.
When applied to a module within an assembly, then the attribute must not be given any arguments.
When the enclosing namespace is opened in user source code, the module is also implicitly opened.
@@ -3842,6 +4995,14 @@
metadata event, through a syntactic translation to a pair of 'add_EventName' and
'remove_EventName' methods.
+
+ Creates an instance of the attribute
+ CLIMutableAttribute
+
+
+ Adding this attribute to a record type causes it to be compiled to a CLI representation
+ with a default constructor with property getters and setters.
+
Choice 2 of 2 choices
@@ -3978,12 +5139,23 @@
Indicates the variant number of the entity, if any, in a linear sequence of elements with F# source code
+
+ Indicates the type definitions needed to resolve the source construct
+
Indicates the relationship between the compiled entity and F# source code
Indicates the sequence number of the entity, if any, in a linear sequence of elements with F# source code
+
+ Indicates the resource the source construct relates to
+
+
+ Creates an instance of the attribute
+ Indicates the type definitions needed to resolve the source construct.
+ CompilationMappingAttribute
+
Creates an instance of the attribute
Indicates the type of source construct.
@@ -4019,26 +5191,23 @@
For example, it may be used to note that the null representation
may be used for a type. This affects how some constructs are compiled.
-
+
Compile a property as a CLI event.
-
+
Permit the use of null as a representation for nullary discriminators in a discriminated union.
-
+
append 'Module' to the end of a module whose name clashes with a type name in the same namespace.
-
+
Compile a member as 'instance' even if null is used as a representation for this type.
-
+
Compile an instance member as 'static' .
-
+
No special compilation representation.
-
-
-
Indicates one or more adjustments to the compiled representation of an F# type or member.
@@ -4108,6 +5277,61 @@
Adding this attribute to a type indicates it is a type with a user-defined implementation of equality.
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression through the use of a bind operation
+
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression
+
+
+ Indicates the name used for the 'on' part of the custom query operator for join-like operators
+
+
+ Indicates if the custom operation is an operation similar to a zip in a sequence computation, supporting two inputs
+
+
+ Indicates if the custom operation is an operation similar to a join in a sequence computation, supporting two inputs and a correlation constraint
+
+
+ Indicates if the custom operation is an operation similar to a group join in a sequence computation, supporting two inputs and a correlation constraint, and generating a group
+
+
+ Indicates if the custom operation supports the use of 'into' immediately after the use of the operation in a query or other computation expression to consume the results of the operation
+
+
+ Get the name of the custom operation when used in a query or other computation expression
+
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression through the use of a bind operation
+
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression
+
+
+ Indicates the name used for the 'on' part of the custom query operator for join-like operators
+
+
+ Indicates if the custom operation is an operation similar to a zip in a sequence computation, supporting two inputs
+
+
+ Indicates if the custom operation is an operation similar to a join in a sequence computation, supporting two inputs and a correlation constraint
+
+
+ Indicates if the custom operation is an operation similar to a group join in a sequence computation, supporting two inputs and a correlation constraint, and generating a group
+
+
+ Indicates if the custom operation supports the use of 'into' immediately after the use of the operation in a query or other computation expression to consume the results of the operation
+
+
+ Creates an instance of the attribute
+ CustomOperationAttribute
+
+
+
+ Indicates that a member on a computation builder type is a custom query operator,
+ and indicates the name of that operator.
+
+
The value of the attribute, indicating whether the type has a default augmentation or not
@@ -4145,7 +5369,7 @@
Adding this attribute to a function indicates it is the entrypoint for an application.
- If this absent is not speficied for an EXE then the initialization implicit in the
+ If this attribute is not specified for an EXE then the initialization implicit in the
module bindings in the last file in the compilation sequence are used as the entrypoint.
@@ -4180,17 +5404,17 @@
The input System.Converter.
An F# function of the same type.
-
+
Convert an F# first class function value to a value of type System.Converter
The input function.
A System.Converter of the function type.
-
+
Convert an F# first class function value to a value of type System.Converter
The input function.
System.Converter<'T,'U>
-
+
Invoke an F# first class function value with two curried arguments. In some cases this
will result in a more efficient application than applying the arguments successively.
The input function.
@@ -4198,7 +5422,7 @@
The second arg.
The function result.
-
+
Invoke an F# first class function value with three curried arguments. In some cases this
will result in a more efficient application than applying the arguments successively.
The input function.
@@ -4207,7 +5431,7 @@
The third arg.
The function result.
-
+
Invoke an F# first class function value with four curried arguments. In some cases this
will result in a more efficient application than applying the arguments successively.
The input function.
@@ -4217,7 +5441,7 @@
The fourth arg.
The function result.
-
+
Invoke an F# first class function value with five curried arguments. In some cases this
will result in a more efficient application than applying the arguments successively.
The input function.
@@ -4304,28 +5528,28 @@
The input action.
The F# function.
-
+
A utility function to convert function values from tupled to curried form
The input tupled function.
The output curried function.
-
+
A utility function to convert function values from tupled to curried form
The input tupled function.
The output curried function.
-
+
A utility function to convert function values from tupled to curried form
The input tupled function.
The output curried function.
-
+
A utility function to convert function values from tupled to curried form
The input tupled function.
The output curried function.
- Helper functions for converting F# first class function values to and from CLI representaions
+ Helper functions for converting F# first class function values to and from CLI representations
of functions using delegates.
@@ -4471,7 +5695,15 @@
Value generated after post processing (e.g. failwithf generates a string internally then raises an exception)
Tuple of values generated by scan or match.
-
+
+ Creates an instance of the attribute
+ ProjectionParameterAttribute
+
+
+ Indicates that, when a custom operator is used in a computation expression,
+ a parameter is automatically parameterized by the variable space of the computation expression
+
+
The current value of the reference cell
@@ -4495,6 +5727,14 @@
of overrides for 'System.Object.Equals(obj)', 'System.Object.GetHashCode()'
and 'System.IComparable' for the type. The type will by default use reference equality.
+
+ The value of the attribute, indicating whether to include the evaluated value of the definition as the outer node of the quotation
+
+
+ Creates an instance of the attribute
+ Indicates whether to include the evaluated value of the definition as the outer node of the quotation
+ ReflectedDefinitionAttribute
+
Creates an instance of the attribute
ReflectedDefinitionAttribute
@@ -4509,7 +5749,7 @@
RequireQualifiedAccessAttribute
- This attribute is used to indicate that references to a the elements of a module, record or union
+ This attribute is used to indicate that references to the elements of a module, record or union
type require explicit qualified access.
@@ -4536,44 +5776,41 @@
Adding this attribute to class definition makes it sealed, which means it may not
be extended or implemented.
-
+
Indicates that the compiled entity had private or internal representation in F# source code.
-
+
The mask of values related to the kind of the compiled entity.
-
+
Indicates that the compiled entity is part of the representation of an F# value declaration.
-
+
Indicates that the compiled entity is part of the representation of an F# union case declaration.
-
+
Indicates that the compiled entity is part of the representation of an F# module declaration.
-
+
Indicates that the compiled entity is part of the representation of an F# closure.
-
+
Indicates that the compiled entity is part of the representation of an F# exception declaration.
-
+
Indicates that the compiled entity is part of the representation of an F# record or union case field declaration.
-
+
Indicates that the compiled entity is part of the representation of an F# class or other object type declaration.
-
+
Indicates that the compiled entity is part of the representation of an F# record type declaration.
-
+
Indicates that the compiled entity is part of the representation of an F# union type declaration.
-
+
Indicates that the compiled entity has no relationship to an element in F# source code.
-
-
-
Indicates the relationship between a compiled entity in a CLI binary and an element in F# source code.
@@ -4615,8 +5852,8 @@
This attribute is used to mark how a type is displayed by default when using
'%A' printf formatting patterns and other two-dimensional text-based display layouts.
- In this version of F# the only valid values are of the form PreText {PropertyName} PostText.
- The property name indicates a property to evaluate and to display instead of the object itself.
+ In this version of F# valid values are of the form PreText {PropertyName1} PostText {PropertyName2} ... {PropertyNameX} PostText.
+ The property names indicate properties to evaluate and to display instead of the object itself.
The type 'unit', which has only one value "()". This value is special and
@@ -4640,66 +5877,175 @@
Adding this attribute to an F# mutable binding causes the "volatile"
prefix to be used for all accesses to the field.
-
- Four dimensional arrays, typically zero-based. Non-zero-based arrays
+
+ Thirty-two dimensional arrays, typically zero-based. Non-zero-based arrays
can be created using methods on the System.Array type.
-
- Use the values in the Array4D module
- to manipulate values of this type, or the notation arr.[x1,x2,x3,x4] to get and set array
- values.
-
- Three dimensional arrays, typically zero-based. Non-zero-based arrays
+
+ Thirty-one dimensional arrays, typically zero-based. Non-zero-based arrays
can be created using methods on the System.Array type.
-
- Use the values in the Array3D module
- to manipulate values of this type, or the notation arr.[x1,x2,x3] to get and set array
- values.
-
- Two dimensional arrays, typically zero-based.
-
- Use the values in the Array2D module
- to manipulate values of this type, or the notation arr.[x,y] to get/set array
- values.
-
- Non-zero-based arrays can also be created using methods on the System.Array type.
+
+ Thirty dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- Single dimensional, zero-based arrays, written int[], string[] etc.
- Use the values in the Array module to manipulate values
- of this type, or the notation arr.[x] to get/set array
- values.
+
+ Twenty-nine dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- Single dimensional, zero-based arrays, written int[], string[] etc.
-
- Use the values in the Array module to manipulate values
- of this type, or the notation arr.[x] to get/set array
- values.
+
+ Twenty-eight dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
-
+
+ Twenty-seven dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- An abbreviation for the CLI type System.Boolean.
+
+ Twenty-six dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- Represents a managed pointer in F# code.
+
+ Twenty-five dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- An abbreviation for the CLI type System.Byte.
+
+ Twenty-four dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- An abbreviation for the CLI type System.Char.
+
+ Twenty-three dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- An abbreviation for the CLI type System.Decimal.
+
+ Twenty-two dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
-
- The type of decimal numbers, annotated with a unit of measure. The unit
- of measure is erased in compiled code and when values of this type
- are analyzed using reflection. The type is representationally equivalent to
+
+ Twenty-one dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Twenty dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Nineteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Eighteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Seventeen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Sixteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Fifteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Fourteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Thirteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Twelve dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Eleven dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Ten dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Nine dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Eight dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Seven dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Six dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Five dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+
+ Four dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Use the values in the Array4D module
+ to manipulate values of this type, or the notation arr.[x1,x2,x3,x4] to get and set array
+ values.
+
+
+ Three dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Use the values in the Array3D module
+ to manipulate values of this type, or the notation arr.[x1,x2,x3] to get and set array
+ values.
+
+
+ Two dimensional arrays, typically zero-based.
+
+ Use the values in the Array2D module
+ to manipulate values of this type, or the notation arr.[x,y] to get/set array
+ values.
+
+ Non-zero-based arrays can also be created using methods on the System.Array type.
+
+
+ Single dimensional, zero-based arrays, written int[], string[] etc.
+ Use the values in the Array module to manipulate values
+ of this type, or the notation arr.[x] to get/set array
+ values.
+
+
+ Single dimensional, zero-based arrays, written int[], string[] etc.
+
+ Use the values in the Array module to manipulate values
+ of this type, or the notation arr.[x] to get/set array
+ values.
+
+
+ An abbreviation for the CLI type System.Boolean.
+
+
+ Represents a managed pointer in F# code.
+
+
+ An abbreviation for the CLI type System.Byte.
+
+
+ An abbreviation for the CLI type System.Char.
+
+
+ An abbreviation for the CLI type System.Decimal.
+
+
+ The type of decimal numbers, annotated with a unit of measure. The unit
+ of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
System.Decimal.
@@ -4826,15 +6172,6 @@
The type 'unit', which has only one value "()". This value is special and
always uses the representation 'null'.
-
-
-
-
-
-
-
-
-
Non-exhaustive match failures will raise the MatchFailureException exception
@@ -4868,19 +6205,244 @@
The F# compiler emits implementations of this type for compiled sequence expressions.
-
-
+
+
+ Namespace name the provider injects types into.
+
-
-
+
+
+ Compilers call this method to query a type provider for a type name.
+
+ Resolver should return a type called name in namespace NamespaceName or null if the type is unknown.
+
+
+
+
+
+ The top-level types
+
+
+
+
+
+ The sub-namespaces in this namespace. An optional member to prevent generation of namespaces until an outer namespace is explored.
+
-
-
+
+
+ Represents a namespace provided by a type provider component.
+
+
+
+
+ Triggered when an assumption changes that invalidates the resolutions so far reported by the provider
+
+
+
+
+ Triggered when an assumption changes that invalidates the resolutions so far reported by the provider
+
+
+
+
+ Triggered when an assumption changes that invalidates the resolutions so far reported by the provider
+
+
+
+
+ Get the static parameters for a provided type.
+
+ A type returned by GetTypes or ResolveTypeName
+
+
+
+
+ Namespace name the this TypeProvider injects types into.
+
+
+
+
+ Called by the compiler to ask for an Expression tree to replace the given MethodBase with.
+
+ MethodBase that was given to the compiler by a type returned by a GetType(s) call.
+ Expressions that represent the parameters to this call.
+ An expression that the compiler will use in place of the given method base.
+
+
+
+ Get the physical contents of the given logical provided assembly.
+
+
+
+
+ Apply static arguments to a provided type that accepts static arguments.
+
+ The provider must return a type with the given mangled name.
+ the provided type definition which has static parameters
+ the full path of the type, including encoded representations of static parameters
+ the static parameters, indexed by name
+
+
+
+
+ Represents an instantiation of a type provider component.
+
+
+
+
+ Get the static parameters for a provided method.
+
+ A method returned by GetMethod on a provided type
+ The static parameters of the provided method, if any
+
+
+
+ Apply static arguments to a provided method that accepts static arguments.
+
+ The provider must return a provided method with the given mangled name.
+ the provided method definition which has static parameters
+ the full name of the method that must be returned, including encoded representations of static parameters
+ the values of the static parameters, indexed by name
+ The provided method definition corresponding to the given static parameter values
+
+
+
+ Represents additional, optional information for a type provider component
+
-
-
+
+ Represents the inverse of a measure expressions when returned as a generic argument of a provided type.
+
+
+ Represents the '1' measure expression when returned as a generic argument of a provided type.
+
+
+ Represents the product of two measure expressions when returned as a generic argument of a provided type.
+
+
+ Creates an instance of the attribute
+ TypeProviderAssemblyAttribute
+ The name of the design-time assembly for this type provider.
+
+
+ Creates an instance of the attribute
+ TypeProviderAssemblyAttribute
+
+
+ Place attribute on runtime assembly to indicate that there is a corresponding design-time
+ assembly that contains a type provider. Runtime and designer assembly may be the same.
+
+
+ Creates an instance of the attribute
+ TypeProviderAttribute
+
+
+ Place on a class that implements ITypeProvider to extend the compiler
+
+
+
+ Get the full path to use for temporary files for the type provider instance.
+
+
+
+
+ version of referenced system runtime assembly
+
+
+
+
+ Get the full path to referenced assembly that caused this type provider instance to be created.
+
+
+
+
+ Get the full path to use to resolve relative paths in any file name arguments given to the type provider instance.
+
+
+
+
+ Get the referenced assemblies for the type provider instance.
+
+
+
+
+ Indicates if the type provider host responds to invalidation events for type provider instances.
+
+
+
+
+ Indicates if the type provider instance is used in an environment which executes provided code such as F# Interactive.
+
+
+
+
+ Get the full path to use for temporary files for the type provider instance.
+
+
+
+
+ version of referenced system runtime assembly
+
+
+
+
+ Get the full path to referenced assembly that caused this type provider instance to be created.
+
+
+
+
+ Get the full path to use to resolve relative paths in any file name arguments given to the type provider instance.
+
+
+
+
+ Get the referenced assemblies for the type provider instance.
+
+
+
+
+ Indicates if the type provider host responds to invalidation events for type provider instances.
+
+
+
+
+ Indicates if the type provider instance is used in an environment which executes provided code such as F# Interactive.
+
+
+
+
+ Checks if given type exists in target system runtime library
+
+
+
+
+ If the class that implements ITypeProvider has a constructor that accepts TypeProviderConfig
+ then it will be constructed with an instance of TypeProviderConfig.
+
+
+
+ Creates an instance of the attribute
+ TypeProviderEditorHideMethodsAttribute
+
+
+ Indicates that a code editor should hide all System.Object methods from the intellisense menus for instances of a provided type
-
+
+ Additional type attribute flags related to provided types
+
+
+ Creates an instance of the attribute
+ TypeProviderXmlDocAttribute
+
+
+
+ The TypeProviderXmlDocAttribute attribute can be added to types and members.
+ The language service will display the CommentText property from the attribute
+ in the appropriate place when the user hovers over a type or member.
+
+
+
Creates an anonymous event with the given handlers.
A function to handle adding a delegate for the event to trigger.
@@ -4889,7 +6451,7 @@
The initialized event.
-
+
The F# compiler emits calls to this function to implement the use operator for F# sequence
expressions.
@@ -4898,7 +6460,7 @@
The result sequence.
-
+
The F# compiler emits calls to this function to implement the compiler-intrinsic
conversions from untyped System.Collections.IEnumerable sequences to typed sequences.
@@ -4908,7 +6470,7 @@
The resulting typed sequence.
-
+
The F# compiler emits calls to this function to
implement the try/finally operator for F# sequence expressions.
@@ -4917,7 +6479,7 @@
The result sequence.
-
+
The F# compiler emits calls to this function to
implement the while operator for F# sequence expressions.
@@ -4929,6 +6491,9 @@
A group of functions used as part of the compiled representation of F# sequence expressions.
+
+ Builds a query using query syntax and operators.
+
An active pattern to force the execution of values of type Lazy<_>.
@@ -4941,7 +6506,7 @@
Builds a 2D array from a sequence of sequences of elements.
-
+
Builds a read-only lookup table from a sequence of key/value pairs. The key objects are indexed using generic hashing and equality.
@@ -4966,7 +6531,7 @@
primitive numeric types. For strings, the input is converted using Single.Parse() with InvariantCulture settings. Otherwise the operation requires and invokes a ToSingle method on the input type.
- Builds an aysnchronous workflow using computation expression syntax.
+ Builds an asynchronous workflow using computation expression syntax.
Builds a set from a sequence of objects. The objects are indexed using generic comparison.
@@ -5016,20 +6581,25 @@
The formatter.
The formatted result.
-
-
+
+ Converts the argument to signed byte.
+ This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using SByte.Parse() with InvariantCulture settings.
+ Otherwise the operation requires and invokes a ToSByte method on the input type.
+
+
+ Converts the argument to byte.
+ This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using Byte.Parse() on strings and otherwise requires a ToByte method on the input type.
Divides a value by an integer.
The input value.
The input int.
The division result.
-
-
-
- Resolves to the one value for any primitive numeric type or any type with a static member called 'One'
+ Resolves to the value 'one' for any primitive numeric type or any type with a static member called 'One'
Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'
@@ -5038,10 +6608,10 @@
A compiler intrinsic that implements dynamic invocations for the DivideByInt primitive.
- A compiler intrinsic that implements dynamic invocations to the checked '+' operator.
+ A compiler intrinsic that implements dynamic invocations to the checked '*' operator.
- A compiler intrinsic that implements dynamic invocations to the '+' operator.
+ A compiler intrinsic that implements dynamic invocations to the '*' operator.
A compiler intrinsic that implements dynamic invocations to the checked '+' operator.
@@ -5050,7 +6620,7 @@
A compiler intrinsic that implements dynamic invocations to the '+' operator.
- Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'.
+ Resolves to the value 'one' for any primitive numeric type or any type with a static member called 'One'.
Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'.
@@ -5139,6 +6709,12 @@
The input object.
The hashed value.
+
+ Make an F# comparer object for the given type
+
+
+ Make an F# hash/equality object for the given type
+
Make an F# hash/equality object for the given type using node-limited hashing when hashing F#
records, lists and union types.
@@ -5176,9 +6752,7 @@
Reference/physical equality.
- True if boxed versions of the inputs are reference-equal, OR if
- both are primitive numeric types and the implementation of Object.Equals for the type
- of the first argument returns true on the boxed versions of the inputs.
+ True if the inputs are reference-equal, false otherwise.
The first value.
The second value.
The result of the comparison.
@@ -5252,40 +6826,40 @@
The second value.
The result of the comparison.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
-
+
A primitive entry point used by the F# compiler for optimization purposes.
@@ -5376,7 +6950,7 @@
This function implements calls to default constructors
- acccessed by 'new' constraints.
+ accessed by 'new' constraints.
Primitive used by pattern match compilation
@@ -5426,21 +7000,6 @@
The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
For compiler use only
@@ -5450,47 +7009,47 @@
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
- Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI'
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
@@ -5768,11 +7327,14 @@
input type is a generic type instantiation then return the
generic type definition associated with all such instantiations.
+
+ An internal, library-only compiler intrinsic for compile-time
+ generation of a RuntimeMethodHandle.
+
- Generate a System.Type runtime representation of a static type.
- The static type is still maintained on the value returned.
+ Generate a System.Type runtime representation of a static type.
-
+
Clean up resources associated with the input object after the completion of the given function.
Cleanup occurs even when an exception is raised by the protected
code.
@@ -5780,7 +7342,7 @@
The action that accepts the resource.
The resulting value.
-
+
Execute the function as a mutual-exclusion region using the input value as a lock.
The object to be locked.
The action to perform during the lock.
@@ -5871,33 +7433,44 @@
The same value.
- Throw an System.InvalidOperationException exception
+ Throw a System.InvalidOperationException exception
The exception message.
The result value.
- Throw an System.ArgumentNullException exception
+ Throw a System.ArgumentNullException exception
The argument name.
The result value.
- Throw an System.ArgumentException exception
+ Throw a System.ArgumentException exception with
+ the given argument name and message.
The argument name.
The exception message.
The result value.
- Throw a System.Exception exception
+ Throw a System.Exception exception.
The exception message.
The result value.
+
+ Determines whether the given value is null.
+ The value to check.
+ True when value is null, false otherwise.
+
+
+ Try to unbox a strongly typed value.
+ The boxed value.
+ The unboxed result as an option.
+
Boxes a strongly typed value.
The value to box.
The boxed object.
- Unboxes a strongly typed value. This is the inverse of box, unbox<t>(box<t> a) equals a.
+ Unbox a strongly typed value.
The boxed value.
The unboxed result.
@@ -5923,12 +7496,12 @@
The second value.
The result of the comparison.
-
+
Return the second element of a tuple, snd (a,b) = b.
The input tuple.
The second value.
-
+
Return the first element of a tuple, fst (a,b) = a.
The input tuple.
The first value.
@@ -5965,7 +7538,7 @@
The default value of the argument.
The argument value. If it is None, the defaultValue is returned.
-
+
Apply a function to three values, the values being a triple on the right, the function on the left
The function.
The first argument.
@@ -5973,20 +7546,20 @@
The third argument.
The function result.
-
+
Apply a function to two values, the values being a pair on the right, the function on the left
The function.
The first argument.
The second argument.
The function result.
-
+
Apply a function to a value, the value being on the right, the function on the left
The function.
The argument.
The function result.
-
+
Apply a function to three values, the values being a triple on the left, the function on the right
The first argument.
The second argument.
@@ -5994,26 +7567,26 @@
The function.
The function result.
-
+
Apply a function to two values, the values being a pair on the left, the function on the right
The first argument.
The second argument.
The function.
The function result.
-
+
Apply a function to a value, the value being on the left, the function on the right
The argument.
The function.
The function result.
-
+
Compose two functions, the function on the right being applied first
The second function to apply.
The first function to apply.
The composition of the input functions.
-
+
Compose two functions, the function on the left being applied first
The first function to apply.
The second function to apply.
@@ -6056,12 +7629,12 @@
The result of the comparison.
- Overloaded prefix=plus operator
+ Overloaded prefix-plus operator
The input value.
The result of the operation.
- Overloaded logical-NOT operator
+ Overloaded bitwise-NOT operator
The input value.
The result of the operation.
@@ -6078,19 +7651,19 @@
The result of the operation.
- Overloaded logical-XOR operator
+ Overloaded bitwise-XOR operator
The first parameter.
The second parameter.
The result of the operation.
- Overloaded logical-OR operator
+ Overloaded bitwise-OR operator
The first parameter.
The second parameter.
The result of the operation.
- Overloaded logical-AND operator
+ Overloaded bitwise-AND operator
The first parameter.
The second parameter.
The result of the operation.
@@ -6250,6 +7823,69 @@
This module contains the basic arithmetic operations with overflow checks.
+
+ Calls GetHashCode() on the value
+ The value.
+ The hash code.
+
+
+ Minimum of the two values
+ The first value.
+ The second value.
+ The minimum value.
+
+
+ Maximum of the two values
+ The first value.
+ The second value.
+ The maximum value.
+
+
+ Compares the two values
+ The first value.
+ The second value.
+ The result of the comparison.
+
+
+ Compares the two values for inequality
+ The first parameter.
+ The second parameter.
+ The result of the comparison.
+
+
+ Compares the two values for equality
+ The first parameter.
+ The second parameter.
+ The result of the comparison.
+
+
+ Compares the two values for less-than-or-equal
+ The first parameter.
+ The second parameter.
+ The result of the comparison.
+
+
+ Compares the two values for greater-than-or-equal
+ The first parameter.
+ The second parameter.
+ The result of the comparison.
+
+
+ Compares the two values for greater-than
+ The first parameter.
+ The second parameter.
+ The result of the comparison.
+
+
+ Compares the two values for less-than
+ The first parameter.
+ The second parameter.
+ The result of the comparison.
+
+
+ A module of comparison and equality operators that are statically resolved, but which are not fully generic and do not make structural comparison. Opening this
+ module may make code that relies on structural or generic comparison no longer compile.
+
Perform generic hashing on a value where the type of the value is not
statically required to satisfy the 'equality' constraint.
@@ -6270,10 +7906,15 @@
For structs, this is struct value where all fields have the default value.
This function is unsafe in the sense that some F# values do not have proper null values.
+
+ Unboxes a strongly typed value. This is the inverse of box, unbox<t>(box<t> a) equals a.
+ The boxed value.
+ The unboxed result.
+
This module contains basic operations which do not apply runtime and/or static checks
-
+
This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator
@@ -6378,10 +8019,10 @@
This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
-
+
Generate a range of values using the given zero, add, start, step and stop values
-
+
Generate a range of values using the given zero, add, start, step and stop values
@@ -6478,17 +8119,49 @@
The end index of the third dimension.
The three dimensional sub array from the given indices.
-
- Sets a slice of an array
+
+ Sets a vector slice of a 2D array. The index of the second dimension is fixed.
The target array.
The start index of the first dimension.
The end index of the first dimension.
+ The index of the second dimension.
+ The source array.
+
+
+ Sets a vector slice of a 2D array. The index of the first dimension is fixed.
+ The target array.
+ The index of the first dimension.
The start index of the second dimension.
The end index of the second dimension.
The source array.
-
- Gets a slice of an array
+
+ Sets a region slice of an array
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The source array.
+
+
+ Gets a vector slice of a 2D array. The index of the second dimension is fixed.
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The sub array from the input indices.
+
+
+ Gets a vector slice of a 2D array. The index of the first dimension is fixed.
+ The source array.
+ The index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The sub array from the input indices.
+
+
+ Gets a region slice of an array
The source array.
The start index of the first dimension.
The end index of the first dimension.
@@ -6527,7 +8200,7 @@
The fifth arg.
The function result.
-
+
Adapt an F# first class function value to be an optimized function value that can
accept five curried arguments without intervening execution.
The input function.
@@ -6552,7 +8225,7 @@
The fourth arg.
The function result.
-
+
Adapt an F# first class function value to be an optimized function value that can
accept four curried arguments without intervening execution.
The input function.
@@ -6576,7 +8249,7 @@
The third arg.
The function result.
-
+
Adapt an F# first class function value to be an optimized function value that can
accept three curried arguments without intervening execution.
The input function.
@@ -6598,7 +8271,7 @@
The second arg.
The function result.
-
+
Adapt an F# first class function value to be an optimized function value that can
accept two curried arguments without intervening execution.
The input function.
@@ -6618,6 +8291,26 @@
An implementation module used to hold some private implementations of function
value invocation.
+
+ Convert an option to a potentially null value.
+ The input value.
+ The result value, which is null if the input was None.
+
+
+ Convert a potentially null value to an option.
+ The input value.
+ The result option.
+
+
+ Convert a Nullable value to an option.
+ The input nullable value.
+ The result option.
+
+
+ Convert the option to a Nullable value.
+ The input option.
+ The result value.
+
Convert the option to a list of length 0 or 1.
The input option.
@@ -6628,41 +8321,47 @@
The input option.
The result array.
-
+
+ filter f inp evaluates to match inp with None -> None | Some x -> if f x then Some x else None.
+ A function that evaluates whether the value contained in the option should remain, or be filtered out.
+ The input option.
+ The input if the predicate evaluates to true; otherwise, None.
+
+
bind f inp evaluates to match inp with None -> None | Some x -> f x
A function that takes the value of type T from an option and transforms it into
an option containing a value of type U.
The input option.
An option of the output type of the binder.
-
+
map f inp evaluates to match inp with None -> None | Some x -> Some (f x).
A function to apply to the option value.
The input option.
An option of the input value after applying the mapping function, or None if the input is None.
-
+
iter f inp executes match inp with None -> () | Some x -> f x.
A function to apply to the option value.
The input option.
Unit if the option is None, otherwise it returns the result of applying the predicate
to the option value.
-
- forall p inp" evaluates to "match inp with None -> true | Some x -> p x.
+
+ forall p inp evaluates to match inp with None -> true | Some x -> p x.
A function that evaluates to a boolean when given a value from the option type.
The input option.
True if the option is None, otherwise it returns the result of applying the predicate
to the option value.
-
+
exists p inp evaluates to match inp with None -> false | Some x -> p x.
A function that evaluates to a boolean when given a value from the option type.
The input option.
False if the option is None, otherwise it returns the result of applying the predicate
to the option value.
-
+
fold f inp s evaluates to match inp with None -> s | Some x -> f x s.
A function to update the state data when given a value from an option.
The input option.
@@ -6670,7 +8369,7 @@
The original state if the option is None, otherwise it returns the updated state with the folder
and the option value.
-
+
fold f s inp evaluates to match inp with None -> s | Some x -> f s x.
A function to update the state data when given a value from an option.
The initial state.
@@ -6732,14 +8431,14 @@
The input formatter.
The arguments of the formatter.
-
+
sprintf, but call the given 'final' function to generate the result.
See kprintf.
The function called to generate a result from the formatted string.
The input formatter.
The arguments of the formatter.
-
+
printf, but call the given 'final' function to generate the result.
For example, these let the printing force a flush after all output has
been entered onto the channel, but not before.
@@ -6747,7 +8446,7 @@
The input formatter.
The arguments of the formatter.
-
+
fprintf, but call the given 'final' function to generate the result.
See kprintf.
The function called after formatting to generate the format result.
@@ -6755,7 +8454,7 @@
The input formatter.
The arguments of the formatter.
-
+
bprintf, but call the given 'final' function to generate the result.
See kprintf.
The function called after formatting to generate the format result.
@@ -6819,6 +8518,7 @@
%b: bool, formatted as "true" or "false"
%s: string, formatted as its unescaped contents
+ %c: character literal
%d, %i: any basic integer type formatted as a decimal integer, signed if the basic integer type is signed.
%u: any basic integer type formatted as an unsigned decimal integer
%x, %X, %o: any basic integer type formatted as an unsigned hexadecimal
@@ -6889,516 +8589,1070 @@
The printf '#' flag is invalid and a compile-time error will be reported if it is used.
-
-
-
-
-
+
+ Returns the length of the string.
+ The input string.
+ The number of characters in the string.
-
-
+
+ Returns a string by concatenating count instances of str.
+ The number of copies of the input string will be copied.
+ The input string.
+ The concatenated string.
+ Thrown when count is negative.
-
-
+
+ Tests if any character of the string satisfies the given predicate.
+ The function to test each character of the string.
+ The input string.
+ True if any character returns true for the predicate and false otherwise.
-
-
+
+ Tests if all characters in the string satisfy the given predicate.
+ The function to test each character of the string.
+ The input string.
+ True if all characters return true for the predicate and false otherwise.
-
-
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each index from 0 to count-1 and concatenating the resulting
+ strings.
+ The number of strings to initialize.
+ The function to take an index and produce a string to
+ be concatenated with the others.
+ The constructed string.
+ Thrown when count is negative.
-
+
+ Builds a new string containing only the characters of the input string
+ for which the given predicate returns "true".
-
-
+ Returns an empty string if the input string is null
+ A function to test whether each character in the input sequence should be included in the output string.
+ The input string.
+ The resulting string.
-
-
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each of the characters of the input string and concatenating the resulting
+ strings.
+ The function to produce a string from each character of the input string.
+ The input string.
+ The concatenated string.
-
-
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each character and index of the input string.
+ The function to apply to each character and index of the string.
+ The input string.
+ The resulting string.
-
-
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each of the characters of the input string.
+ The function to apply to the characters of the string.
+ The input string.
+ The resulting string.
-
-
+
+ Applies the function action to the index of each character in the string and the
+ character itself.
+ The function to apply to each character and index of the string.
+ The input string.
-
-
+
+ Applies the function action to each character in the string.
+ The function to be applied to each character of the string.
+ The input string.
-
-
+
+ Returns a new string made by concatenating the given strings
+ with separator sep, that is a1 + sep + ... + sep + aN.
+ The separator string to be inserted between the strings
+ of the input sequence.
+ The sequence of strings to be concatenated.
+ A new string consisting of the concatenated strings separated by
+ the separation string.
+ Thrown when strings is null.
-
-
+
+ Functional programming operators for string processing. Further string operations
+ are available via the member functions on strings and other functionality in
+ System.String
+ and System.Text.RegularExpressions types.
-
-
+
+
+ The SI unit of catalytic activity
+
-
-
+
+
+ The SI unit of does equivalent
+
-
-
+
+
+ The SI unit of absorbed dose
+
-
-
+
+
+ The SI unit of activity referred to a radionuclide
+
-
-
+
+
+ The SI unit of illuminance
+
-
-
+
+
+ The SI unit of luminous flux
+
-
-
+
+
+ The SI unit of inductance
+
-
-
+
+
+ The SI unit of magnetic flux density
+
-
-
+
+
+ The SI unit of magnetic flux
+
-
-
+
+
+ The SI unit of electric conductance
+
-
-
+
+
+ The SI unit of electric resistance
+
-
-
+
+
+ The SI unit of capacitance
+
-
-
+
+
+ The SI unit of electric potential difference, electromotive force
+
-
-
+
+
+ The SI unit of electric charge, amount of electricity
+
-
-
+
+
+ The SI unit of power, radiant flux
+
-
-
+
+
+ The SI unit of energy, work, amount of heat
+
-
-
+
+
+ The SI unit of pressure, stress
+
-
-
+
+
+ The SI unit of force
+
-
-
+
+
+ The SI unit of frequency
+
-
-
+
+
+ The SI unit of luminous intensity
+
-
-
+
+
+ The SI unit of amount of substance
+
-
-
+
+
+ The SI unit of thermodynamic temperature
+
-
-
+
+
+ The SI unit of electric current
+
-
-
+
+
+ The SI unit of time
+
-
-
+
+
+ The SI unit of mass
+
-
-
+
+
+ The SI unit of length
+
-
-
+
+
+ The SI unit of length
+
-
-
+
+
+ A synonym for henry, the SI unit of inductance
+
-
-
+
+
+ A synonym for katal, the SI unit of catalytic activity
+
-
-
+
+
+ A synonym for sievert, the SI unit of does equivalent
+
-
-
+
+
+ A synonym for gray, the SI unit of absorbed dose
+
-
-
+
+
+ A synonym for becquerel, the SI unit of activity referred to a radionuclide
+
-
-
+
+
+ A synonym for lux, the SI unit of illuminance
+
-
-
+
+
+ A synonym for lumen, the SI unit of luminous flux
+
-
-
+
+
+ A synonym for tesla, the SI unit of magnetic flux density
+
-
-
+
+
+ A synonym for weber, the SI unit of magnetic flux
+
-
-
+
+
+ A synonym for UnitNames.ohm, the SI unit of electric resistance.
+
-
-
+
+
+ A synonym for siemens, the SI unit of electric conductance
+
-
-
+
+
+ A synonym for farad, the SI unit of capacitance
+
-
-
+
+
+ A synonym for volt, the SI unit of electric potential difference, electromotive force
+
-
-
+
+
+ A synonym for coulomb, the SI unit of electric charge, amount of electricity
+
-
-
+
+
+ A synonym for watt, the SI unit of power, radiant flux
+
-
-
+
+
+ A synonym for joule, the SI unit of energy, work, amount of heat
+
-
-
+
+
+ A synonym for pascal, the SI unit of pressure, stress
+
-
-
+
+
+ A synonym for newton, the SI unit of force
+
-
-
+
+
+ A synonym for hertz, the SI unit of frequency
+
-
-
+
+
+ A synonym for candela, the SI unit of luminous intensity
+
-
-
+
+
+ A synonym for mole, the SI unit of amount of substance
+
-
-
+
+
+ A synonym for kelvin, the SI unit of thermodynamic temperature
+
-
-
+
+
+ A synonym for ampere, the SI unit of electric current
+
-
-
+
+
+ A synonym for second, the SI unit of time
+
-
-
+
+
+ A synonym for kilogram, the SI unit of mass
+
-
-
+
+
+ A synonym for Metre, the SI unit of length
+
-
-
+
+
+ A method used to support the F# query syntax. Returns an empty sequence that has the specified type argument.
+
+
+
+
+ A method used to support the F# query syntax. Returns a sequence that contains the specified values.
+
+
+
+
+ A method used to support the F# query syntax. Returns a sequence of length one that contains the specified value.
+
+
+
+ A query operator that selects those elements based on a specified predicate.
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in descending order by the given nullable sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in ascending order by the given nullable sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in descending order by the given sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in ascending order by the given sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+ A query operator that selects elements from a sequence as long as a specified condition is true, and then skips the remaining elements.
+
+
+
+ A query operator that selects a specified number of contiguous elements from those selected so far.
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the sum of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+ A query operator that selects a value for each element selected so far and returns the sum of these values.
+
+
+
+
+ A method used to support the F# query syntax. Inputs to queries are implicitly wrapped by a call to one of the overloads of this method.
+
+
+
+
+ A method used to support the F# query syntax. Inputs to queries are implicitly wrapped by a call to one of the overloads of this method.
+
+
+
+ A query operator that sorts the elements selected so far in descending order by the given nullable sorting key.
+
+
+
+ A query operator that sorts the elements selected so far in ascending order by the given nullable sorting key.
+
+
+
+ A query operator that sorts the elements selected so far in descending order by the given sorting key.
+
+
+
+ A query operator that sorts the elements selected so far in ascending order by the given sorting key.
+
+
+
+ A query operator that bypasses elements in a sequence as long as a specified condition is true and then selects the remaining elements.
+
+
+
+ A query operator that bypasses a specified number of the elements selected so far and selects the remaining elements.
+
+
+
+ A query operator that projects each of the elements selected so far.
+
+
+
+
+ A method used to support the F# query syntax. Runs the given quotation as a query using LINQ IQueryable rules.
+
+
+
+
+ A method used to support the F# query syntax. Indicates that the query should be passed as a quotation to the Run method.
+
+
+
+ A query operator that selects the element at a specified index amongst those selected so far.
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the minimum of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+ A query operator that selects a value for each element selected so far and returns the minimum resulting value.
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the maximum of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+ A query operator that selects a value for each element selected so far and returns the maximum resulting value.
+
+
+
+ A query operator that correlates two sets of selected values based on matching keys and groups the results.
+ If any group is empty, a group with a single default value is used instead.
+ Normal usage is 'leftOuterJoin y in elements2 on (key1 = key2) into group'.
+
+
+
+ A query operator that selects the last element of those selected so far, or a default value if no element is found.
+
+
+
+ A query operator that selects the last element of those selected so far.
+
+
+
+ A query operator that correlates two sets of selected values based on matching keys.
+ Normal usage is 'join y in elements2 on (key1 = key2)'.
+
+
+
+ A query operator that selects the first element of those selected so far, or a default value if the sequence contains no elements.
+
+
+
+ A query operator that selects the first element from those selected so far.
+
+
+
+ A query operator that selects a value for each element selected so far and groups the elements by the given key.
+
+
+
+ A query operator that correlates two sets of selected values based on matching keys and groups the results.
+ Normal usage is 'groupJoin y in elements2 on (key1 = key2) into group'.
+
+
+
+ A query operator that groups the elements selected so far according to a specified key selector.
+
+
+
+
+ A method used to support the F# query syntax. Projects each element of a sequence to another sequence and combines the resulting sequences into one sequence.
+
+
+
+ A query operator that selects the first element selected so far that satisfies a specified condition.
+
+
+
+ A query operator that determines whether any element selected so far satisfies a condition.
+
+
+
+ A query operator that selects the single, specific element of those selected so far, or a default value if that element is not found.
+
+
+
+ A query operator that selects the single, specific element selected so far
+
+
+
+ A query operator that selects distinct elements from the elements selected so far.
+
+
+
+ A query operator that returns the number of selected elements.
+
+
+
+ A query operator that determines whether the selected elements contains a specified element.
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the average of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+ A query operator that selects a value for each element selected so far and returns the average of these values.
+
+
+
+ A query operator that determines whether all elements selected so far satisfies a condition.
+
+
+
+ Create an instance of this builder. Use 'query { ... }' to use the query syntax.
+
+
+
+ The type used to support the F# query syntax. Use 'query { ... }' to use the query syntax.
+
-
-
+
+
+ A property used to support the F# query syntax.
+
-
-
+
+
+ A method used to support the F# query syntax.
+
-
-
+
+
+ A partial input or result in an F# query. This type is used to support the F# query syntax.
+
-
-
+
+ Converts the argument to character. Numeric inputs are converted according to the UTF-16
+ encoding for characters. The operation requires an appropriate static conversion method on the input type.
+ The input value.
+ The converted char.
-
-
+
+ Converts the argument to System.Decimal using a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted decimal.
-
-
+
+ Converts the argument to unsigned native integer using a direct conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted unativeint
-
-
+
+ Converts the argument to signed native integer. This is a direct conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted nativeint
-
-
+
+ Converts the argument to 64-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted float
-
-
+
+ Converts the argument to 32-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted float32
-
-
+
+ Converts the argument to 64-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted float
-
-
+
+ Converts the argument to 32-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted float32
-
-
+
+ Converts the argument to unsigned 64-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted uint64
-
-
+
+ Converts the argument to signed 64-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted int64
-
-
+
+ Converts the argument to unsigned 32-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted uint32
-
-
+
+ Converts the argument to signed 32-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted int32
-
-
+
+ Converts the argument to a particular enum type.
+ The input value.
+ The converted enum type.
-
-
+
+ Converts the argument to signed 32-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted int
-
-
+
+ Converts the argument to unsigned 16-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted uint16
-
-
+
+ Converts the argument to signed 16-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+ The input value.
+ The converted int16
-
-
+
+