diff --git a/.fantomasignore b/.fantomasignore
index e9d598ff22c..5abcb43bf4f 100644
--- a/.fantomasignore
+++ b/.fantomasignore
@@ -12,8 +12,7 @@ vsintegration/*
!vsintegration/tests/FSharp.Editor.Tests
artifacts/
-# Explicitly unformatted implementation files
-
+# Explicitly unformatted implementation
src/Compiler/Checking/AccessibilityLogic.fs
src/Compiler/Checking/AttributeChecking.fs
src/Compiler/Checking/AugmentWithHashCompare.fs
diff --git a/.gitignore b/.gitignore
index 78418b2b36b..8b2cb143e3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -68,6 +68,7 @@ ossreadme*.txt
*.fsproj.user
*.vbproj.user
*.sln.DotSettings.user
+*.props.user
launchSettings.json
*.log
*.jrs
diff --git a/Directory.Build.props b/Directory.Build.props
index 0d93c757059..e77076d1425 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,17 +1,38 @@
-
-
-
-
-
- true
+ We also disable arcade and reset certain artifacts and compiler paths to use default ones
+ All settings below can be overriden via CLI switches if needed. -->
+
+
+ true
+
+
+
+
+
+ false
+ true
+ true
+ $(MSBuildThisFileDirectory)artifacts/
+ $(ArtifactsDir)/bin/$(MSBuildProjectName)/$(Configuration)/
+ $(ArtifactsDir)obj/$(MSBuildProjectName)/$(Configuration)/
+ $(ArtifactsDir)/bin/fslex/$(Configuration)/net7.0/fslex.dll
+ $(ArtifactsDir)/bin/fsyacc/$(Configuration)/net7.0/fsyacc.dll
+ $(OtherFlags) --test:ParallelCheckingWithSignatureFilesOn
+
+
+
+
+
diff --git a/FSharp.Compiler.Service.sln b/FSharp.Compiler.Service.sln
index 4a303b158a0..923cc168cc0 100644
--- a/FSharp.Compiler.Service.sln
+++ b/FSharp.Compiler.Service.sln
@@ -29,17 +29,36 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "Benchmarks",
tests\benchmarks\FCSBenchmarks\SmokeTestAllBenchmarks.ps1 = tests\benchmarks\FCSBenchmarks\SmokeTestAllBenchmarks.ps1
EndProjectSection
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HistoricalBenchmark", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.fsproj", "{35F5F1C5-AE4F-4B5A-8D94-1AF708724FD5}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "HistoricalBenchmark", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.fsproj", "{35F5F1C5-AE4F-4B5A-8D94-1AF708724FD5}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Benchmarks", "tests\benchmarks\FCSBenchmarks\CompilerServiceBenchmarks\FSharp.Compiler.Benchmarks.fsproj", "{C1950E28-1CB7-4DEC-BB3A-8A0443A17282}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Benchmarks", "tests\benchmarks\FCSBenchmarks\CompilerServiceBenchmarks\FSharp.Compiler.Benchmarks.fsproj", "{C1950E28-1CB7-4DEC-BB3A-8A0443A17282}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HistoricalBenchmark.Runner", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.Runner\HistoricalBenchmark.Runner.fsproj", "{07CD957A-3C31-4F75-A735-16CE72E1BD71}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "HistoricalBenchmark.Runner", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.Runner\HistoricalBenchmark.Runner.fsproj", "{07CD957A-3C31-4F75-A735-16CE72E1BD71}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{DD4D4A7E-D519-4409-89DA-16DCA3EF80AA}"
ProjectSection(SolutionItems) = preProject
src\Compiler\FSComp.txt = src\Compiler\FSComp.txt
+ Directory.Build.props = Directory.Build.props
+ Directory.Build.targets = Directory.Build.targets
+ global.json = global.json
EndProjectSection
EndProject
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsc", "src\fsc\fscProject\fsc.fsproj", "{A6995088-3C1D-42BC-B3DD-72B1EEAB23F4}"
+EndProject
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsi", "src\fsi\fsiProject\fsi.fsproj", "{9858ED8A-3889-4B89-BF31-3105B594CB45}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fslex", "buildtools\fslex\fslex.fsproj", "{E7D145CD-ACE4-492D-B9A1-1B4F8560BB3B}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "fsyacc", "buildtools\fsyacc\fsyacc.fsproj", "{D63BBEE6-DA15-44B6-95DC-CCC50737A441}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "AssemblyCheck", "buildtools\AssemblyCheck\AssemblyCheck.fsproj", "{D7428217-FC36-4754-9AC1-85402C0940EF}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build", "src\FSharp.Build\FSharp.Build.fsproj", "{F7A87089-C02E-4EF1-B9AE-6C4EC6407BD1}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core", "src\FSharp.Core\FSharp.Core.fsproj", "{6A61305F-9C5A-4FC1-869A-2CFFBA45A328}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Interactive.Settings", "src\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{AF887C2E-640D-4CD6-A0BD-88AE1517797D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -86,6 +105,38 @@ Global
{07CD957A-3C31-4F75-A735-16CE72E1BD71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07CD957A-3C31-4F75-A735-16CE72E1BD71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07CD957A-3C31-4F75-A735-16CE72E1BD71}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A6995088-3C1D-42BC-B3DD-72B1EEAB23F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A6995088-3C1D-42BC-B3DD-72B1EEAB23F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A6995088-3C1D-42BC-B3DD-72B1EEAB23F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A6995088-3C1D-42BC-B3DD-72B1EEAB23F4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9858ED8A-3889-4B89-BF31-3105B594CB45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9858ED8A-3889-4B89-BF31-3105B594CB45}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9858ED8A-3889-4B89-BF31-3105B594CB45}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9858ED8A-3889-4B89-BF31-3105B594CB45}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E7D145CD-ACE4-492D-B9A1-1B4F8560BB3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E7D145CD-ACE4-492D-B9A1-1B4F8560BB3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E7D145CD-ACE4-492D-B9A1-1B4F8560BB3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E7D145CD-ACE4-492D-B9A1-1B4F8560BB3B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D63BBEE6-DA15-44B6-95DC-CCC50737A441}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D63BBEE6-DA15-44B6-95DC-CCC50737A441}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D63BBEE6-DA15-44B6-95DC-CCC50737A441}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D63BBEE6-DA15-44B6-95DC-CCC50737A441}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D7428217-FC36-4754-9AC1-85402C0940EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D7428217-FC36-4754-9AC1-85402C0940EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D7428217-FC36-4754-9AC1-85402C0940EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D7428217-FC36-4754-9AC1-85402C0940EF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F7A87089-C02E-4EF1-B9AE-6C4EC6407BD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F7A87089-C02E-4EF1-B9AE-6C4EC6407BD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F7A87089-C02E-4EF1-B9AE-6C4EC6407BD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F7A87089-C02E-4EF1-B9AE-6C4EC6407BD1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6A61305F-9C5A-4FC1-869A-2CFFBA45A328}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6A61305F-9C5A-4FC1-869A-2CFFBA45A328}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6A61305F-9C5A-4FC1-869A-2CFFBA45A328}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6A61305F-9C5A-4FC1-869A-2CFFBA45A328}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AF887C2E-640D-4CD6-A0BD-88AE1517797D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AF887C2E-640D-4CD6-A0BD-88AE1517797D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AF887C2E-640D-4CD6-A0BD-88AE1517797D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AF887C2E-640D-4CD6-A0BD-88AE1517797D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/FSharpBuild.Directory.Build.props b/FSharpBuild.Directory.Build.props
index 604684fb4fb..d0b155bb410 100644
--- a/FSharpBuild.Directory.Build.props
+++ b/FSharpBuild.Directory.Build.props
@@ -1,7 +1,7 @@
-
-
+
+
true
@@ -13,6 +13,10 @@
true
+
+ false
+
+
$(FSCoreShippedVersion)
diff --git a/FSharpBuild.Directory.Build.targets b/FSharpBuild.Directory.Build.targets
index 27d4b961e46..17802630dc6 100644
--- a/FSharpBuild.Directory.Build.targets
+++ b/FSharpBuild.Directory.Build.targets
@@ -1,9 +1,9 @@
-
-
-
-
+
+
+
+
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index f47a73160ee..f0019881021 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -524,7 +524,7 @@ stages:
# Run Build with Fsharp Experimental Features
# Possible change: --times:$(Build.SourcesDirectory)/artifacts/log/Release/compiler_timing.csv
- # Plain build Windows
+ # Plain FCS build Windows
- job: Plain_Build_Windows
pool:
name: $(DncEngPublicBuildPool)
@@ -535,8 +535,6 @@ stages:
steps:
- checkout: self
clean: true
- - script: .\Build.cmd
- displayName: Initial build
- script: dotnet --list-sdks
displayName: Report dotnet SDK versions
- task: UseDotNet@2
@@ -547,17 +545,13 @@ stages:
includePreviewVersions: true
workingDirectory: $(Build.SourcesDirectory)
installationPath: $(Agent.ToolsDirectory)/dotnet
- - script: dotnet build .\FSharp.sln /bl:\"artifacts/log/$(_BuildConfig)/RegularBuild.binlog\"
- env:
- DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
- displayName: Regular rebuild of FSharp.sln
- script: dotnet build .\FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
workingDirectory: $(Build.SourcesDirectory)
- env:
- DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
displayName: Regular rebuild of FSharp.Compiler.Service.sln
+ continueOnError: true
+ condition: always()
- # Plain build Linux
+ # Plain FCS build Linux
- job: Plain_Build_Linux
pool:
vmImage: $(UbuntuMachineQueueName)
@@ -567,8 +561,6 @@ stages:
steps:
- checkout: self
clean: true
- - script: ./build.sh
- displayName: Initial build
- script: dotnet --list-sdks
displayName: Report dotnet SDK versions
- task: UseDotNet@2
@@ -579,17 +571,13 @@ stages:
includePreviewVersions: true
workingDirectory: $(Build.SourcesDirectory)
installationPath: $(Agent.ToolsDirectory)/dotnet
- - script: dotnet build ./FSharp.sln /bl:\"artifacts/log/$(_BuildConfig)/RegularBuild.binlog\"
- env:
- DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
- displayName: Regular rebuild of FSharp.sln
- script: dotnet build ./FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
workingDirectory: $(Build.SourcesDirectory)
- env:
- DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
displayName: Regular rebuild of FSharp.Compiler.Service.sln
+ continueOnError: true
+ condition: always()
- # Plain build Mac
+ # Plain FCS build Mac
- job: Plain_Build_MacOS
pool:
vmImage: macos-11
@@ -599,8 +587,6 @@ stages:
steps:
- checkout: self
clean: true
- - script: ./build.sh
- displayName: Initial build
- script: dotnet --list-sdks
displayName: Report dotnet SDK versions
- task: UseDotNet@2
@@ -611,15 +597,11 @@ stages:
includePreviewVersions: true
workingDirectory: $(Build.SourcesDirectory)
installationPath: $(Agent.ToolsDirectory)/dotnet
- - script: dotnet build ./FSharp.sln /bl:\"artifacts/log/$(_BuildConfig)/RegularBuild.binlog\"
- env:
- DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
- displayName: Regular rebuild of FSharp.sln
- script: dotnet build ./FSharp.Compiler.Service.sln /bl:\"artifacts/log/$(_BuildConfig)/ServiceRegularBuild.binlog\"
workingDirectory: $(Build.SourcesDirectory)
- env:
- DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
displayName: Regular rebuild of FSharp.Compiler.Service.sln
+ continueOnError: true
+ condition: always()
# Test trimming on Windows
- job: Build_And_Test_Trimming_Windows
diff --git a/buildtools/AssemblyCheck/AssemblyCheck.fsproj b/buildtools/AssemblyCheck/AssemblyCheck.fsproj
index d82763ddc2e..d73a74cc8c4 100644
--- a/buildtools/AssemblyCheck/AssemblyCheck.fsproj
+++ b/buildtools/AssemblyCheck/AssemblyCheck.fsproj
@@ -14,8 +14,12 @@
-
+
+
+
+
+
diff --git a/buildtools/buildtools.proj b/buildtools/buildtools.proj
index 7ac48ba2a37..5812bf8869b 100644
--- a/buildtools/buildtools.proj
+++ b/buildtools/buildtools.proj
@@ -3,6 +3,7 @@
Debug
true
+ $(NoWarn);NU1504
diff --git a/buildtools/fslex/fslex.fsproj b/buildtools/fslex/fslex.fsproj
index b069eb6d53e..f4ae4141ee9 100644
--- a/buildtools/fslex/fslex.fsproj
+++ b/buildtools/fslex/fslex.fsproj
@@ -21,8 +21,12 @@
-
+
+
+
+
+
diff --git a/buildtools/fsyacc/fsyacc.fsproj b/buildtools/fsyacc/fsyacc.fsproj
index eccbfb76b07..c0bcdd4e093 100644
--- a/buildtools/fsyacc/fsyacc.fsproj
+++ b/buildtools/fsyacc/fsyacc.fsproj
@@ -21,8 +21,12 @@
-
+
+
+
+
+
diff --git a/eng/Versions.props b/eng/Versions.props
index fc23526e71a..c0b7638e585 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -82,6 +82,14 @@
https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json;
https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk/nuget/v3/index.json;
https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7-transport/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk-archived/nuget/v3/index.json;
+ https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl-archived/nuget/v3/index.json;
+
+
+ TargetFramework=net7.0
+ compile
+
+
+ TargetFramework=net7.0
+ compile
+
+
+ TargetFramework=net7.0
+ compile
+
+
+
diff --git a/src/FSharp.Build/FSharp.Build.fsproj b/src/FSharp.Build/FSharp.Build.fsproj
index 027763a23a5..ff97e84dad5 100644
--- a/src/FSharp.Build/FSharp.Build.fsproj
+++ b/src/FSharp.Build/FSharp.Build.fsproj
@@ -12,9 +12,7 @@
$(DefineConstants);LOCALIZATION_FSBUILD
NU1701;FS0075
true
- 5.0
- 6.0
- 6.0
+ 7.0
Debug;Release;Proto
@@ -22,7 +20,11 @@
false
true
- false
+
+
+
+ $(ArtifactsDir)/bin/$(MSBuildProjectName)/$(Configuration)/
+ $(ArtifactsDir)obj/$(MSBuildProjectName)/$(Configuration)/
@@ -63,10 +65,14 @@
-
+
+
+
+
+
diff --git a/src/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj b/src/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
index c08df3ef8f9..32843bd4b13 100644
--- a/src/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
+++ b/src/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
@@ -14,6 +14,12 @@
false
+
+
+ $(ArtifactsDir)/bin/$(MSBuildProjectName)/$(Configuration)/
+ $(ArtifactsDir)obj/$(MSBuildProjectName)/$(Configuration)/
+
+
diff --git a/src/FSharp.Core/FSharp.Core.fsproj b/src/FSharp.Core/FSharp.Core.fsproj
index f490c9cccfb..396618bb65d 100644
--- a/src/FSharp.Core/FSharp.Core.fsproj
+++ b/src/FSharp.Core/FSharp.Core.fsproj
@@ -44,6 +44,12 @@
false
+
+
+ $(ArtifactsDir)/bin/$(MSBuildProjectName)/$(Configuration)/
+ $(ArtifactsDir)obj/$(MSBuildProjectName)/$(Configuration)/
+
+
true
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index a24668a9ce4..91c969b0ec6 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -7,4 +7,9 @@
portable
+
+
+
+
+
diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
index f2b2d6e0193..d6201c10647 100644
--- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
+++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
@@ -4,7 +4,7 @@
net472;net7.0
- net7.0
+ net7.0
Library
false
true
@@ -19,8 +19,6 @@
$(DefineConstants);DEBUG
true
-
-
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 d4d24ac98ec..eb9294585d9 100644
--- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
+++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
@@ -4,7 +4,7 @@
Exe
net472;net7.0
- net7.0
+ net7.0
-
+