diff --git a/.gitignore b/.gitignore
index 9dfe3200c1b..9a8da0ee038 100644
--- a/.gitignore
+++ b/.gitignore
@@ -123,4 +123,6 @@ nCrunchTemp_*
/tests/fsharp/core/members/set-only-property/fs.dll
/tests/fsharp/core/members/set-only-property/cs.dll
-.fake
\ No newline at end of file
+.fake
+*.pdb
+*.dll
\ No newline at end of file
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 7b7a6a7a80a..2fb81ff568f 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -10,7 +10,7 @@
-
+
diff --git a/FSharpTests.Directory.Build.props b/FSharpTests.Directory.Build.props
index 9d9983693af..d191970e303 100644
--- a/FSharpTests.Directory.Build.props
+++ b/FSharpTests.Directory.Build.props
@@ -22,18 +22,18 @@
$([System.IO.Path]::GetDirectoryName('$(DOTNET_HOST_PATH)'))
dotnet.exe
dotnet
- $(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\net5.0\fsc.dll
+ $(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\net6.0\fsc.dll
$([System.IO.Path]::GetDirectoryName('$(DOTNET_HOST_PATH)'))
dotnet.exe
dotnet
- $(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\net5.0\fsi.dll
+ $(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\net6.0\fsi.dll
<_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'!='Core'">net472
- <_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'=='Core'">net5.0
+ <_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'=='Core'">net6.0
<_FSharpBuildBinPath>$(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\$(_FSharpBuildTargetFramework)
$(_FSharpBuildBinPath)\FSharp.Build.dll
diff --git a/VisualFSharp.sln b/VisualFSharp.sln
index cfcafe7be08..c0844e44536 100644
--- a/VisualFSharp.sln
+++ b/VisualFSharp.sln
@@ -128,8 +128,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PEVerify", "tests\fsharpqa\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.PatternMatcher", "vsintegration\src\FSharp.PatternMatcher\FSharp.PatternMatcher.csproj", "{18227628-DF90-4C47-AF3D-CC72D2EDD986}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "GetTypesVS.UnitTests", "vsintegration\tests\GetTypesVS.UnitTests\GetTypesVS.UnitTests.fsproj", "{6D93CEBD-4540-4D96-A153-B440A661FD09}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Setup", "Setup", "{6235B3AF-774D-4EA1-8F37-789E767F6368}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.Compiler.MSBuild", "setup\Swix\Microsoft.FSharp.Compiler.MSBuild\Microsoft.FSharp.Compiler.MSBuild.csproj", "{4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}"
@@ -768,18 +766,6 @@ Global
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Release|Any CPU.Build.0 = Release|Any CPU
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Release|x86.ActiveCfg = Release|Any CPU
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Release|x86.Build.0 = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Debug|x86.Build.0 = Debug|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|Any CPU.ActiveCfg = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|Any CPU.Build.0 = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|x86.ActiveCfg = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|x86.Build.0 = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|Any CPU.Build.0 = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|x86.ActiveCfg = Release|Any CPU
- {6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|x86.Build.0 = Release|Any CPU
{4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -1078,7 +1064,6 @@ Global
{400FAB03-786E-40CC-85A8-04B0C2869B14} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{B0689A4E-07D8-494D-A0C8-791CB1D74E54} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{18227628-DF90-4C47-AF3D-CC72D2EDD986} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
- {6D93CEBD-4540-4D96-A153-B440A661FD09} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
{4CBEE353-EB7F-4A47-988B-0070AEB4EE7A} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
{6BCFED7A-3F67-4180-B307-C7D69D191D8C} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
{E93E7D28-1C6B-4E04-BE83-68428CF7E039} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 93003652a8e..5d7e0522bdf 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -255,7 +255,8 @@ stages:
# Mock official build
- job: MockOfficial
pool:
- vmImage: windows-latest
+ name: NetCore1ESPool-Svc-Public
+ demands: ImageOverride -equals $(WindowsMachineQueueName)
steps:
- checkout: self
clean: true
@@ -265,7 +266,7 @@ stages:
# Linux
- job: Linux
pool:
- vmImage: ubuntu-latest
+ vmImage: $(UbuntuMachineQueueName)
variables:
- name: _SignType
value: Test
@@ -305,7 +306,7 @@ stages:
# MacOS
- job: MacOS
pool:
- vmImage: macOS-latest
+ vmImage: $(MacOSMachineQueueName)
variables:
- name: _SignType
value: Test
@@ -345,7 +346,8 @@ stages:
# End to end build
- job: EndToEndBuildTests
pool:
- vmImage: windows-latest
+ name: NetCore1ESPool-Svc-Public
+ demands: ImageOverride -equals $(WindowsMachineQueueName)
steps:
- checkout: self
clean: true
@@ -360,7 +362,8 @@ stages:
- name: _SignType
value: Test
pool:
- vmImage: windows-latest
+ name: NetCore1ESPool-Svc-Public
+ demands: ImageOverride -equals $(WindowsMachineQueueName)
timeoutInMinutes: 90
steps:
- checkout: self
@@ -391,7 +394,8 @@ stages:
# Plain build Windows
- job: Plain_Build_Windows
pool:
- vmImage: windows-latest
+ name: NetCore1ESPool-Svc-Public
+ demands: ImageOverride -equals $(WindowsMachineQueueName)
variables:
- name: _BuildConfig
value: Debug
@@ -423,7 +427,7 @@ stages:
# Plain build Linux
- job: Plain_Build_Linux
pool:
- vmImage: ubuntu-latest
+ vmImage: $(UbuntuMachineQueueName)
variables:
- name: _BuildConfig
value: Debug
@@ -455,7 +459,7 @@ stages:
# Plain build Mac
- job: Plain_Build_MacOS
pool:
- vmImage: macos-latest
+ vmImage: $(MacOSMachineQueueName)
variables:
- name: _BuildConfig
value: Debug
diff --git a/eng/Build.ps1 b/eng/Build.ps1
index f88e3ea1155..6d2787dbfd6 100644
--- a/eng/Build.ps1
+++ b/eng/Build.ps1
@@ -179,11 +179,11 @@ function Process-Arguments() {
function Update-Arguments() {
if ($script:noVisualStudio) {
- $script:bootstrapTfm = "net5.0"
+ $script:bootstrapTfm = "net6.0"
$script:msbuildEngine = "dotnet"
}
- if ($bootstrapTfm -eq "net5.0") {
+ if ($bootstrapTfm -eq "net6.0") {
if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc\fsc.runtimeconfig.json")) {
$script:bootstrap = $True
}
@@ -204,7 +204,7 @@ function BuildSolution([string] $solutionName) {
$officialBuildId = if ($official) { $env:BUILD_BUILDNUMBER } else { "" }
$toolsetBuildProj = InitializeToolset
$quietRestore = !$ci
- $testTargetFrameworks = if ($testCoreClr) { "net5.0" } else { "" }
+ $testTargetFrameworks = if ($testCoreClr) { "net6.0" } else { "" }
# Do not set the property to true explicitly, since that would override value projects might set.
$suppressExtensionDeployment = if (!$deployExtensions) { "/p:DeployExtension=false" } else { "" }
@@ -477,7 +477,7 @@ try {
$script:BuildCategory = "Test"
$script:BuildMessage = "Failure running tests"
$desktopTargetFramework = "net472"
- $coreclrTargetFramework = "net5.0"
+ $coreclrTargetFramework = "net6.0"
if ($testDesktop) {
TestUsingXUnit -testProject "$RepoRoot\tests\FSharp.Compiler.ComponentTests\FSharp.Compiler.ComponentTests.fsproj" -targetFramework $desktopTargetFramework -testadapterpath "$ArtifactsDir\bin\FSharp.Compiler.ComponentTests\" -noTestFilter $true
@@ -545,15 +545,14 @@ try {
TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $desktopTargetFramework -testadapterpath "$ArtifactsDir\bin\FSharpSuite.Tests\"
TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $coreclrTargetFramework -testadapterpath "$ArtifactsDir\bin\FSharpSuite.Tests\"
}
-`
- if ($testScripting) {
+
+ if ($testScripting) {
TestUsingXUnit -testProject "$RepoRoot\tests\FSharp.Compiler.Private.Scripting.UnitTests\FSharp.Compiler.Private.Scripting.UnitTests.fsproj" -targetFramework $desktopTargetFramework -testadapterpath "$ArtifactsDir\bin\FSharp.Compiler.Private.Scripting.UnitTests\"
TestUsingXUnit -testProject "$RepoRoot\tests\FSharp.Compiler.Private.Scripting.UnitTests\FSharp.Compiler.Private.Scripting.UnitTests.fsproj" -targetFramework $coreclrTargetFramework -testadapterpath "$ArtifactsDir\bin\FSharp.Compiler.Private.Scripting.UnitTests\"
}
if ($testVs -and -not $noVisualStudio) {
- TestUsingNUnit -testProject "$RepoRoot\vsintegration\tests\GetTypesVS.UnitTests\GetTypesVS.UnitTests.fsproj" -targetFramework $desktopTargetFramework -testadapterpath "$ArtifactsDir\bin\GetTypesVS.UnitTests"
- TestUsingNUnit -testProject "$RepoRoot\vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" -targetFramework $desktopTargetFramework -testadapterpath "$ArtifactsDir\bin\VisualFSharp.UnitTests"
+ TestUsingNUnit -testProject "$RepoRoot\vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" -targetFramework $desktopTargetFramework -testadapterpath "$ArtifactsDir\bin\VisualFSharp.UnitTests\"
}
# verify nupkgs have access to the source code
diff --git a/eng/DumpPackageRoot/DumpPackageRoot.csproj b/eng/DumpPackageRoot/DumpPackageRoot.csproj
index 0c94f0a999c..fb030a52306 100644
--- a/eng/DumpPackageRoot/DumpPackageRoot.csproj
+++ b/eng/DumpPackageRoot/DumpPackageRoot.csproj
@@ -3,7 +3,7 @@
- net5.0
+ net6.0
diff --git a/eng/Versions.props b/eng/Versions.props
index 5eb2504da56..b6fdb3e2883 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -144,12 +144,12 @@
2.0.28
$(RoslynVersion)
- 16.11
+ 17.0.0
$(MicrosoftBuildOverallPackagesVersion)
$(MicrosoftBuildOverallPackagesVersion)
$(MicrosoftBuildOverallPackagesVersion)
$(MicrosoftBuildOverallPackagesVersion)
- 17.0.2136-preview2
+ 17.1.4054
$(VisualStudioImplementationPackagesVersion)
$(VisualStudioImplementationPackagesVersion)
@@ -207,7 +207,7 @@
3.1.0
5.0.0-preview.7.20364.11
5.0.0-preview.7.20364.11
- 16.6.1
+ 16.11.0
4.3.0
12.0.2
3.13.2
@@ -216,6 +216,8 @@
1.0.0-beta2-dev3
2.8.3-alpha
2.4.1
+ 2.4.2
5.10.3
+ 2.2.0
diff --git a/eng/build-utils.ps1 b/eng/build-utils.ps1
index 055ddb7a5b6..cc9a68c98db 100644
--- a/eng/build-utils.ps1
+++ b/eng/build-utils.ps1
@@ -251,9 +251,9 @@ function Make-BootstrapBuild() {
}
Exec-Console $dotnetExe $args
- Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\net5.0" -Destination "$dir\fslex" -Force -Recurse
- Copy-Item "$ArtifactsDir\bin\fsyacc\$bootstrapConfiguration\net5.0" -Destination "$dir\fsyacc" -Force -Recurse
- Copy-Item "$ArtifactsDir\bin\AssemblyCheck\$bootstrapConfiguration\net5.0" -Destination "$dir\AssemblyCheck" -Force -Recurse
+ Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\net6.0" -Destination "$dir\fslex" -Force -Recurse
+ Copy-Item "$ArtifactsDir\bin\fsyacc\$bootstrapConfiguration\net6.0" -Destination "$dir\fsyacc" -Force -Recurse
+ Copy-Item "$ArtifactsDir\bin\AssemblyCheck\$bootstrapConfiguration\net6.0" -Destination "$dir\AssemblyCheck" -Force -Recurse
# prepare compiler
$protoProject = "`"$RepoRoot\proto.proj`""
diff --git a/eng/build.sh b/eng/build.sh
index 6af4222371d..dcf77ccf66b 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -257,8 +257,8 @@ function BuildSolution {
/p:Configuration=$bootstrap_config
mkdir -p "$bootstrap_dir"
- cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net5.0 $bootstrap_dir/fslex
- cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net5.0 $bootstrap_dir/fsyacc
+ cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net6.0 $bootstrap_dir/fslex
+ cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net6.0 $bootstrap_dir/fsyacc
fi
if [ ! -f "$bootstrap_dir/fsc.exe" ]; then
BuildMessage="Error building bootstrap"
@@ -266,7 +266,7 @@ function BuildSolution {
/restore \
/p:Configuration=$bootstrap_config
- cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net5.0 $bootstrap_dir/fsc
+ cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net6.0 $bootstrap_dir/fsc
fi
fi
@@ -309,7 +309,7 @@ InitializeDotNetCli $restore
BuildSolution
if [[ "$test_core_clr" == true ]]; then
- coreclrtestframework=net5.0
+ coreclrtestframework=net6.0
TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj" --targetframework $coreclrtestframework --notestfilter
TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj" --targetframework $coreclrtestframework --notestfilter
TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj" --targetframework $coreclrtestframework
diff --git a/eng/test-determinism.ps1 b/eng/test-determinism.ps1
index 0356303cd01..024fe3a605a 100644
--- a/eng/test-determinism.ps1
+++ b/eng/test-determinism.ps1
@@ -379,7 +379,7 @@ try {
$script:bootstrapTfm = "net472"
if ($script:msbuildEngine -eq "dotnet") {
- $script.bootstrapTfm = "net5.0"
+ $script.bootstrapTfm = "net6.0"
}
$bootstrapDir = Make-BootstrapBuild
diff --git a/fcs-samples/EditorService/EditorService.fsproj b/fcs-samples/EditorService/EditorService.fsproj
index 27bdbef249c..70459553b3f 100644
--- a/fcs-samples/EditorService/EditorService.fsproj
+++ b/fcs-samples/EditorService/EditorService.fsproj
@@ -1,7 +1,7 @@
- $(FcsTargetNetFxFramework);net5.0
+ $(FcsTargetNetFxFramework);net6.0
true
Exe
false
diff --git a/global.json b/global.json
index 949c7819186..837b3762ad5 100644
--- a/global.json
+++ b/global.json
@@ -1,11 +1,11 @@
{
"sdk": {
- "version": "6.0.100",
+ "version": "6.0.200",
"allowPrerelease": true,
"rollForward": "minor"
},
"tools": {
- "dotnet": "6.0.100",
+ "dotnet": "6.0.200",
"vs": {
"version": "16.8",
"components": [
diff --git a/proto.proj b/proto.proj
index bb077834555..7f24e53a1ab 100644
--- a/proto.proj
+++ b/proto.proj
@@ -10,10 +10,10 @@
TargetFramework=netstandard2.0
- TargetFramework=net5.0
+ TargetFramework=net6.0
- TargetFramework=net5.0
+ TargetFramework=net6.0
diff --git a/src/buildtools/AssemblyCheck/AssemblyCheck.fsproj b/src/buildtools/AssemblyCheck/AssemblyCheck.fsproj
index 881d4e4fbc0..a7fceb6f70c 100644
--- a/src/buildtools/AssemblyCheck/AssemblyCheck.fsproj
+++ b/src/buildtools/AssemblyCheck/AssemblyCheck.fsproj
@@ -2,7 +2,7 @@
Exe
- net5.0
+ net6.0
true
false
diff --git a/src/buildtools/fslex/fslex.fsproj b/src/buildtools/fslex/fslex.fsproj
index 3d63bf6bf25..e3ef463ad59 100644
--- a/src/buildtools/fslex/fslex.fsproj
+++ b/src/buildtools/fslex/fslex.fsproj
@@ -2,7 +2,7 @@
Exe
- net5.0
+ net6.0
INTERNALIZED_FSLEXYACC_RUNTIME;$(DefineConstants)
true
false
diff --git a/src/buildtools/fsyacc/fsyacc.fsproj b/src/buildtools/fsyacc/fsyacc.fsproj
index 63b63c5dee0..554fea25d47 100644
--- a/src/buildtools/fsyacc/fsyacc.fsproj
+++ b/src/buildtools/fsyacc/fsyacc.fsproj
@@ -2,7 +2,7 @@
Exe
- net5.0
+ net6.0
INTERNALIZED_FSLEXYACC_RUNTIME;$(DefineConstants)
true
false
diff --git a/src/fsharp/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.Utilities.fs
index 98dc44fb6c5..6bb67d8a17b 100644
--- a/src/fsharp/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.Utilities.fs
+++ b/src/fsharp/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.Utilities.fs
@@ -130,27 +130,46 @@ module internal Utilities =
sprintf "%s -restore %s %c%s%c /nologo /t:InteractivePackageManagement" prefix binLoggingArguments '\"' projectPath '\"'
let workingDir = Path.GetDirectoryName projectPath
-
+ let dotnetHostPath = getDotnetHostPath()
+ let args = arguments "msbuild -v:quiet"
let success, stdOut, stdErr =
- executeTool (getDotnetHostPath()) (arguments "msbuild -v:quiet") workingDir timeout
+ executeTool dotnetHostPath args workingDir timeout
#if DEBUG
+ let diagnostics =
+ [|
+ $"workingDir: {workingDir}"
+ $"dotnetHostPath: {dotnetHostPath}"
+ $"arguments: {args}"
+ |]
+ File.WriteAllLines(Path.Combine(workingDir, "build_CommandLine.txt"), diagnostics)
File.WriteAllLines(Path.Combine(workingDir, "build_StandardOutput.txt"), stdOut)
File.WriteAllLines(Path.Combine(workingDir, "build_StandardError.txt"), stdErr)
#endif
let outputFile = projectPath + ".resolvedReferences.paths"
let resolutionsFile = if success && File.Exists(outputFile) then Some outputFile else None
- { success = success
- projectPath = projectPath
- stdOut = stdOut
- stdErr = stdErr
- resolutionsFile = resolutionsFile }
+ {
+ success = success
+ projectPath = projectPath
+ stdOut = stdOut
+ stdErr = stdErr
+ resolutionsFile = resolutionsFile
+ }
let generateSourcesFromNugetConfigs scriptDirectory workingDir timeout =
+ let dotnetHostPath = getDotnetHostPath()
+ let args = "nuget list source --format short"
let success, stdOut, stdErr =
- executeTool (getDotnetHostPath()) "nuget list source --format short" scriptDirectory timeout
+ executeTool dotnetHostPath args scriptDirectory timeout
#if DEBUG
+ let diagnostics =
+ [|
+ $"scriptDirectory: {scriptDirectory}"
+ $"dotnetHostPath: {dotnetHostPath}"
+ $"arguments: {args}"
+ |]
+ File.WriteAllLines(Path.Combine(workingDir, "nuget_CommandLine.txt"), diagnostics)
File.WriteAllLines(Path.Combine(workingDir, "nuget_StandardOutput.txt"), stdOut)
File.WriteAllLines(Path.Combine(workingDir, "nuget_StandardError.txt"), stdErr)
#else
diff --git a/src/fsharp/FxResolver.fs b/src/fsharp/FxResolver.fs
index adc3b59417d..a24b3149c5c 100644
--- a/src/fsharp/FxResolver.fs
+++ b/src/fsharp/FxResolver.fs
@@ -356,8 +356,8 @@ type internal FxResolver(assumeDotNetFramework: bool, projectDir: string, useSdk
| -1, _
| _, -1 ->
if isRunningOnCoreClr then
- // Running on coreclr but no deps.json was deployed with the host so default to 5.0
- Some "net5.0"
+ // Running on coreclr but no deps.json was deployed with the host so default to 6.0
+ Some "net6.0"
else
// Running on desktop
None
diff --git a/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.csproj b/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.csproj
index 845851b0fd4..eaeac80f362 100644
--- a/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.csproj
+++ b/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.csproj
@@ -3,7 +3,7 @@
true
Exe
- net5.0
+ net6.0
Microsoft.FSharp.Compiler.nuspec
true
.NET Core compatible version of the F# compiler fsc.exe.
diff --git a/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec b/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec
index 04642f47ab8..df8fff6e019 100644
--- a/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec
+++ b/src/fsharp/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec
@@ -4,7 +4,7 @@
$CommonMetadataElements$
en-US
-
+
@@ -26,16 +26,16 @@
this approach gives a very small deployment. Which is kind of necessary.
-->
-
-
-
-
-
-
+
+
+
+
+
+
+ target="lib\net6.0" />
+ target="lib\net6.0" />
@@ -46,14 +46,14 @@
-
+
+ target="lib\net6.0" />
-
+ target="lib\net6.0" />
+
+ target="lib\net6.0" />
Exe
$(ProtoTargetFramework)
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
$(NoWarn);44
$(NoWarn);75
true
diff --git a/src/fsharp/fsi/fsi.fsproj b/src/fsharp/fsi/fsi.fsproj
index f8928b40b57..39cacc086b5 100644
--- a/src/fsharp/fsi/fsi.fsproj
+++ b/src/fsharp/fsi/fsi.fsproj
@@ -5,8 +5,8 @@
Exe
$(ProtoTargetFramework)
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
$(NoWarn);44
true
$(OtherFlags) --warnon:1182
@@ -47,7 +47,7 @@
-
+
diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj
index 688fef5eda6..40a1d338863 100644
--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj
+++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj
@@ -2,7 +2,7 @@
Library
- net5.0;net472
+ net6.0;net472
typeproviders
NO_GENERATIVE
IS_DESIGNTIME
diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj
index 5740511daa6..0c0b7bf1599 100644
--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj
+++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj
@@ -2,7 +2,7 @@
Library
- net5.0
+ net6.0
$(TestTargetFramework)
false
NO_GENERATIVE
diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj
index 6d5aac4656a..1de65f297f7 100644
--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj
+++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj
@@ -2,7 +2,7 @@
Library
- net5.0;net472
+ net6.0;net472
typeproviders
$(FSharpCoreShippedPackageVersionValue)
typeproviders
diff --git a/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd b/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd
index 2abd059cc48..f7323c64e3c 100644
--- a/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd
+++ b/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd
@@ -42,8 +42,8 @@ echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuratio
dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
-echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
- dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
+echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
+ dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
rem
@@ -60,8 +60,8 @@ echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuratio
dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
-echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
- dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
+echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
+ dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
:success
diff --git a/tests/EndToEndBuildTests/ComboProvider/ComboProvider.Tests/ComboProvider.Tests.fsproj b/tests/EndToEndBuildTests/ComboProvider/ComboProvider.Tests/ComboProvider.Tests.fsproj
index 87180cdecf8..ca6383066e8 100644
--- a/tests/EndToEndBuildTests/ComboProvider/ComboProvider.Tests/ComboProvider.Tests.fsproj
+++ b/tests/EndToEndBuildTests/ComboProvider/ComboProvider.Tests/ComboProvider.Tests.fsproj
@@ -2,7 +2,7 @@
Library
- net5.0
+ net6.0
$(TestTargetFramework)
false
$(FSharpCoreShippedPackageVersionValue)
diff --git a/tests/EndToEndBuildTests/ComboProvider/ComboProvider/ComboProvider.fsproj b/tests/EndToEndBuildTests/ComboProvider/ComboProvider/ComboProvider.fsproj
index ab9487ca0eb..9fd278953c4 100644
--- a/tests/EndToEndBuildTests/ComboProvider/ComboProvider/ComboProvider.fsproj
+++ b/tests/EndToEndBuildTests/ComboProvider/ComboProvider/ComboProvider.fsproj
@@ -2,9 +2,9 @@
Library
- net5.0;net472
+ net6.0;net472
$(FSharpCoreShippedPackageVersionValue)
- net5.0;net472
+ net6.0;net472
diff --git a/tests/EndToEndBuildTests/ComboProvider/TestComboProvider.cmd b/tests/EndToEndBuildTests/ComboProvider/TestComboProvider.cmd
index f14f2685652..fc72e514487 100644
--- a/tests/EndToEndBuildTests/ComboProvider/TestComboProvider.cmd
+++ b/tests/EndToEndBuildTests/ComboProvider/TestComboProvider.cmd
@@ -42,8 +42,8 @@ echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuratio
dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
-echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
- dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
+echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
+ dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
rem
@@ -60,8 +60,8 @@ echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuratio
dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
-echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -v %configuration% -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
- dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net5.0 -p:FSharpTestCompilerVersion=coreclr
+echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -v %configuration% -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
+ dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net6.0 -p:FSharpTestCompilerVersion=coreclr
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
:success
diff --git a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
index 2572d28cc62..b9be2d943e5 100644
--- a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
+++ b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
@@ -3,8 +3,8 @@
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
Library
true
nunit
diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
index b4fd920536c..461cdbb4924 100644
--- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
+++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
@@ -1,23 +1,22 @@
+
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
Library
+ false
true
+ xunit
+ true
+ true
false
false
$(OtherFlags) --warnon:1182
- xunit
$(NoWarn);FS0988
-
-
-
-
-
@@ -106,6 +105,10 @@
+
+
+
+
diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs b/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs
index ade8a343b41..56685626162 100644
--- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs
+++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs
@@ -88,7 +88,7 @@ type DependencyManagerInteractiveTests() =
Assert.Equal(1, result.SourceFiles |> Seq.length)
Assert.Equal(2, result.Roots |> Seq.length)
- let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net5.0")
+ let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net6.0")
Assert.Equal(true, result.Success)
Assert.Equal(1, result.Resolutions |> Seq.length)
Assert.Equal(1, result.SourceFiles |> Seq.length)
@@ -110,7 +110,7 @@ type DependencyManagerInteractiveTests() =
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite, 3.1.8"|], reportError, "net5.0")
+ let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite, 3.1.8"|], reportError, "net6.0")
Assert.Equal(true, result.Success)
Assert.True((result.Resolutions |> Seq.length) > 1)
Assert.Equal(1, result.SourceFiles |> Seq.length)
@@ -140,7 +140,7 @@ type DependencyManagerInteractiveTests() =
Assert.Equal(0, result.SourceFiles |> Seq.length)
Assert.Equal(0, result.Roots |> Seq.length)
- let result = dp.Resolve(idm, ".fsx", [|"r", "System.Collections.Immutable.DoesNotExist"|], reportError, "net5.0")
+ let result = dp.Resolve(idm, ".fsx", [|"r", "System.Collections.Immutable.DoesNotExist"|], reportError, "net6.0")
Assert.Equal(false, result.Success)
Assert.Equal(0, result.Resolutions |> Seq.length)
Assert.Equal(0, result.SourceFiles |> Seq.length)
@@ -173,7 +173,7 @@ type DependencyManagerInteractiveTests() =
Assert.True((result1.Roots |> Seq.head).EndsWith("/fsharp.data/3.3.3/"))
Assert.True((result1.Roots |> Seq.last).EndsWith("/microsoft.netframework.referenceassemblies/1.0.0/"))
- let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net5.0")
+ let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net6.0")
Assert.Equal(true, result2.Success)
Assert.Equal(1, result2.Resolutions |> Seq.length)
let expected2 = "/netstandard2.0/"
@@ -194,7 +194,7 @@ type DependencyManagerInteractiveTests() =
Assert.Equal(1, result3.SourceFiles |> Seq.length)
Assert.True((result3.Roots |> Seq.head).EndsWith("/system.json/4.6.0/"))
- let result4 = dp2.Resolve(idm2, ".fsx", [|"r", "System.Json, Version=4.6.0"|], reportError, "net5.0")
+ let result4 = dp2.Resolve(idm2, ".fsx", [|"r", "System.Json, Version=4.6.0"|], reportError, "net6.0")
Assert.Equal(true, result4.Success)
Assert.Equal(1, result4.Resolutions |> Seq.length)
let expected4 = "/netstandard2.0/"
@@ -230,7 +230,7 @@ type DependencyManagerInteractiveTests() =
// Netstandard gets fewer dependencies than desktop, because desktop framework doesn't contain assemblies like System.Memory
// Those assemblies must be delivered by nuget for desktop apps
- let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "Microsoft.Extensions.Configuration.Abstractions, 3.1.1"|], reportError, "net5.0")
+ let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "Microsoft.Extensions.Configuration.Abstractions, 3.1.1"|], reportError, "net6.0")
Assert.Equal(true, result2.Success)
Assert.Equal(2, result2.Resolutions |> Seq.length)
let expected = "/netcoreapp3.1/"
@@ -287,7 +287,7 @@ TorchSharp.Tensor.LongTensor.From([| 0L .. 100L |]).Device
let result =
use dp = new DependencyProvider(AssemblyResolutionProbe(assemblyProbingPaths), NativeResolutionProbe(nativeProbingRoots))
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net5.0")
+ dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net6.0")
Assert.True(result.Success, "resolve failed")
@@ -383,7 +383,7 @@ printfn ""%A"" result
let result =
use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots))
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net5.0")
+ dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net6.0")
Assert.True(result.Success, "resolve failed")
@@ -464,7 +464,7 @@ printfn ""%A"" result
let result =
use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots))
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net5.0")
+ dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net6.0")
Assert.True(result.Success, "resolve failed")
@@ -521,7 +521,7 @@ x |> Seq.iter(fun r ->
let result =
use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots))
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net5.0")
+ dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net6.0")
// Expected: error FS3217: PackageManager can not reference the System Package 'FSharp.Core'
Assert.False(result.Success, "resolve succeeded but should have failed")
@@ -547,7 +547,7 @@ x |> Seq.iter(fun r ->
let result =
use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots))
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- dp.Resolve(idm, ".csx", packagemanagerlines, reportError, "net5.0")
+ dp.Resolve(idm, ".csx", packagemanagerlines, reportError, "net6.0")
Assert.True(result.Success, "resolve failed but should have succeeded")
@@ -590,7 +590,7 @@ x |> Seq.iter(fun r ->
Assert.Equal(1, result.SourceFiles |> Seq.length)
Assert.Equal(2, result.Roots |> Seq.length)
- let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net5.0")
+ let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net6.0")
Assert.Equal(true, result.Success)
Assert.Equal(1, result.Resolutions |> Seq.length)
Assert.Equal(1, result.SourceFiles |> Seq.length)
@@ -697,7 +697,7 @@ x |> Seq.iter(fun r ->
let mutable currentPath:string = null
use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots))
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite,3.1.7"|], reportError, "net5.0")
+ let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite,3.1.7"|], reportError, "net6.0")
Assert.Equal(true, result.Success)
currentPath <- appendSemiColon (Environment.GetEnvironmentVariable("PATH"))
finalPath <- appendSemiColon (Environment.GetEnvironmentVariable("PATH"))
@@ -819,7 +819,7 @@ x |> Seq.iter(fun r ->
ResolvingErrorReport (report)
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net5.0", timeout=0) // Fail in 0 milliseconds
+ let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net6.0", timeout=0) // Fail in 0 milliseconds
Assert.Equal(false, result.Success)
Assert.Equal(foundCorrectError, true)
Assert.Equal(foundWrongError, false)
@@ -842,7 +842,7 @@ x |> Seq.iter(fun r ->
ResolvingErrorReport (report)
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=0"|], reportError, "net5.0", null, "", "", "", -1) // Wait forever
+ let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=0"|], reportError, "net6.0", null, "", "", "", -1) // Wait forever
Assert.Equal(false, result.Success)
Assert.Equal(foundCorrectError, true)
Assert.Equal(foundWrongError, false)
@@ -865,7 +865,7 @@ x |> Seq.iter(fun r ->
ResolvingErrorReport (report)
let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget")
- let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=none"|], reportError, "net5.0", null, "", "", "", -1) // Wait forever
+ let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=none"|], reportError, "net6.0", null, "", "", "", -1) // Wait forever
Assert.Equal(true, result.Success)
Assert.Equal(foundCorrectError, false)
Assert.Equal(foundWrongError, false)
diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
index d30dd32729c..ed96b50dd07 100644
--- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
+++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
@@ -2,8 +2,8 @@
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
Library
true
xunit
diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
index 4730939bd38..02bb8e64750 100644
--- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
+++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
@@ -1,9 +1,10 @@
-
+
+
Exe
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
$(NoWarn);44;75;
true
false
diff --git a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
index ee836d5942f..a194e679b4e 100644
--- a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
+++ b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
@@ -3,19 +3,19 @@
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
Library
true
$(DefineConstants);ASSUME_PREVIEW_FSHARP_CORE
xunit
-
-
-
+
+
+
-
+
@@ -48,7 +48,7 @@
CompilerService\TokenizerTests.fs
-
diff --git a/tests/benchmarks/TaskPerf/TaskPerf.fsproj b/tests/benchmarks/TaskPerf/TaskPerf.fsproj
index 88e9af5c263..7323269bc9c 100644
--- a/tests/benchmarks/TaskPerf/TaskPerf.fsproj
+++ b/tests/benchmarks/TaskPerf/TaskPerf.fsproj
@@ -1,7 +1,7 @@
- net5.0
+ net6.0
Exe
true
diff --git a/tests/benchmarks/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj b/tests/benchmarks/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj
index d9446577406..0e0afb083c7 100644
--- a/tests/benchmarks/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj
+++ b/tests/benchmarks/TaskPerfPreviousCompiler/TaskPerfPreviousCompiler.fsproj
@@ -1,7 +1,7 @@
- net5.0
+ net6.0
Exe
true
$(OtherFlags) --define:ASYNC_PERF
diff --git a/tests/fsharp/.gitignore b/tests/fsharp/.gitignore
index ea4771517da..97071d47988 100644
--- a/tests/fsharp/.gitignore
+++ b/tests/fsharp/.gitignore
@@ -15,3 +15,4 @@ Library1.dll
cd.tmp
*.err
*.vserr
+*.pdb
\ No newline at end of file
diff --git a/tests/fsharp/FSharpSuite.Tests.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj
index c2c25724faa..274a88f9cd1 100644
--- a/tests/fsharp/FSharpSuite.Tests.fsproj
+++ b/tests/fsharp/FSharpSuite.Tests.fsproj
@@ -2,8 +2,8 @@
- net472;net5.0
- net5.0
+ net472;net6.0
+ net6.0
win-x86;win-x64
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81
true
diff --git a/tests/fsharp/core/printing/output.1000.stderr.txt b/tests/fsharp/core/printing/output.1000.stderr.txt
new file mode 100644
index 00000000000..6926dcc9f34
--- /dev/null
+++ b/tests/fsharp/core/printing/output.1000.stderr.txt
@@ -0,0 +1,348 @@
+
+ #blaaaaaa // blaaaaaa is not a known command;;
+ ^^^^^^^^^
+
+stdin(219,1): warning FS3353: Invalid directive '#blaaaaaa '
+
+
+ type Regression4319_T0 = static member (+-+-+) = "0 arguments";;
+ -----------------------------------------^^^^^
+
+stdin(571,42): warning FS1172: Infix operator member '+-+-+' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_T1 = static member (+-+-+) x = "1 argument";;
+ -----------------------------------------^^^^^
+
+stdin(572,42): warning FS1173: Infix operator member '+-+-+' has 1 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_T1b = static member (+-+-+) (x) = "1 (argument) [brackets make no diff]";;
+ -----------------------------------------^^^^^
+
+stdin(573,42): warning FS1173: Infix operator member '+-+-+' has 1 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_T1c = static member (+-+-+) x = let a,b = x in "1 argument, tuple typed from RHS. Still not OK";;
+ -----------------------------------------^^^^^
+
+stdin(574,42): warning FS1173: Infix operator member '+-+-+' has 1 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_T1d = static member (+-+-+) (x:int*int) = "1 argument, tuple typed from LHS. Still not OK";;
+ -----------------------------------------^^^^^
+
+stdin(575,42): warning FS1173: Infix operator member '+-+-+' has 1 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_T3 = static member (+-+-+) (x,y,z) = "3 arguments";;
+ -----------------------------------------^^^^^
+
+stdin(577,42): warning FS1173: Infix operator member '+-+-+' has 3 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_U1 = static member (+-+-+) x moreArgs = "1 argument and further args";;
+ -----------------------------------------^^^^^
+
+stdin(578,42): warning FS1173: Infix operator member '+-+-+' has 1 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_U1 = static member (+-+-+) x moreArgs = "1 argument and further args";;
+ -----------------------------------------^^^^^
+
+stdin(578,42): warning FS1174: Infix operator member '+-+-+' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_U1b = static member (+-+-+) (x) moreArgs = "1 (argument) [brackets make no diff] and further args";;
+ -----------------------------------------^^^^^
+
+stdin(579,42): warning FS1173: Infix operator member '+-+-+' has 1 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_U1b = static member (+-+-+) (x) moreArgs = "1 (argument) [brackets make no diff] and further args";;
+ -----------------------------------------^^^^^
+
+stdin(579,42): warning FS1174: Infix operator member '+-+-+' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_U2 = static member (+-+-+) (x,y) moreArgs = "1 argument and further args";;
+ -----------------------------------------^^^^^
+
+stdin(580,42): warning FS1174: Infix operator member '+-+-+' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_U3 = static member (+-+-+) (x,y,z) moreArgs = "1 argument and further args";;
+ -----------------------------------------^^^^^
+
+stdin(581,42): warning FS1173: Infix operator member '+-+-+' has 3 initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ type Regression4319_U3 = static member (+-+-+) (x,y,z) moreArgs = "1 argument and further args";;
+ -----------------------------------------^^^^^
+
+stdin(581,42): warning FS1174: Infix operator member '+-+-+' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (:=) = "COLON_EQUALS"
+ -------------------^^
+
+stdin(584,20): warning FS1172: Infix operator member ':=' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (:=) = "COLON_EQUALS"
+ -------------------^^
+
+stdin(584,20): warning FS0086: The name '(:=)' should not be used as a member name because it is given a standard definition in the F# library over fixed types
+
+
+ static member (&) = "AMP"
+ -------------------^
+
+stdin(588,20): warning FS1172: Infix operator member '&' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (&) = "AMP"
+ -------------------^
+
+stdin(588,20): warning FS0086: The name '(&)' should not be used as a member name. If defining a static member for use from other CLI languages then use the name 'op_Amp' instead.
+
+
+ static member (&^) = "AMP_AMP"
+ -------------------^^
+
+stdin(589,20): warning FS1172: Infix operator member '&^' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (=) = "EQUALS"
+ -------------------^
+
+stdin(590,20): warning FS1172: Infix operator member '=' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (=) = "EQUALS"
+ -------------------^
+
+stdin(590,20): warning FS0086: The name '(=)' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name 'op_Equality' instead.
+
+
+ static member (!=) = "INFIX_COMPARE_OP"
+ -------------------^^
+
+stdin(592,20): warning FS1172: Infix operator member '!=' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (...=) = "INFIX_COMPARE_OP" // with $. prefix
+ -------------------^^^^
+
+stdin(596,20): warning FS1172: Infix operator member '...=' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (...!=) = "INFIX_COMPARE_OP" // with $. prefix
+ -------------------^^^^^
+
+stdin(597,20): warning FS1172: Infix operator member '...!=' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (...<) = "INFIX_COMPARE_OP" // with $. prefix
+ -------------------^^^^
+
+stdin(598,20): warning FS1172: Infix operator member '...<' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (...>) = "INFIX_COMPARE_OP" // with $. prefix
+ -------------------^^^^
+
+stdin(599,20): warning FS1172: Infix operator member '...>' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member ($) = "DOLLAR"
+ -------------------^
+
+stdin(601,20): warning FS1172: Infix operator member '$' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (<) = "LESS"
+ -------------------^
+
+stdin(602,20): warning FS1172: Infix operator member '<' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (<) = "LESS"
+ -------------------^
+
+stdin(602,20): warning FS0086: The name '(<)' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name 'op_LessThan' instead.
+
+
+ static member (>) = "GREATER"
+ -------------------^
+
+stdin(603,20): warning FS1172: Infix operator member '>' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (>) = "GREATER"
+ -------------------^
+
+stdin(603,20): warning FS0086: The name '(>)' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name 'op_GreaterThan' instead.
+
+
+ static member (@) = "INFIX_AT_HAT_OP"
+ -------------------^
+
+stdin(604,20): warning FS1172: Infix operator member '@' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (@) = "INFIX_AT_HAT_OP"
+ -------------------^
+
+stdin(604,20): warning FS0086: The name '(@)' should not be used as a member name because it is given a standard definition in the F# library over fixed types
+
+
+ static member (^) = "INFIX_AT_HAT_OP"
+ -------------------^
+
+stdin(605,20): warning FS1172: Infix operator member '^' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (^) = "INFIX_AT_HAT_OP"
+ -------------------^
+
+stdin(605,20): warning FS0086: The name '(^)' should not be used as a member name because it is given a standard definition in the F# library over fixed types
+
+
+ static member (...@) = "INFIX_AT_HAT_OP" // with $. prefix
+ -------------------^^^^
+
+stdin(606,20): warning FS1172: Infix operator member '...@' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (...^) = "INFIX_AT_HAT_OP" // with $. prefix
+ -------------------^^^^
+
+stdin(607,20): warning FS1172: Infix operator member '...^' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (%) = "PERCENT_OP"
+ -------------------^
+
+stdin(608,20): warning FS1172: Infix operator member '%' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (-) = "MINUS"
+ -------------------^
+
+stdin(610,20): warning FS1172: Infix operator member '-' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member ( * ) = "STAR"
+ --------------------^
+
+stdin(611,21): warning FS1172: Infix operator member '*' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member (/) = "INFIX_STAR_DIV_MOD_OP"
+ -------------------^
+
+stdin(613,20): warning FS1172: Infix operator member '/' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member ( ...* ) = "INFIX_STAR_DIV_MOD_OP" // with $. prefix
+ --------------------^^^^
+
+stdin(615,21): warning FS1172: Infix operator member '...*' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member ( .../ ) = "INFIX_STAR_DIV_MOD_OP" // with $. prefix
+ --------------------^^^^
+
+stdin(616,21): warning FS1172: Infix operator member '.../' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member ( ...% ) = "INFIX_STAR_DIV_MOD_OP" // with $. prefix
+ --------------------^^^^
+
+stdin(617,21): warning FS1172: Infix operator member '...%' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ static member ( ** ) = "INFIX_STAR_STAR_OP"
+ --------------------^^
+
+stdin(618,21): warning FS1172: Infix operator member '**' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ member this.ToString() = "ABC"
+ ----------------^^^^^^^^
+
+stdin(623,17): warning FS0864: This new member hides the abstract member 'System.Object.ToString() : string'. Rename the member or use 'override' instead.
+
+
+ let x,f = it, (fun () -> !it);; // this will read from the static storage for 'it'
+ -------------------------^
+
+stdin(643,26): info FS3370: The use of '!' from the F# library is deprecated. See https://aka.ms/fsharp-refcell-ops. For example, please change '!cell' to 'cell.Value'.
+
+
+ x := 3;;
+ --^^
+
+stdin(645,3): info FS3370: The use of ':=' from the F# library is deprecated. See https://aka.ms/fsharp-refcell-ops. For example, please change 'cell := expr' to 'cell.Value <- expr'.
+
+
+ member this.M() = "string"
+ ----------------^
+
+stdin(764,17): error FS0438: Duplicate method. The method 'M' has the same name and signature as another method in type 'ExpectDupMethod'.
+
+
+ member this.P = "string"
+ ----------------^
+
+stdin(771,17): error FS0438: Duplicate method. The method 'get_P' has the same name and signature as another method in type 'ExpectDupProperty'.
+
+
+ type public IBPublic = interface inherit IAPrivate abstract Q : int end
+ ------------------^^^^^^^^
+
+stdin(778,19): error FS0410: The type 'IAPrivate' is less accessible than the value, member or type 'IBPublic' it is used in.
+
+
+ type internal IBInternal = interface inherit IAPrivate abstract Q : int end
+ ------------------^^^^^^^^^^
+
+stdin(783,19): error FS0410: The type 'IAPrivate' is less accessible than the value, member or type 'IBInternal' it is used in.
+
+
+ type public IBPublic = interface inherit IAInternal abstract Q : int end
+ ------------------^^^^^^^^
+
+stdin(792,19): error FS0410: The type 'IAInternal' is less accessible than the value, member or type 'IBPublic' it is used in.
+
+
+ override x.M(a:string) = 1
+ -------------------^
+
+stdin(824,20): error FS0361: The override 'M: string -> int' implements more than one abstract slot, e.g. 'abstract Regression4232.D.M: 'U -> int' and 'abstract Regression4232.D.M: 'T -> int'
+
+
+ let (|A|B|) (x:int) = A x;;
+ -----^^^^^
+
+stdin(832,6): error FS1210: Active pattern '|A|B|' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice = A x'
+
+
+ let (|A|B|) (x:'a) = A x;;
+ -----^^^^^
+
+stdin(835,6): error FS1210: Active pattern '|A|B|' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice = A x'
+
+
+ let (|A|B|) (p:'a) (x:int) = A p;;
+ -----^^^^^
+
+stdin(838,6): error FS1210: Active pattern '|A|B|' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice = A x'
+
+
+ let (|A|B|) = failwith "" : Choice;;
+ -----^^^^^
+
+stdin(844,6): error FS1209: Active pattern '|A|B|' is not a function
+
diff --git a/tests/fsharp/core/printing/output.1000.stdout.txt b/tests/fsharp/core/printing/output.1000.stdout.txt
new file mode 100644
index 00000000000..6cebad0208a
--- /dev/null
+++ b/tests/fsharp/core/printing/output.1000.stdout.txt
@@ -0,0 +1,2749 @@
+
+> val it: unit = ()
+
+> val repeatId: string = "A"
+
+> val repeatId: string = "B"
+
+namespace FSI_0005
+ val x1: int
+ val x2: string
+ val x3: 'a option
+ val x4: int option
+ val x5: 'a list
+ val x6: int list
+ val x7: System.Windows.Forms.Form
+ val x8: int[,]
+ val x9: Lazy
+ type ClassInFile1 =
+ new: unit -> ClassInFile1
+
+namespace FSI_0006
+ val x1: int
+ val x2: string
+ val x3: 'a option
+ val x4: int option
+ val x5: 'a list
+ val x6: int list
+ val x7: System.Windows.Forms.Form
+ val x8: int[,]
+ val x9: Lazy
+ type ClassInFile1 =
+ new: unit -> ClassInFile1
+
+namespace FSI_0006
+ val x1: int
+ val x2: string
+ val x3: 'a option
+ val x4: int option
+ val x5: 'a list
+ val x6: int list
+ val x7: System.Windows.Forms.Form
+ val x8: int[,]
+ val x9: Lazy
+ type ClassInFile2 =
+ new: unit -> ClassInFile2
+
+> val x1: seq
+val x2: seq
+val x3: seq
+val f1: System.Windows.Forms.Form = System.Windows.Forms.Form, Text: f1 form
+val fs: System.Windows.Forms.Form[] =
+ [|System.Windows.Forms.Form, Text: fs #0;
+ System.Windows.Forms.Form, Text: fs #1;
+ System.Windows.Forms.Form, Text: fs #2;
+ System.Windows.Forms.Form, Text: fs #3;
+ System.Windows.Forms.Form, Text: fs #4;
+ System.Windows.Forms.Form, Text: fs #5;
+ System.Windows.Forms.Form, Text: fs #6;
+ System.Windows.Forms.Form, Text: fs #7;
+ System.Windows.Forms.Form, Text: fs #8;
+ System.Windows.Forms.Form, Text: fs #9;
+ System.Windows.Forms.Form, Text: fs #10;
+ System.Windows.Forms.Form, Text: fs #11;
+ System.Windows.Forms.Form, Text: fs #12;
+ System.Windows.Forms.Form, Text: fs #13;
+ System.Windows.Forms.Form, Text: fs #14;
+ System.Windows.Forms.Form, Text: fs #15;
+ System.Windows.Forms.Form, Text: fs #16;
+ System.Windows.Forms.Form, Text: fs #17;
+ System.Windows.Forms.Form, Text: fs #18;
+ System.Windows.Forms.Form, Text: fs #19;
+ System.Windows.Forms.Form, Text: fs #20;
+ System.Windows.Forms.Form, Text: fs #21;
+ System.Windows.Forms.Form, Text: fs #22;
+ System.Windows.Forms.Form, Text: fs #23;
+ System.Windows.Forms.Form, Text: fs #24;
+ System.Windows.Forms.Form, Text: fs #25;
+ System.Windows.Forms.Form, Text: fs #26;
+ System.Windows.Forms.Form, Text: fs #27;
+ System.Windows.Forms.Form, Text: fs #28;
+ System.Windows.Forms.Form, Text: fs #29;
+ System.Windows.Forms.Form, Text: fs #30;
+ System.Windows.Forms.Form, Text: fs #31;
+ System.Windows.Forms.Form, Text: fs #32;
+ System.Windows.Forms.Form, Text: fs #33;
+ System.Windows.Forms.Form, Text: fs #34;
+ System.Windows.Forms.Form, Text: fs #35;
+ System.Windows.Forms.Form, Text: fs #36;
+ System.Windows.Forms.Form, Text: fs #37;
+ System.Windows.Forms.Form, Text: fs #38;
+ System.Windows.Forms.Form, Text: fs #39;
+ System.Windows.Forms.Form, Text: fs #40;
+ System.Windows.Forms.Form, Text: fs #41;
+ System.Windows.Forms.Form, Text: fs #42;
+ System.Windows.Forms.Form, Text: fs #43;
+ System.Windows.Forms.Form, Text: fs #44;
+ System.Windows.Forms.Form, Text: fs #45;
+ System.Windows.Forms.Form, Text: fs #46;
+ System.Windows.Forms.Form, Text: fs #47;
+ System.Windows.Forms.Form, Text: fs #48;
+ System.Windows.Forms.Form, Text: fs #49;
+ System.Windows.Forms.Form, Text: fs #50;
+ System.Windows.Forms.Form, Text: fs #51;
+ System.Windows.Forms.Form, Text: fs #52;
+ System.Windows.Forms.Form, Text: fs #53;
+ System.Windows.Forms.Form, Text: fs #54;
+ System.Windows.Forms.Form, Text: fs #55;
+ System.Windows.Forms.Form, Text: fs #56;
+ System.Windows.Forms.Form, Text: fs #57;
+ System.Windows.Forms.Form, Text: fs #58;
+ System.Windows.Forms.Form, Text: fs #59;
+ System.Windows.Forms.Form, Text: fs #60;
+ System.Windows.Forms.Form, Text: fs #61;
+ System.Windows.Forms.Form, Text: fs #62;
+ System.Windows.Forms.Form, Text: fs #63;
+ System.Windows.Forms.Form, Text: fs #64;
+ System.Windows.Forms.Form, Text: fs #65;
+ System.Windows.Forms.Form, Text: fs #66;
+ System.Windows.Forms.Form, Text: fs #67;
+ System.Windows.Forms.Form, Text: fs #68;
+ System.Windows.Forms.Form, Text: fs #69;
+ System.Windows.Forms.Form, Text: fs #70;
+ System.Windows.Forms.Form, Text: fs #71;
+ System.Windows.Forms.Form, Text: fs #72;
+ System.Windows.Forms.Form, Text: fs #73;
+ System.Windows.Forms.Form, Text: fs #74;
+ System.Windows.Forms.Form, Text: fs #75;
+ System.Windows.Forms.Form, Text: fs #76;
+ System.Windows.Forms.Form, Text: fs #77;
+ System.Windows.Forms.Form, Text: fs #78;
+ System.Windows.Forms.Form, Text: fs #79;
+ System.Windows.Forms.Form, Text: fs #80;
+ System.Windows.Forms.Form, Text: fs #81;
+ System.Windows.Forms.Form, Text: fs #82;
+ System.Windows.Forms.Form, Text: fs #83;
+ System.Windows.Forms.Form, Text: fs #84;
+ System.Windows.Forms.Form, Text: fs #85;
+ System.Windows.Forms.Form, Text: fs #86;
+ System.Windows.Forms.Form, Text: fs #87;
+ System.Windows.Forms.Form, Text: fs #88;
+ System.Windows.Forms.Form, Text: fs #89;
+ System.Windows.Forms.Form, Text: fs #90;
+ System.Windows.Forms.Form, Text: fs #91;
+ System.Windows.Forms.Form, Text: fs #92;
+ System.Windows.Forms.Form, Text: fs #93;
+ System.Windows.Forms.Form, Text: fs #94;
+ System.Windows.Forms.Form, Text: fs #95;
+ System.Windows.Forms.Form, Text: fs #96;
+ System.Windows.Forms.Form, Text: fs #97;
+ System.Windows.Forms.Form, Text: fs #98;
+ System.Windows.Forms.Form, Text: fs #99; ...|]
+val xs: string list =
+ ["0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "8"; "9"; "10"; "11"; "12"; "13";
+ "14"; "15"; "16"; "17"; "18"; "19"; "20"; "21"; "22"; "23"; "24"; "25";
+ "26"; "27"; "28"; "29"; "30"; "31"; "32"; "33"; "34"; "35"; "36"; "37";
+ "38"; "39"; "40"; "41"; "42"; "43"; "44"; "45"; "46"; "47"; "48"; "49";
+ "50"; "51"; "52"; "53"; "54"; "55"; "56"; "57"; "58"; "59"; "60"; "61";
+ "62"; "63"; "64"; "65"; "66"; "67"; "68"; "69"; "70"; "71"; "72"; "73";
+ "74"; "75"; "76"; "77"; "78"; "79"; "80"; "81"; "82"; "83"; "84"; "85";
+ "86"; "87"; "88"; "89"; "90"; "91"; "92"; "93"; "94"; "95"; "96"; "97";
+ "98"; "99"; ...]
+val xa: string[] =
+ [|"0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "8"; "9"; "10"; "11"; "12"; "13";
+ "14"; "15"; "16"; "17"; "18"; "19"; "20"; "21"; "22"; "23"; "24"; "25";
+ "26"; "27"; "28"; "29"; "30"; "31"; "32"; "33"; "34"; "35"; "36"; "37";
+ "38"; "39"; "40"; "41"; "42"; "43"; "44"; "45"; "46"; "47"; "48"; "49";
+ "50"; "51"; "52"; "53"; "54"; "55"; "56"; "57"; "58"; "59"; "60"; "61";
+ "62"; "63"; "64"; "65"; "66"; "67"; "68"; "69"; "70"; "71"; "72"; "73";
+ "74"; "75"; "76"; "77"; "78"; "79"; "80"; "81"; "82"; "83"; "84"; "85";
+ "86"; "87"; "88"; "89"; "90"; "91"; "92"; "93"; "94"; "95"; "96"; "97";
+ "98"; "99"; ...|]
+val xa2: string[,] = [["0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"]
+ ["10"; "11"; "12"; "13"; "14"; "15"; "16"; "17"]
+ ["20"; "21"; "22"; "23"; "24"; "25"; "26"; "27"]
+ ["30"; "31"; "32"; "33"; "34"; "35"; "36"; "37"]
+ ["40"; "41"; "42"; "43"; "44"; "45"; "46"; "47"]
+ ["50"; "51"; "52"; "53"; "54"; "55"; "56"; "57"]
+ ["60"; "61"; "62"; "63"; "64"; "65"; "66"; "67"]
+ ["70"; "71"; "72"; "73"; "74"; "75"; "76"; "77"]]
+val sxs0: Set = set []
+
+> val sxs1: Set = set ["0"]
+
+> val sxs2: Set = set ["0"; "1"]
+
+> val sxs3: Set = set ["0"; "1"; "2"]
+
+> val sxs4: Set = set ["0"; "1"; "2"; "3"]
+
+> val sxs200: Set =
+ set ["0"; "1"; "10"; "100"; "101"; "102"; "103"; "104"; "105"; ...]
+
+> val msxs0: Map = map []
+
+> val msxs1: Map = map [(0, "0")]
+
+> val msxs2: Map = map [(0, "0"); (1, "1")]
+
+> val msxs3: Map = map [(0, "0"); (1, "1"); (2, "2")]
+
+> val msxs4: Map = map [(0, "0"); (1, "1"); (2, "2"); (3, "3")]
+
+> val msxs200: Map =
+ map
+ [(0, "0"); (1, "1"); (2, "2"); (3, "3"); (4, "4"); (5, "5"); (6, "6");
+ (7, "7"); (8, "8"); ...]
+
+> module M =
+ val a: string = "sub-binding"
+ val b:
+ (seq * seq * seq * System.Windows.Forms.Form) option *
+ (string list * string list * string[,]) option =
+ (Some (, , , System.Windows.Forms.Form, Text: f1 form),
+ Some
+ (["0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "8"; "9"; "10"; "11"; "12";
+ "13"; "14"; "15"; "16"; "17"; "18"; "19"; "20"; "21"; "22"; "23";
+ "24"; "25"; "26"; "27"; "28"; "29"; "30"; "31"; "32"; "33"; "34";
+ "35"; "36"; "37"; "38"; "39"; "40"; "41"; "42"; "43"; "44"; "45";
+ "46"; "47"; "48"; "49"; "50"; "51"; "52"; "53"; "54"; "55"; "56";
+ "57"; "58"; "59"; "60"; "61"; "62"; "63"; "64"; "65"; "66"; "67";
+ "68"; "69"; "70"; "71"; "72"; "73"; "74"; "75"; "76"; "77"; "78";
+ "79"; "80"; "81"; "82"; "83"; "84"; "85"; "86"; "87"; "88"; "89";
+ "90"; "91"; "92"; "93"; "94"; "95"; "96"; ...], ..., ...))
+type T =
+ new: a: int * b: int -> T
+ member AMethod: x: int -> int
+ static member StaticMethod: x: int -> int
+ member AProperty: int
+ static member StaticProperty: int
+val f_as_method: x: int -> int
+val f_as_thunk: (int -> int)
+val refCell: string ref = { contents = "value" }
+module D1 =
+ val words: System.Collections.Generic.IDictionary
+ val words2000: System.Collections.Generic.IDictionary
+
+> > module D2 =
+ val words: IDictionary
+ val words2000: IDictionary
+val opt1: 'a option
+val opt1b: int option = None
+val opt4: 'a option option option option
+val opt4b: int option option option option = Some (Some (Some None))
+val opt5: int list option option option option option list =
+ [Some (Some (Some (Some None)));
+ Some (Some (Some (Some (Some [1; 2; 3; 4; 5; 6]))));
+ Some
+ (Some
+ (Some
+ (Some
+ (Some
+ [1; 2; 3; 4; 5; 6; 7; 8; 9; 0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 1;
+ 2; 3; 4; 5; 6; 7; 8; 9; 1; 2; 3; 4; 5; 6; 7; 8; 9; 1; 2; 3;
+ 4; 5; 6; 7; 8; 9; 1; 2; 3; 4; 5; 6; 7; 8; 9; 0]))))]
+val mkStr: n: int -> string
+val strs: string[] =
+ [|""; "-"; "--"; "---"; "----"; "-----"; "------"; "-------"; "--------";
+ "---------"; "----------"; "-----------"; "------------"; "-------------";
+ "--------------"; "---------------"; "----------------";
+ "-----------------"; "------------------"; "-------------------";
+ "--------------------"; "---------------------"; "----------------------";
+ "-----------------------"; "------------------------";
+ "-------------------------"; "--------------------------";
+ "---------------------------"; "----------------------------";
+ "-----------------------------"; "------------------------------";
+ "-------------------------------"; "--------------------------------";
+ "---------------------------------"; "----------------------------------";
+ "-----------------------------------";
+ "------------------------------------";
+ "-------------------------------------";
+ "--------------------------------------";
+ "---------------------------------------";
+ "----------------------------------------";
+ "-----------------------------------------";
+ "------------------------------------------";
+ "-------------------------------------------";
+ "--------------------------------------------";
+ "---------------------------------------------";
+ "----------------------------------------------";
+ "-----------------------------------------------";
+ "------------------------------------------------";
+ "-------------------------------------------------";
+ "--------------------------------------------------";
+ "---------------------------------------------------";
+ "----------------------------------------------------";
+ "-----------------------------------------------------";
+ "------------------------------------------------------";
+ "-------------------------------------------------------";
+ "--------------------------------------------------------";
+ "---------------------------------------------------------";
+ "----------------------------------------------------------";
+ "-----------------------------------------------------------";
+ "------------------------------------------------------------";
+ "-------------------------------------------------------------";
+ "--------------------------------------------------------------";
+ "---------------------------------------------------------------";
+ "----------------------------------------------------------------";
+ "-----------------------------------------------------------------";
+ "------------------------------------------------------------------";
+ "-------------------------------------------------------------------";
+ "--------------------------------------------------------------------";
+ "---------------------------------------------------------------------";
+ "----------------------------------------------------------------------";
+ "-----------------------------------------------------------------------";
+ "------------------------------------------------------------------------";
+ "-------------------------------------------------------------"+[12 chars];
+ "-------------------------------------------------------------"+[13 chars];
+ "-------------------------------------------------------------"+[14 chars];
+ "-------------------------------------------------------------"+[15 chars];
+ "-------------------------------------------------------------"+[16 chars];
+ "-------------------------------------------------------------"+[17 chars];
+ "-------------------------------------------------------------"+[18 chars];
+ "-------------------------------------------------------------"+[19 chars];
+ "-------------------------------------------------------------"+[20 chars];
+ "-------------------------------------------------------------"+[21 chars];
+ "-------------------------------------------------------------"+[22 chars];
+ "-------------------------------------------------------------"+[23 chars];
+ "-------------------------------------------------------------"+[24 chars];
+ "-------------------------------------------------------------"+[25 chars];
+ "-------------------------------------------------------------"+[26 chars];
+ "-------------------------------------------------------------"+[27 chars];
+ "-------------------------------------------------------------"+[28 chars];
+ "-------------------------------------------------------------"+[29 chars];
+ "-------------------------------------------------------------"+[30 chars];
+ "-------------------------------------------------------------"+[31 chars];
+ "-------------------------------------------------------------"+[32 chars];
+ "-------------------------------------------------------------"+[33 chars];
+ "-------------------------------------------------------------"+[34 chars];
+ "-------------------------------------------------------------"+[35 chars];
+ "-------------------------------------------------------------"+[36 chars];
+ "-------------------------------------------------------------"+[37 chars];
+ "-------------------------------------------------------------"+[38 chars];
+ ...|]
+val str7s: string[] =
+ [|""; "-------"; "--------------"; "---------------------";
+ "----------------------------"; "-----------------------------------";
+ "------------------------------------------";
+ "-------------------------------------------------";
+ "--------------------------------------------------------";
+ "---------------------------------------------------------------";
+ "----------------------------------------------------------------------";
+ "-------------------------------------------------------------"+[16 chars];
+ "-------------------------------------------------------------"+[23 chars];
+ "-------------------------------------------------------------"+[30 chars];
+ "-------------------------------------------------------------"+[37 chars];
+ "-------------------------------------------------------------"+[44 chars];
+ "-------------------------------------------------------------"+[51 chars];
+ "-------------------------------------------------------------"+[58 chars];
+ "-------------------------------------------------------------"+[65 chars];
+ "-------------------------------------------------------------"+[72 chars];
+ "-------------------------------------------------------------"+[79 chars];
+ "-------------------------------------------------------------"+[86 chars];
+ "-------------------------------------------------------------"+[93 chars];
+ "-------------------------------------------------------------"+[100 chars];
+ "-------------------------------------------------------------"+[107 chars];
+ "-------------------------------------------------------------"+[114 chars];
+ "-------------------------------------------------------------"+[121 chars];
+ "-------------------------------------------------------------"+[128 chars];
+ "-------------------------------------------------------------"+[135 chars];
+ "-------------------------------------------------------------"+[142 chars];
+ "-------------------------------------------------------------"+[149 chars];
+ "-------------------------------------------------------------"+[156 chars];
+ "-------------------------------------------------------------"+[163 chars];
+ "-------------------------------------------------------------"+[170 chars];
+ "-------------------------------------------------------------"+[177 chars];
+ "-------------------------------------------------------------"+[184 chars];
+ "-------------------------------------------------------------"+[191 chars];
+ "-------------------------------------------------------------"+[198 chars];
+ "-------------------------------------------------------------"+[205 chars];
+ "-------------------------------------------------------------"+[212 chars];
+ "-------------------------------------------------------------"+[219 chars];
+ "-------------------------------------------------------------"+[226 chars];
+ "-------------------------------------------------------------"+[233 chars];
+ "-------------------------------------------------------------"+[240 chars];
+ "-------------------------------------------------------------"+[247 chars];
+ "-------------------------------------------------------------"+[254 chars];
+ "-------------------------------------------------------------"+[261 chars];
+ "-------------------------------------------------------------"+[268 chars];
+ "-------------------------------------------------------------"+[275 chars];
+ "-------------------------------------------------------------"+[282 chars];
+ "-------------------------------------------------------------"+[289 chars];
+ "-------------------------------------------------------------"+[296 chars];
+ "-------------------------------------------------------------"+[303 chars];
+ "-------------------------------------------------------------"+[310 chars];
+ "-------------------------------------------------------------"+[317 chars];
+ "-------------------------------------------------------------"+[324 chars];
+ "-------------------------------------------------------------"+[331 chars];
+ "-------------------------------------------------------------"+[338 chars];
+ "-------------------------------------------------------------"+[345 chars];
+ "-------------------------------------------------------------"+[352 chars];
+ "-------------------------------------------------------------"+[359 chars];
+ "-------------------------------------------------------------"+[366 chars];
+ "-------------------------------------------------------------"+[373 chars];
+ "-------------------------------------------------------------"+[380 chars];
+ "-------------------------------------------------------------"+[387 chars];
+ "-------------------------------------------------------------"+[394 chars];
+ "-------------------------------------------------------------"+[401 chars];
+ "-------------------------------------------------------------"+[408 chars];
+ "-------------------------------------------------------------"+[415 chars];
+ "-------------------------------------------------------------"+[422 chars];
+ "-------------------------------------------------------------"+[429 chars];
+ "-------------------------------------------------------------"+[436 chars];
+ "-------------------------------------------------------------"+[443 chars];
+ "-------------------------------------------------------------"+[450 chars];
+ "-------------------------------------------------------------"+[457 chars];
+ "-------------------------------------------------------------"+[464 chars];
+ "-------------------------------------------------------------"+[471 chars];
+ "-------------------------------------------------------------"+[478 chars];
+ "-------------------------------------------------------------"+[485 chars];
+ "-------------------------------------------------------------"+[492 chars];
+ "-------------------------------------------------------------"+[499 chars];
+ "-------------------------------------------------------------"+[506 chars];
+ "-------------------------------------------------------------"+[513 chars];
+ "-------------------------------------------------------------"+[520 chars];
+ "-------------------------------------------------------------"+[527 chars];
+ "-------------------------------------------------------------"+[534 chars];
+ "-------------------------------------------------------------"+[541 chars];
+ "-------------------------------------------------------------"+[548 chars];
+ "-------------------------------------------------------------"+[555 chars];
+ "-------------------------------------------------------------"+[562 chars];
+ "-------------------------------------------------------------"+[569 chars];
+ "-------------------------------------------------------------"+[576 chars];
+ "-------------------------------------------------------------"+[583 chars];
+ "-------------------------------------------------------------"+[590 chars];
+ "-------------------------------------------------------------"+[597 chars];
+ "-------------------------------------------------------------"+[604 chars];
+ "-------------------------------------------------------------"+[611 chars];
+ "-------------------------------------------------------------"+[618 chars];
+ "-------------------------------------------------------------"+[625 chars];
+ "-------------------------------------------------------------"+[632 chars];
+ ...|]
+val grids: string[,] =
+ [[""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; "";
+ ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; "";
+ ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""; ""]
+ [""; "-"; "--"; "---"; "----"; "-----"; "------"; "-------"; "--------";
+ "---------"; "----------"; "-----------"; "------------"; "-------------";
+ "--------------"; "---------------"; "----------------";
+ "-----------------"; "------------------"; "-------------------";
+ "--------------------"; "---------------------"; "----------------------";
+ "-----------------------"; "------------------------";
+ "-------------------------"; "--------------------------";
+ "---------------------------"; "----------------------------";
+ "-----------------------------"; "------------------------------";
+ "-------------------------------"; "--------------------------------";
+ "---------------------------------"; "----------------------------------";
+ "-----------------------------------";
+ "------------------------------------";
+ "-------------------------------------";
+ "--------------------------------------";
+ "---------------------------------------";
+ "----------------------------------------";
+ "-----------------------------------------";
+ "------------------------------------------";
+ "-------------------------------------------";
+ "--------------------------------------------";
+ "---------------------------------------------";
+ "----------------------------------------------";
+ "-----------------------------------------------";
+ "------------------------------------------------";
+ "-------------------------------------------------"; ...]
+ ...]
+
+> type tree =
+ | L
+ | N of tree list
+val mkT: w: int -> d: int -> tree
+val tree: w: int -> d: int -> tree
+
+> [Building 2 4...done]
+val tree_2_4: tree =
+ N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]]
+
+> [Building 2 6...done]
+val tree_2_6: tree =
+ N [N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]];
+ N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]]];
+ N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]];
+ N [N [N [N ...; ...]; ...]; ...]; ...]; ...]
+
+> [Building 2 8...done]
+val tree_2_8: tree =
+ N [N [N [N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]];
+ N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]]];
+ N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]];
+ N [N ...; ...]; ...]; ...]; ...]; ...]
+
+> [Building 2 10...done]
+val tree_2_10: tree =
+ N [N [N [N [N [N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]];
+ N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]]];
+ N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]];
+ N [N [L; L]; N [L; L; ...]; ...]; ...]; ...]; ...];
+ ...]; ...]; ...]; ...]; ...]
+
+> [Building 2 12...done]
+val tree_2_12: tree =
+ N [N [N [N [N [N [N [N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]];
+ N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]]]];
+ N [N [N [N [N [L; L]; N [L; L]]; N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]];
+ N [N [L; L]; N ...; ...]; ...]; ...]; ...];
+ ...]; ...]; ...]; ...]; ...]; ...]; ...]
+
+> [Building 2 14...done]
+val tree_2_14: tree =
+ N [N [N [N [N [N [N [N [N [N [N [N [N [N [L; L]; N [L; L]];
+ N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]];
+ N [N [L; L]; N [L; L]]]];
+ N [N [N [N [L; L]; N [L; L]];
+ N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]];
+ N [N [L; L]; N [L; L]]]]];
+ N [N [N [N [N [L; L]; N [L; L]];
+ N [N [L; L]; N [L; L]]];
+ N [N [N [L; L]; N [L; L]];
+ N [N [L; ...]; ...]; ...]; ...]; ...];
+ ...]; ...]; ...]; ...]; ...]; ...]; ...]; ...];
+ ...]
+
+> [Building 3 8...done]
+val tree_3_8: tree =
+ N [N [N [N [N [N [N [N [L; L; L]; N [L; L; L]; N [L; L; L]];
+ N [N [L; L; L]; N [L; L; L]; N [L; L; L]];
+ N [N [L; L; L]; N [L; L; L]; N [L; L; L]]];
+ N [N [N [L; L; L]; N [L; L; L]; N [L; L; L]];
+ N [N [L; L; L]; N [L; L; L]; N [L; L; L]];
+ N [N [L; L; L]; N [L; L; L]; N [L; L; L]]];
+ N [N [N [L; L; L]; N [L; L; L]; N [L; L; L]]; N ...; ...];
+ ...]; ...]; ...]; ...]; ...]
+
+> [Building 4 8...done]
+val tree_4_8: tree =
+ N [N [N [N [N [N [N [N [L; L; L; L]; N [L; L; L; L]; N [L; L; L; L];
+ N [L; L; L; L]];
+ N [N [L; L; L; L]; N [L; L; L; L]; N [L; L; L; L];
+ N [L; L; L; L]];
+ N [N [L; L; L; L]; N [L; L; L; L]; N [L; L; L; L];
+ N [L; L; L; L]];
+ N [N [L; L; L; L]; N [L; L; L; L]; N [L; L; L; L];
+ N [L; L; L; L]]];
+ N [N [N [L; L; L; L]; N [L; L; ...]; ...]; ...]; ...]; ...];
+ ...]; ...]; ...]
+
+> [Building 5 8...done]
+val tree_5_8: tree =
+ N [N [N [N [N [N [N [N [L; L; L; L; L]; N [L; L; L; L; L]; N [L; L; L; L; L];
+ N [L; L; L; L; L]; N [L; L; L; L; L]];
+ N [N [L; L; L; L; L]; N [L; L; L; L; L]; N [L; L; L; L; L];
+ N [L; L; L; L; L]; N [L; L; L; L; L]];
+ N [N [L; L; L; L; L]; N [L; L; L; L; L]; N [L; L; L; L; L];
+ N [L; L; L; L; L]; N [L; L; L; L; L]]; N ...; ...]; ...];
+ ...]; ...]; ...]; ...]
+
+> [Building 6 8...done]
+val tree_6_8: tree =
+ N [N [N [N [N [N [N [N [L; L; L; L; L; L]; N [L; L; L; L; L; L];
+ N [L; L; L; L; L; L]; N [L; L; L; L; L; L];
+ N [L; L; L; L; L; L]; N [L; L; L; L; L; L]];
+ N [N [L; L; L; L; L; L]; N [L; L; L; L; L; L];
+ N [L; L; L; L; L; L]; N [L; L; L; L; L; L];
+ N [L; L; L; L; L; L]; N [L; L; L; L; L; L]];
+ N [N [L; L; L; L; L; L; ...]; ...]; ...]; ...]; ...]; ...];
+ ...]; ...]
+
+> [Building 5 3...done]
+val tree_5_3: tree =
+ N [N [N [L; L; L; L; L]; N [L; L; L; L; L]; N [L; L; L; L; L];
+ N [L; L; L; L; L]; N [L; L; L; L; L]];
+ N [N [L; L; L; L; L]; N [L; L; L; L; L]; N [L; L; L; L; L];
+ N [L; L; L; L; L]; N [L; L; L; L; L]];
+ N [N [L; L; L; L; L]; N [L; L; L; L; L]; N [L; L; L; L; L];
+ N [L; L; L; L; L]; N [L; L; L; L; L]]; N [N [L; L; L; L; ...]; ...];
+ ...]
+
+> > type X =
+ | Var of int
+ | Bop of int * X * X
+val generate: x: int -> X
+
+> val exps: X list =
+ [Bop (1, Var 0, Var 0); Var 2;
+ Bop (3, Bop (1, Var 0, Var 0), Bop (1, Var 0, Var 0)); Var 4;
+ Bop (5, Var 2, Bop (1, Var 0, Var 0)); Var 6;
+ Bop (7, Bop (3, Bop (1, Var 0, Var 0), Bop (1, Var 0, Var 0)), Var 2);
+ Var 8;
+ Bop (9, Var 4, Bop (3, Bop (1, Var 0, Var 0), Bop (1, Var 0, Var 0)));
+ Var 10;
+ Bop
+ (213, Var 106,
+ Bop
+ (71,
+ Bop
+ (35, Bop (17, Var 8, Bop (5, Var 2, Bop (1, Var 0, Var 0))),
+ Bop (11, ..., ...)), ...)); ...]
+
+> module Exprs =
+ val x1: X =
+ Bop
+ (213, Var 106,
+ Bop
+ (71,
+ Bop
+ (35, Bop (17, Var 8, Bop (5, Var 2, Bop (1, Var 0, Var 0))),
+ Bop
+ (11, Bop (5, Var 2, Bop (1, Var 0, Var 0)),
+ Bop (3, Bop (1, Var 0, Var 0), Bop (1, Var 0, Var 0)))),
+ Bop
+ (23,
+ Bop
+ (11, Bop (5, Var 2, Bop (1, Var 0, Var 0)),
+ Bop (3, Bop (1, Var 0, Var 0), Bop (1, Var 0, Var 0))),
+ Bop
+ (7, Bop (3, Bop (1, Var 0, Var 0), Bop (1, Var 0, Var 0)),
+ Var 2))))
+ val x2: X = Var 21342314
+ val x3: X = Var 3214
+ val x4: X = Bop (1231357, Var 615678, Var 410452)
+ val x5: X =
+ Bop
+ (5234547, Bop (2617273, Var 1308636, Var 872424),
+ Bop (1744849, Var 872424, Var 581616))
+ val x6: X =
+ Bop
+ (923759825, Var 461879912, Bop (307919941, Var 153959970, Var 102639980))
+ val x7: X = Var 2435234
+ val x8: X =
+ Bop
+ (12396777, Var 6198388,
+ Bop
+ (4132259,
+ Bop
+ (2066129, Var 1033064,
+ Bop
+ (688709, Var 344354,
+ Bop
+ (229569, Var 114784,
+ Bop
+ (76523,
+ Bop
+ (38261, Var 19130,
+ Bop
+ (12753, Var 6376,
+ Bop
+ (4251, Bop (2125, Var 1062, Var 708),
+ Bop (1417, Var 708, Var 472)))),
+ Bop
+ (25507,
+ Bop
+ (12753, Var 6376,
+ Bop
+ (4251, Bop (2125, Var 1062, Var 708),
+ Bop (1417, Var 708, Var 472))), Var 8502))))),
+ Bop
+ (1377419,
+ Bop
+ (688709, Var 344354,
+ Bop
+ (229569, Var 114784,
+ Bop
+ (76523,
+ Bop
+ (38261, Var 19130,
+ Bop
+ (12753, Var 6376,
+ Bop
+ (4251, Bop (2125, Var 1062, Var 708),
+ Bop (1417, Var 708, Var 472)))),
+ Bop (25507, ..., ...)))), ...)))
+ val x9: X =
+ Bop
+ (3333333, Var 1666666,
+ Bop
+ (1111111,
+ Bop
+ (555555, Bop (277777, Var 138888, Var 92592),
+ Bop (185185, Var 92592, Var 61728)), Var 370370))
+ val x10: X =
+ Bop
+ (1312311237, Var 656155618,
+ Bop
+ (437437079,
+ Bop
+ (218718539,
+ Bop
+ (109359269, Var 54679634,
+ Bop
+ (36453089, Var 18226544,
+ Bop
+ (12151029, Var 6075514,
+ Bop
+ (4050343,
+ Bop
+ (2025171, Bop (1012585, Var 506292, Var 337528),
+ Bop
+ (675057, Var 337528,
+ Bop
+ (225019,
+ Bop
+ (112509, Var 56254,
+ Bop
+ (37503,
+ Bop
+ (18751,
+ Bop
+ (9375,
+ Bop
+ (4687,
+ Bop
+ (2343,
+ Bop
+ (1171,
+ Bop
+ (585, Var 292,
+ Bop
+ (195,
+ Bop
+ (97, Var 48,
+ Var 32),
+ Bop
+ (65, Var 32,
+ Bop
+ (21, Var 10,
+ Bop
+ (7,
+ Bop
+ (3,
+ Bop
+ (1,
+ Var
+ 0,
+ Var
+ 0),
+ Bop
+ (1,
+ Var
+ 0,
+ Var
+ 0)),
+ Var 2))))),
+ Var 390),
+ Bop
+ (781, Var 390, Var 260)),
+ Var 1562), ...), ...), ...)),
+ ...))), ...)))), ...), ...))
+ val x11: X =
+ Bop
+ (2147483647,
+ Bop
+ (1073741823,
+ Bop
+ (536870911,
+ Bop
+ (268435455,
+ Bop
+ (134217727,
+ Bop
+ (67108863,
+ Bop
+ (33554431,
+ Bop
+ (16777215,
+ Bop
+ (8388607,
+ Bop
+ (4194303,
+ Bop
+ (2097151,
+ Bop
+ (1048575,
+ Bop
+ (524287,
+ Bop
+ (262143,
+ Bop
+ (131071,
+ Bop
+ (65535,
+ Bop
+ (32767,
+ Bop
+ (16383,
+ Bop
+ (8191,
+ Bop
+ (4095,
+ Bop
+ (2047,
+ Bop
+ (1023,
+ Bop
+ (511,
+ Bop
+ (255,
+ Bop
+ (127,
+ Bop
+ (63,
+ Bop
+ (31,
+ Bop
+ (15,
+ Bop
+ (7,
+ Bop
+ (3,
+ Bop
+ (1,
+ Var
+ 0,
+ Var
+ 0),
+ Bop
+ (1,
+ Var
+ 0,
+ Var
+ 0)),
+ Var
+ 2),
+ Bop
+ (5,
+ Var
+ 2,
+ Bop
+ (1,
+ Var
+ 0,
+ Var
+ 0))),
+ Var
+ 10),
+ Bop
+ (21,
+ Var
+ 10,
+ Bop
+ (7,
+ Bop
+ (3,
+ Bop
+ (1,
+ Var
+ 0,
+ Var
+ 0),
+ ...),
+ ...))),
+ ...),
+ ...),
+ ...),
+ ...),
+ ...), ...),
+ ...), ...), ...),
+ ...), ...), ...), ...),
+ ...), ...), ...), ...), ...), ...),
+ ...), ...), ...), ...), ...), ...)
+
+> type C =
+ new: x: string -> C
+ override ToString: unit -> string
+val c1: C =
+val csA: C[] =
+ [|; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ; ...|]
+val csB: C[] =
+ [|; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+ ; ;
+