Skip to content

Commit 917fa2d

Browse files
authored
Merge branch 'main' into ber.a/diagnosticData
2 parents 821e496 + 2e20f0e commit 917fa2d

File tree

492 files changed

+9250
-3332
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

492 files changed

+9250
-3332
lines changed

FSharp.Editor.sln

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.VS.FSI", "vsintegrat
1919
EndProject
2020
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.Editor.IntegrationTests", "vsintegration\tests\FSharp.Editor.IntegrationTests\FSharp.Editor.IntegrationTests.csproj", "{42BE0F2F-BC45-437B-851D-E88A83201339}"
2121
EndProject
22+
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Test.Utilities", "tests\FSharp.Test.Utilities\FSharp.Test.Utilities.fsproj", "{B7148170-93C5-4F2F-B31D-85316D3248CF}"
23+
EndProject
2224
Global
2325
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2426
Debug|Any CPU = Debug|Any CPU
@@ -73,6 +75,12 @@ Global
7375
{42BE0F2F-BC45-437B-851D-E88A83201339}.Proto|Any CPU.Build.0 = Debug|Any CPU
7476
{42BE0F2F-BC45-437B-851D-E88A83201339}.Release|Any CPU.ActiveCfg = Release|Any CPU
7577
{42BE0F2F-BC45-437B-851D-E88A83201339}.Release|Any CPU.Build.0 = Release|Any CPU
78+
{B7148170-93C5-4F2F-B31D-85316D3248CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
79+
{B7148170-93C5-4F2F-B31D-85316D3248CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
80+
{B7148170-93C5-4F2F-B31D-85316D3248CF}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
81+
{B7148170-93C5-4F2F-B31D-85316D3248CF}.Proto|Any CPU.Build.0 = Debug|Any CPU
82+
{B7148170-93C5-4F2F-B31D-85316D3248CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
83+
{B7148170-93C5-4F2F-B31D-85316D3248CF}.Release|Any CPU.Build.0 = Release|Any CPU
7684
EndGlobalSection
7785
GlobalSection(SolutionProperties) = preSolution
7886
HideSolutionNode = FALSE

azure-pipelines.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ stages:
142142
/p:PublishToSymbolServer=true
143143
/p:VisualStudioDropName=$(VisualStudioDropName)
144144
/p:GenerateSbom=true
145+
env:
146+
NativeToolsOnMachine: true
145147
- script: .\tests\EndToEndBuildTests\EndToEndBuildTests.cmd -c $(_BuildConfig)
146148
displayName: End to end build tests
147149
- task: PublishTestResults@2
@@ -335,6 +337,8 @@ stages:
335337
clean: true
336338

337339
- script: eng\CIBuild.cmd -compressallmetadata -configuration Release /p:FSharpLangVersion=preview
340+
env:
341+
NativeToolsOnMachine: true
338342
displayName: Build
339343

340344
- task: PublishBuildArtifacts@1
@@ -361,6 +365,8 @@ stages:
361365
clean: true
362366

363367
- script: eng\CIBuild.cmd -compressallmetadata -configuration Release /p:AdditionalFscCmdFlags=--strict-indentation+
368+
env:
369+
NativeToolsOnMachine: true
364370
displayName: Build
365371

366372
- task: PublishBuildArtifacts@1
@@ -418,9 +424,13 @@ stages:
418424

419425
# yes, this is miserable, but - https://github.com/dotnet/arcade/issues/13239
420426
- script: eng\CIBuild.cmd -compressallmetadata -configuration $(_configuration) -$(_testKind)
427+
env:
428+
NativeToolsOnMachine: true
421429
displayName: Build / Test
422430
condition: ne(variables['_testKind'], 'testIntegration')
423431
- script: eng\CIBuild.cmd -compressallmetadata -configuration $(_configuration) -$(_testKind)
432+
env:
433+
NativeToolsOnMachine: true
424434
displayName: Build / Integration Test
425435
continueOnError: true
426436
condition: eq(variables['_testKind'], 'testIntegration')
@@ -572,6 +582,7 @@ stages:
572582
clean: true
573583
- script: .\Build.cmd -c Release -pack
574584
env:
585+
NativeToolsOnMachine: true
575586
FSHARP_EXPERIMENTAL_FEATURES: $(_experimental_flag)
576587
- script: .\tests\EndToEndBuildTests\EndToEndBuildTests.cmd -c Release
577588
env:
@@ -702,6 +713,8 @@ stages:
702713
- script: dotnet --list-sdks
703714
displayName: Report dotnet SDK versions
704715
- script: .\Build.cmd $(_kind) -pack -c $(_BuildConfig)
716+
env:
717+
NativeToolsOnMachine: true
705718
displayName: Initial build and prepare packages.
706719
- script: $(Build.SourcesDirectory)/tests/AheadOfTime/Trimming/check.cmd
707720
displayName: Build, trim, publish and check the state of the trimmed app.

eng/Build.ps1

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -514,18 +514,13 @@ try {
514514
TryDownloadDotnetFrameworkSdk
515515

516516
$nativeTools = InitializeNativeTools
517+
517518
if (-not (Test-Path variable:NativeToolsOnMachine)) {
518-
$env:PERL5Path = Join-Path $nativeTools "perl\5.32.1.1\perl\bin\perl.exe"
519+
$env:PERL5Path = Join-Path $nativeTools "perl\5.38.0.1\perl\bin\perl.exe"
519520
write-host "variable:NativeToolsOnMachine = unset or false"
520521
$nativeTools
521522
write-host "Path = $env:PERL5Path"
522523
}
523-
else {
524-
$env:PERL5Path = Join-Path $nativeTools["perl"] "perl\bin\perl.exe"
525-
write-host "variable:NativeToolsOnMachine = $variable:NativeToolsOnMachine"
526-
$nativeTools.values
527-
write-host "Path = $env:PERL5Path"
528-
}
529524

530525
$dotnetPath = InitializeDotNetCli
531526
$env:DOTNET_ROOT = "$dotnetPath"
@@ -605,8 +600,15 @@ try {
605600
$env:FSCOREDLLPATH = "$ArtifactsDir\bin\fsc\$configuration\net472\FSharp.Core.dll"
606601
$env:LINK_EXE = "$RepoRoot\tests\fsharpqa\testenv\bin\link\link.exe"
607602
$env:OSARCH = $env:PROCESSOR_ARCHITECTURE
608-
write-host "Exec-Console $env:PERL5Path"
609-
Exec-Console $env:PERL5Path """$RepoRoot\tests\fsharpqa\testenv\bin\runall.pl"" -resultsroot ""$resultsRoot"" -results $resultsLog -log $errorLog -fail $failLog -cleanup:no -procs:$env:NUMBER_OF_PROCESSORS"
603+
604+
if (-not (Test-Path variable:NativeToolsOnMachine)) {
605+
Exec-Console $env:PERL5Path """$RepoRoot\tests\fsharpqa\testenv\bin\runall.pl"" -resultsroot ""$resultsRoot"" -results $resultsLog -log $errorLog -fail $failLog -cleanup:no -procs:$env:NUMBER_OF_PROCESSORS"
606+
}
607+
else
608+
{
609+
Exec-Console "perl.exe" """$RepoRoot\tests\fsharpqa\testenv\bin\runall.pl"" -resultsroot ""$resultsRoot"" -results $resultsLog -log $errorLog -fail $failLog -cleanup:no -procs:$env:NUMBER_OF_PROCESSORS"
610+
}
611+
610612
write-host "Exec-Console finished"
611613
Pop-Location
612614
}

eng/Version.Details.xml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Dependencies>
33
<ProductDependencies>
4-
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.23407.1">
4+
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.23414.1">
55
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
6-
<Sha>b0cef4cffdd83138fa76c8a6430f7f8c2aa09f07</Sha>
6+
<Sha>45f5554ac6813e1e155c47fd80ec146c684f65e8</Sha>
77
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
88
</Dependency>
99
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.7.0-preview-23217-02">
@@ -29,19 +29,14 @@
2929
</Dependency>
3030
</ProductDependencies>
3131
<ToolsetDependencies>
32-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23402.2">
32+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23419.1">
3333
<Uri>https://github.com/dotnet/arcade</Uri>
34-
<Sha>3addc5d978d01e864792d2c6bce0b50ec105f857</Sha>
34+
<Sha>385129cbc980a515ddee2fa56f6b16f3183ed9bc</Sha>
3535
<SourceBuild RepoName="arcade" ManagedOnly="true" />
3636
</Dependency>
37-
<Dependency Name="Microsoft.SourceLink.GitHub" Version="8.0.0-beta.23361.2" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
38-
<Uri>https://github.com/dotnet/sourcelink</Uri>
39-
<Sha>d2e046aec870a5a7601cc51c5607f34463cc2d42</Sha>
40-
<SourceBuild RepoName="sourcelink" ManagedOnly="true" />
41-
</Dependency>
42-
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23381.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
37+
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23418.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
4338
<Uri>https://github.com/dotnet/xliff-tasks</Uri>
44-
<Sha>d3553ca27fb1c128f302f52b73c0079e65d62ea8</Sha>
39+
<Sha>bb654cd4736e7e8cb99f1c355ce2b8f0a686ba74</Sha>
4540
<SourceBuild RepoName="xliff-tasks" ManagedOnly="true" />
4641
</Dependency>
4742
</ToolsetDependencies>

eng/common/SetupNugetSources.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ if ($dotnet31Source -ne $null) {
153153
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
154154
}
155155

156-
$dotnetVersions = @('5','6','7')
156+
$dotnetVersions = @('5','6','7','8')
157157

158158
foreach ($dotnetVersion in $dotnetVersions) {
159159
$feedPrefix = "dotnet" + $dotnetVersion;

eng/common/SetupNugetSources.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ if [ "$?" == "0" ]; then
105105
PackageSources+=('dotnet3.1-internal-transport')
106106
fi
107107

108-
DotNetVersions=('5' '6' '7')
108+
DotNetVersions=('5' '6' '7' '8')
109109

110110
for DotNetVersion in ${DotNetVersions[@]} ; do
111111
FeedPrefix="dotnet${DotNetVersion}";
32 Bytes
Binary file not shown.

eng/common/native/init-compiler.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ if [ -z "$CLR_CC" ]; then
6363
# Set default versions
6464
if [ -z "$majorVersion" ]; then
6565
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
66-
if [ "$compiler" = "clang" ]; then versions="16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5"
66+
if [ "$compiler" = "clang" ]; then versions="17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5"
6767
elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi
6868

6969
for version in $versions; do

eng/common/native/init-distro-rid.sh

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
#!/usr/bin/env bash
2+
3+
# getNonPortableDistroRid
4+
#
5+
# Input:
6+
# targetOs: (str)
7+
# targetArch: (str)
8+
# rootfsDir: (str)
9+
#
10+
# Return:
11+
# non-portable rid
12+
getNonPortableDistroRid()
13+
{
14+
local targetOs="$1"
15+
local targetArch="$2"
16+
local rootfsDir="$3"
17+
local nonPortableRid=""
18+
19+
if [ "$targetOs" = "linux" ]; then
20+
if [ -e "${rootfsDir}/etc/os-release" ]; then
21+
source "${rootfsDir}/etc/os-release"
22+
23+
if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" ]]; then
24+
# remove the last version digit
25+
VERSION_ID="${VERSION_ID%.*}"
26+
fi
27+
28+
if [[ "${VERSION_ID:-}" =~ ^([[:digit:]]|\.)+$ ]]; then
29+
nonPortableRid="${ID}.${VERSION_ID}-${targetArch}"
30+
else
31+
# Rolling release distros either do not set VERSION_ID, set it as blank or
32+
# set it to non-version looking string (such as TEMPLATE_VERSION_ID on ArchLinux);
33+
# so omit it here to be consistent with everything else.
34+
nonPortableRid="${ID}-${targetArch}"
35+
fi
36+
37+
elif [ -e "${rootfsDir}/android_platform" ]; then
38+
source "$rootfsDir"/android_platform
39+
nonPortableRid="$RID"
40+
fi
41+
fi
42+
43+
if [ "$targetOs" = "freebsd" ]; then
44+
# $rootfsDir can be empty. freebsd-version is shell script and it should always work.
45+
__freebsd_major_version=$($rootfsDir/bin/freebsd-version | { read v; echo "${v%%.*}"; })
46+
nonPortableRid="freebsd.$__freebsd_major_version-${targetArch}"
47+
elif command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then
48+
__android_sdk_version=$(getprop ro.build.version.sdk)
49+
nonPortableRid="android.$__android_sdk_version-${targetArch}"
50+
elif [ "$targetOs" = "illumos" ]; then
51+
__uname_version=$(uname -v)
52+
case "$__uname_version" in
53+
omnios-*)
54+
__omnios_major_version=$(echo "${__uname_version:8:2}")
55+
nonPortableRid=omnios."$__omnios_major_version"-"$targetArch"
56+
;;
57+
joyent_*)
58+
__smartos_major_version=$(echo "${__uname_version:7:4}")
59+
nonPortableRid=smartos."$__smartos_major_version"-"$targetArch"
60+
;;
61+
illumos_*)
62+
nonPortableRid=openindiana-"$targetArch"
63+
;;
64+
esac
65+
elif [ "$targetOs" = "solaris" ]; then
66+
__uname_version=$(uname -v)
67+
__solaris_major_version=$(echo "${__uname_version%.*}")
68+
nonPortableRid=solaris."$__solaris_major_version"-"$targetArch"
69+
elif [ "$targetOs" = "haiku" ]; then
70+
__uname_release=$(uname -r)
71+
nonPortableRid=haiku.r"$__uname_release"-"$targetArch"
72+
fi
73+
74+
echo "$(echo $nonPortableRid | tr '[:upper:]' '[:lower:]')"
75+
}
76+
77+
# initDistroRidGlobal
78+
#
79+
# Input:
80+
# os: (str)
81+
# arch: (str)
82+
# rootfsDir?: (nullable:string)
83+
#
84+
# Return:
85+
# None
86+
#
87+
# Notes:
88+
#
89+
# It is important to note that the function does not return anything, but it
90+
# exports the following variables on success:
91+
#
92+
# __DistroRid : Non-portable rid of the target platform.
93+
# __PortableTargetOS : OS-part of the portable rid that corresponds to the target platform.
94+
#
95+
initDistroRidGlobal()
96+
{
97+
local targetOs="$1"
98+
local targetArch="$2"
99+
local rootfsDir=""
100+
if [ "$#" -ge 3 ]; then
101+
rootfsDir="$3"
102+
fi
103+
104+
if [ -n "${rootfsDir}" ]; then
105+
# We may have a cross build. Check for the existence of the rootfsDir
106+
if [ ! -e "${rootfsDir}" ]; then
107+
echo "Error rootfsDir has been passed, but the location is not valid."
108+
exit 1
109+
fi
110+
fi
111+
112+
__DistroRid=$(getNonPortableDistroRid "${targetOs}" "${targetArch}" "${rootfsDir}")
113+
114+
if [ -z "${__PortableTargetOS:-}" ]; then
115+
__PortableTargetOS="$targetOs"
116+
117+
STRINGS="$(command -v strings || true)"
118+
if [ -z "$STRINGS" ]; then
119+
STRINGS="$(command -v llvm-strings || true)"
120+
fi
121+
122+
# Check for musl-based distros (e.g Alpine Linux, Void Linux).
123+
if "${rootfsDir}/usr/bin/ldd" --version 2>&1 | grep -q musl ||
124+
( [ -n "$STRINGS" ] && "$STRINGS" "${rootfsDir}/usr/bin/ldd" 2>&1 | grep -q musl ); then
125+
__PortableTargetOS="linux-musl"
126+
fi
127+
fi
128+
129+
export __DistroRid __PortableTargetOS
130+
}

eng/common/native/init-os-and-arch.sh

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#!/usr/bin/env bash
2+
3+
# Use uname to determine what the OS is.
4+
OSName=$(uname -s | tr '[:upper:]' '[:lower:]')
5+
6+
if command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then
7+
OSName="android"
8+
fi
9+
10+
case "$OSName" in
11+
freebsd|linux|netbsd|openbsd|sunos|android|haiku)
12+
os="$OSName" ;;
13+
darwin)
14+
os=osx ;;
15+
*)
16+
echo "Unsupported OS $OSName detected!"
17+
exit 1 ;;
18+
esac
19+
20+
# On Solaris, `uname -m` is discouraged, see https://docs.oracle.com/cd/E36784_01/html/E36870/uname-1.html
21+
# and `uname -p` returns processor type (e.g. i386 on amd64).
22+
# The appropriate tool to determine CPU is isainfo(1) https://docs.oracle.com/cd/E36784_01/html/E36870/isainfo-1.html.
23+
if [ "$os" = "sunos" ]; then
24+
if uname -o 2>&1 | grep -q illumos; then
25+
os="illumos"
26+
else
27+
os="solaris"
28+
fi
29+
CPUName=$(isainfo -n)
30+
else
31+
# For the rest of the operating systems, use uname(1) to determine what the CPU is.
32+
CPUName=$(uname -m)
33+
fi
34+
35+
case "$CPUName" in
36+
arm64|aarch64)
37+
arch=arm64
38+
;;
39+
40+
loongarch64)
41+
arch=loongarch64
42+
;;
43+
44+
riscv64)
45+
arch=riscv64
46+
;;
47+
48+
amd64|x86_64)
49+
arch=x64
50+
;;
51+
52+
armv7l|armv8l)
53+
if (NAME=""; . /etc/os-release; test "$NAME" = "Tizen"); then
54+
arch=armel
55+
else
56+
arch=arm
57+
fi
58+
;;
59+
60+
armv6l)
61+
arch=armv6
62+
;;
63+
64+
i[3-6]86)
65+
echo "Unsupported CPU $CPUName detected, build might not succeed!"
66+
arch=x86
67+
;;
68+
69+
s390x)
70+
arch=s390x
71+
;;
72+
73+
ppc64le)
74+
arch=ppc64le
75+
;;
76+
*)
77+
echo "Unknown CPU $CPUName detected!"
78+
exit 1
79+
;;
80+
esac

0 commit comments

Comments
 (0)