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 - +