diff --git a/NuGet.config b/NuGet.config
index fe26d5228687..3e4c809db8a0 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -12,9 +12,6 @@
-
-
-
diff --git a/eng/Version.Details.props b/eng/Version.Details.props
index b61b6b094ada..db9508d7ed82 100644
--- a/eng/Version.Details.props
+++ b/eng/Version.Details.props
@@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props
- 11.0.0-beta.26365.101
- 11.0.0-beta.26365.101
- 0.11.5-preview.26365.101
- 11.0.0-beta.26365.101
- 11.0.0-preview.7.26365.101
- 11.0.0-preview.7.26365.101
- 11.0.0-preview.7.26365.101
- 11.0.100-preview.7.26365.101
- 11.0.0-preview.7.26365.101
- 11.0.100-preview.7.26365.101
+ 11.0.0-beta.26426.102
+ 11.0.0-beta.26426.102
+ 0.11.5-preview.26426.102
+ 11.0.0-beta.26426.102
+ 11.0.0-rc.2.26426.102
+ 11.0.0-rc.2.26426.102
+ 11.0.0-rc.2.26426.102
+ 11.0.100-rc.2.26426.102
+ 11.0.0-rc.2.26426.102
+ 11.0.100-rc.2.26426.102
26.0.11017
26.5.10315
@@ -30,7 +30,7 @@ This file should be imported by eng/Versions.props
26.5.10315
27.0.10241-xcode27.0
- 11.0.0-prerelease.26370.1
+ 11.0.0-prerelease.26217.1
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 7c435dd18674..58eec86f4dc3 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,29 +1,29 @@
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
@@ -78,25 +78,25 @@
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
https://github.com/dotnet/xharness
866707736d49c2323628744716cda2475b3af9ee
-
+
https://github.com/dotnet/dotnet
- cb8306a63c5cf24e9381108a3a9eb58907fd0f60
+ da377e2093fdde18a0d36429a2644638d07685f6
diff --git a/eng/common/Get-GitHubAppToken.ps1 b/eng/common/Get-GitHubAppToken.ps1
new file mode 100644
index 000000000000..9c7e3dcd6ac4
--- /dev/null
+++ b/eng/common/Get-GitHubAppToken.ps1
@@ -0,0 +1,164 @@
+# Mints a short-lived GitHub App installation access token by signing a JWT
+# with a private key stored in Azure Key Vault (RSA, RS256). The signed JWT is
+# exchanged with the GitHub API for a token scoped to a single installation.
+#
+# Requirements:
+# - A GitHub App whose private key has been uploaded into Key Vault as an RSA
+# key (the PEM converted to a Key Vault *key*, NOT stored as a secret).
+# - The caller (the federated Azure service connection used to run this script)
+# must have the `Key Vault Crypto User` role (or at minimum the `Sign`
+# action) on that key.
+# - The App must be installed on the target organization/account
+# (`InstallationOwner`) with the permissions/repositories it needs.
+#
+# Installation tokens (ghs_*) are exempt from the enterprise classic-PAT
+# lifetime policy, which is why this replaces the long-lived PAT.
+
+[CmdletBinding()]
+param(
+ # Name of the Key Vault that holds the GitHub App's RSA signing key.
+ [Parameter(Mandatory = $true)]
+ [string] $KeyVaultName,
+
+ # Name of the RSA key inside the Key Vault (the App's private key).
+ [Parameter(Mandatory = $true)]
+ [string] $KeyName,
+
+ # The GitHub App's Client ID (the value to put in the `iss` JWT claim).
+ [Parameter(Mandatory = $true)]
+ [string] $AppClientId,
+
+ # Login of the organization or user account whose installation we should
+ # mint the token for (e.g. `dotnet`, `microsoft`).
+ [Parameter(Mandatory = $true)]
+ [string] $InstallationOwner,
+
+ # Optional Azure DevOps pipeline variable name to set with the installation
+ # token (marked as a secret). When not specified, the token is written to
+ # stdout instead.
+ [Parameter(Mandatory = $false)]
+ [string] $OutputVariableName
+)
+
+$ErrorActionPreference = 'Stop'
+$PSNativeCommandUseErrorActionPreference = $true
+
+. $PSScriptRoot\pipeline-logging-functions.ps1
+
+function ConvertTo-Base64Url([byte[]] $bytes) {
+ return [Convert]::ToBase64String($bytes).TrimEnd('=').Replace('+', '-').Replace('/', '_')
+}
+
+# Build JWT header and payload. Use [ordered] hashtables so JSON
+# serialization is deterministic.
+$jwtHeader = [ordered]@{
+ alg = 'RS256'
+ typ = 'JWT'
+}
+$now = [System.DateTimeOffset]::UtcNow
+$jwtPayload = [ordered]@{
+ iat = $now.AddMinutes(-1).ToUnixTimeSeconds()
+ exp = $now.AddMinutes(5).ToUnixTimeSeconds()
+ iss = $AppClientId
+}
+
+$headerEncoded = ConvertTo-Base64Url ([System.Text.Encoding]::UTF8.GetBytes(($jwtHeader | ConvertTo-Json -Compress)))
+$payloadEncoded = ConvertTo-Base64Url ([System.Text.Encoding]::UTF8.GetBytes(($jwtPayload | ConvertTo-Json -Compress)))
+$signingInput = "$headerEncoded.$payloadEncoded"
+
+# Key Vault `sign` expects the *digest* (base64), not the raw bytes.
+$sha256 = [System.Security.Cryptography.SHA256]::Create()
+$digestBytes = $sha256.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($signingInput))
+$digestBase64 = [Convert]::ToBase64String($digestBytes)
+
+Write-Host "Signing JWT with key '$KeyName' in vault '$KeyVaultName'..."
+$previousNativeCommandErrorPreference = $PSNativeCommandUseErrorActionPreference
+try {
+ # Azure CLI can emit non-fatal Python warnings to stderr even when signing succeeds.
+ # Use the exit code to determine success for this invocation.
+ $PSNativeCommandUseErrorActionPreference = $false
+ $signatureBase64 = az keyvault key sign `
+ --vault-name $KeyVaultName `
+ --name $KeyName `
+ --algorithm RS256 `
+ --digest $digestBase64 `
+ --query signature `
+ --output tsv `
+ --only-show-errors
+ $signExitCode = $LASTEXITCODE
+}
+catch {
+ Write-PipelineTelemetryError -Category 'Build' -Message "Failed to sign the JWT via Key Vault (key '$KeyName', vault '$KeyVaultName'): $_. Verify the service connection identity has the 'Key Vault Crypto User' role (Sign action) on the key."
+ exit 1
+}
+finally {
+ $PSNativeCommandUseErrorActionPreference = $previousNativeCommandErrorPreference
+}
+if ($signExitCode -ne 0 -or [string]::IsNullOrWhiteSpace($signatureBase64)) {
+ Write-PipelineTelemetryError -Category 'Build' -Message "'az keyvault key sign' exited with code $signExitCode for key '$KeyName' in vault '$KeyVaultName'. Verify the service connection identity has the 'Key Vault Crypto User' role (Sign action) on the key."
+ exit 1
+}
+$signatureUrl = $signatureBase64.Trim().TrimEnd('=').Replace('+', '-').Replace('/', '_')
+$jwt = "$signingInput.$signatureUrl"
+
+$headers = @{
+ Authorization = "Bearer $jwt"
+ 'X-GitHub-Api-Version' = '2022-11-28'
+ Accept = 'application/vnd.github+json'
+ 'User-Agent' = 'dotnet-arcade-onelocbuild'
+}
+
+Write-Host "Looking up installation for '$InstallationOwner'..."
+try {
+ $installations = @()
+ $page = 1
+ do {
+ # Assign the response before wrapping it in @(). PowerShell otherwise
+ # preserves a top-level JSON array as one nested pipeline object.
+ $pageResponse = Invoke-RestMethod `
+ -Uri "https://api.github.com/app/installations?per_page=100&page=$page" `
+ -Headers $headers `
+ -Method Get
+ $pageInstallations = @($pageResponse)
+ $installations += $pageInstallations
+ $page++
+ } while ($pageInstallations.Count -eq 100)
+}
+catch {
+ Write-PipelineTelemetryError -Category 'Build' -Message "Failed to list GitHub App installations: $_. The signed JWT may be invalid or the App's Client ID ('$AppClientId') may be incorrect."
+ exit 1
+}
+$matchingInstallations = @($installations | Where-Object { $_.account.login -ieq $InstallationOwner })
+if ($matchingInstallations.Count -eq 0) {
+ $found = ($installations | ForEach-Object { $_.account.login }) -join ', '
+ Write-PipelineTelemetryError -Category 'Build' -Message "No installation found for '$InstallationOwner'. App is installed on: $found"
+ exit 1
+}
+if ($matchingInstallations.Count -ne 1) {
+ $matchingIds = ($matchingInstallations | ForEach-Object { $_.id }) -join ', '
+ Write-PipelineTelemetryError -Category 'Build' -Message "Found multiple installations for '$InstallationOwner': $matchingIds"
+ exit 1
+}
+$installation = $matchingInstallations[0]
+Write-Host "Using installation $($installation.id) for '$($installation.account.login)'."
+
+try {
+ $tokenResponse = Invoke-RestMethod `
+ -Uri "https://api.github.com/app/installations/$($installation.id)/access_tokens" `
+ -Headers $headers `
+ -Method Post `
+ -ContentType 'application/json'
+}
+catch {
+ Write-PipelineTelemetryError -Category 'Build' -Message "Failed to mint an installation access token for '$InstallationOwner' (installation $($installation.id)): $_"
+ exit 1
+}
+
+Write-Host "Got installation token for '$InstallationOwner' (expires $($tokenResponse.expires_at))."
+if ($OutputVariableName) {
+ Write-Host "Setting pipeline variable '$OutputVariableName'."
+ Write-Host "##vso[task.setvariable variable=$OutputVariableName;issecret=true]$($tokenResponse.token)"
+}
+else {
+ Write-Host $tokenResponse.token -ForegroundColor Green
+}
diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1
index b3bddff355e7..b7a3769364dd 100644
--- a/eng/common/SetupNugetSources.ps1
+++ b/eng/common/SetupNugetSources.ps1
@@ -11,7 +11,7 @@
# condition: eq(variables['Agent.OS'], 'Windows_NT')
# inputs:
# filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1
-# arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $Env:Token
+# arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config
# env:
# Token: $(InternalFeedToken)
#
@@ -29,12 +29,14 @@
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)][string]$ConfigFile,
- $Password
+ # Keep the legacy name as an alias while callers migrate secrets to the Token environment variable.
+ [Alias("Password")]$Credential
)
$ErrorActionPreference = "Stop"
Set-StrictMode -Version 2.0
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+$feedCredential = if ($env:Token) { $env:Token } else { $Credential }
# This script only consumes helper functions from tools.ps1 to configure NuGet feeds.
# Skip importing configure-toolset.ps1 so that repo-specific toolset setup (e.g. acquiring
@@ -44,14 +46,14 @@ $disableConfigureToolsetImport = $true
. $PSScriptRoot\tools.ps1
# Adds or enables the package source with the given name
-function AddOrEnablePackageSource($sources, $disabledPackageSources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) {
- if ($disabledPackageSources -eq $null -or -not (EnableInternalPackageSource -DisabledPackageSources $disabledPackageSources -Creds $creds -PackageSourceName $SourceName)) {
- AddPackageSource -Sources $sources -SourceName $SourceName -SourceEndPoint $SourceEndPoint -Creds $creds -Username $userName -pwd $Password
+function AddOrEnablePackageSource($sources, $disabledPackageSources, $SourceName, $SourceEndPoint, $creds, $Username, $credential) {
+ if ($disabledPackageSources -eq $null -or -not (EnableInternalPackageSource -DisabledPackageSources $disabledPackageSources -Creds $creds -PackageSourceName $SourceName -Credential $credential)) {
+ AddPackageSource -Sources $sources -SourceName $SourceName -SourceEndPoint $SourceEndPoint -Creds $creds -Username $Username -credential $credential
}
}
# Add source entry to PackageSources
-function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) {
+function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $credential) {
$packageSource = $sources.SelectSingleNode("add[@key='$SourceName']")
if ($packageSource -eq $null)
@@ -67,13 +69,13 @@ function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Usern
Write-Host "Package source $SourceName already present and enabled."
}
- AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd
+ AddCredential -Creds $creds -Source $SourceName -Username $Username -credential $credential
}
# Add a credential node for the specified source
-function AddCredential($creds, $source, $username, $pwd) {
+function AddCredential($creds, $source, $username, $credential) {
# If no cred supplied, don't do anything.
- if (!$pwd) {
+ if (!$credential) {
return;
}
@@ -108,19 +110,19 @@ function AddCredential($creds, $source, $username, $pwd) {
$sourceElement.AppendChild($passwordElement) | Out-Null
}
- $passwordElement.SetAttribute("value", $pwd)
+ $passwordElement.SetAttribute("value", $credential)
}
# Enable all darc-int package sources.
-function EnableMaestroInternalPackageSources($DisabledPackageSources, $Creds) {
+function EnableMaestroInternalPackageSources($DisabledPackageSources, $Creds, $Credential) {
$maestroInternalSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]")
ForEach ($DisabledPackageSource in $maestroInternalSources) {
- EnableInternalPackageSource -DisabledPackageSources $DisabledPackageSources -Creds $Creds -PackageSourceName $DisabledPackageSource.key
+ EnableInternalPackageSource -DisabledPackageSources $DisabledPackageSources -Creds $Creds -PackageSourceName $DisabledPackageSource.key -Credential $Credential
}
}
# Enables an internal package source by name, if found. Returns true if the package source was found and enabled, false otherwise.
-function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSourceName) {
+function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSourceName, $Credential) {
$DisabledPackageSource = $DisabledPackageSources.SelectSingleNode("add[@key='$PackageSourceName']")
if ($DisabledPackageSource) {
Write-Host "Enabling internal source '$($DisabledPackageSource.key)'."
@@ -128,7 +130,7 @@ function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSo
# Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries
$DisabledPackageSources.RemoveChild($DisabledPackageSource)
- AddCredential -Creds $creds -Source $DisabledPackageSource.Key -Username $userName -pwd $Password
+ AddCredential -Creds $creds -Source $DisabledPackageSource.Key -Username $userName -credential $credential
return $true
}
return $false
@@ -153,7 +155,7 @@ if ($sources -eq $null) {
$creds = $null
$feedSuffix = "v3/index.json"
-if ($Password) {
+if ($feedCredential) {
$feedSuffix = "v2"
# Looks for a node. Create it if none is found.
$creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials")
@@ -169,7 +171,7 @@ $userName = "dn-bot"
$disabledSources = $doc.DocumentElement.SelectSingleNode("disabledPackageSources")
if ($disabledSources -ne $null) {
Write-Host "Checking for any darc-int disabled package sources in the disabledPackageSources node"
- EnableMaestroInternalPackageSources -DisabledPackageSources $disabledSources -Creds $creds
+ EnableMaestroInternalPackageSources -DisabledPackageSources $disabledSources -Creds $creds -Credential $feedCredential
}
$dotnetVersions = @('5','6','7','8','9','10')
@@ -177,8 +179,8 @@ foreach ($dotnetVersion in $dotnetVersions) {
$feedPrefix = "dotnet" + $dotnetVersion;
$dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']")
if ($dotnetSource -ne $null) {
- AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password
- AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password
+ AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -credential $feedCredential
+ AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/$feedSuffix" -Creds $creds -Username $userName -credential $feedCredential
}
}
diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh
index 67e7e0942ca1..c3ae8ac054fe 100644
--- a/eng/common/SetupNugetSources.sh
+++ b/eng/common/SetupNugetSources.sh
@@ -24,7 +24,9 @@
# This logic is also abstracted into enable-internal-sources.yml.
ConfigFile=$1
-CredToken=$2
+# Prefer the environment variable so credentials do not appear in process arguments.
+# Retain the positional argument as a compatibility fallback for existing callers.
+CredToken=${Token:-$2}
NL='\n'
TB=' '
diff --git a/eng/common/build.ps1 b/eng/common/build.ps1
index 2cbb725323e8..fee2f839919a 100644
--- a/eng/common/build.ps1
+++ b/eng/common/build.ps1
@@ -8,6 +8,7 @@ Param(
[bool] $warnAsError = $true,
[string] $warnNotAsError = '',
[bool] $nodeReuse = $true,
+ [bool][Alias('mt')]$msbuildMultiThreaded = $false,
[switch] $buildCheck = $false,
[switch][Alias('r')]$restore,
[switch] $deployDeps,
@@ -23,6 +24,7 @@ Param(
[switch] $clean,
[switch][Alias('pb')]$productBuild,
[switch]$fromVMR,
+ [switch]$disablePipelineSetResult,
[switch][Alias('bl')]$binaryLog,
[string][Alias('bln')]$binaryLogName = '',
[switch][Alias('nobl')]$excludeCIBinarylog,
@@ -78,8 +80,10 @@ function Print-Usage() {
Write-Host " -excludePrereleaseVS Set to exclude build engines in prerelease versions of Visual Studio"
Write-Host " -nativeToolsOnMachine Sets the native tools on machine environment variable (indicating that the script should use native tools on machine)"
Write-Host " -nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')"
+ Write-Host " -msbuildMultiThreaded Sets MSBuild's multi-threaded mode, i.e. the -mt switch ('1' or '0') (short: -mt)"
Write-Host " -buildCheck Sets /check msbuild parameter"
Write-Host " -fromVMR Set when building from within the VMR"
+ Write-Host " -disablePipelineSetResult Set to disable masking the actual exit code in the pipeline when the build fails"
Write-Host ""
Write-Host "Command line arguments not listed above are passed thru to msbuild."
@@ -173,9 +177,8 @@ try {
if (-not $excludeCIBinarylog) {
$binaryLog = $true
}
- # Disable node reuse on CI unless explicitly opted in via MSBUILD_NODEREUSE_ENABLED.
- # Internal testing only; this env var will be replaced with a switch (https://github.com/dotnet/arcade/issues/17013) and must not be depended on.
- if ($env:MSBUILD_NODEREUSE_ENABLED -ne "1") {
+ # Node reuse isn't used on CI unless it was explicitly requested via -nodeReuse.
+ if (-not $PSBoundParameters.ContainsKey('nodeReuse')) {
$nodeReuse = $false
}
}
diff --git a/eng/common/build.sh b/eng/common/build.sh
index 3a9fdcfd0f59..109d83ff73f7 100644
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -40,12 +40,15 @@ usage()
echo " --projects Project or solution file(s) to build"
echo " --ci Set when running on CI server"
echo " --excludeCIBinarylog Don't output binary log (short: -nobl)"
+ echo " --pipelinesLog Promote msbuild errors/warnings to Azure Pipelines timeline issues; defaults to on in CI (short: -pl)"
echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
echo " --nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')"
+ echo " --msbuildMultiThreaded Sets MSBuild's multi-threaded mode, i.e. the -mt switch ('true' or 'false') (short: --mt)"
echo " --warnAsError Sets warnaserror msbuild parameter ('true' or 'false')"
echo " --warnNotAsError Sets a semi-colon delimited list of warning codes that should not be treated as errors"
echo " --buildCheck Sets /check msbuild parameter"
echo " --fromVMR Set when building from within the VMR"
+ echo " --disablePipelineSetResult Set to disable masking the actual exit code in the pipeline when the build fails"
echo ""
echo "Command line arguments not listed above are passed thru to msbuild."
echo "Arguments can also be passed in with a single hyphen."
@@ -68,6 +71,7 @@ build=false
source_build=false
product_build=false
from_vmr=false
+disable_pipeline_set_result=false
rebuild=false
test=false
integration_test=false
@@ -81,11 +85,14 @@ clean=false
warn_as_error=true
warn_not_as_error=''
-node_reuse=true
+# Empty means "not specified"; tools.sh defaults these to on for local builds and off on CI.
+node_reuse=''
+msbuild_multi_threaded=''
build_check=false
binary_log=false
binary_log_name=''
exclude_ci_binary_log=false
+pipelines_log=false
projects=''
configuration=''
@@ -124,6 +131,9 @@ while [[ $# -gt 0 ]]; do
-excludecibinarylog|-nobl)
exclude_ci_binary_log=true
;;
+ -pipelineslog|-pl)
+ pipelines_log=true
+ ;;
-restore|-r)
restore=true
;;
@@ -152,6 +162,9 @@ while [[ $# -gt 0 ]]; do
-fromvmr|-from-vmr)
from_vmr=true
;;
+ -disablepipelinesetresult|-disable-pipeline-set-result)
+ disable_pipeline_set_result=true
+ ;;
-test|-t)
test=true
;;
@@ -189,6 +202,10 @@ while [[ $# -gt 0 ]]; do
node_reuse=$2
shift
;;
+ -msbuildmultithreaded|-mt)
+ msbuild_multi_threaded=$2
+ shift
+ ;;
-buildcheck)
build_check=true
;;
@@ -213,11 +230,7 @@ if [[ -z "$configuration" ]]; then
fi
if [[ "$ci" == true ]]; then
- # Disable node reuse on CI unless explicitly opted in via MSBUILD_NODEREUSE_ENABLED.
- # Internal testing only; this env var will be replaced with a switch (https://github.com/dotnet/arcade/issues/17013) and must not be depended on.
- if [[ "${MSBUILD_NODEREUSE_ENABLED:-}" != "1" ]]; then
- node_reuse=false
- fi
+ pipelines_log=true
if [[ "$exclude_ci_binary_log" == false ]]; then
binary_log=true
fi
diff --git a/eng/common/core-templates/job/helix-job-monitor.yml b/eng/common/core-templates/job/helix-job-monitor.yml
index 96287e55a15b..81ecccdd17bd 100644
--- a/eng/common/core-templates/job/helix-job-monitor.yml
+++ b/eng/common/core-templates/job/helix-job-monitor.yml
@@ -26,6 +26,11 @@ parameters:
type: string
default: ''
+# Whether failures in the monitor job should allow the pipeline to continue.
+- name: continueOnError
+ type: boolean
+ default: false
+
# NuGet package id of the Helix job monitor tool.
- name: toolPackageId
type: string
@@ -65,6 +70,29 @@ parameters:
type: boolean
default: true
+# When true, allow the monitor to succeed when this stage produces no Helix jobs in any attempt.
+# Forwarded as --allow-no-helix-jobs.
+- name: allowNoHelixJobs
+ type: boolean
+ default: false
+
+# When true, test results are reported to Azure DevOps using the fully qualified test name
+# (Namespace.Type.Method) as the stable automatedTestName and the visible title is qualified as
+# well (--use-fully-qualified-test-name). Opt-in because it changes AzDO test identity and display;
+# primarily useful for frameworks like MSTest whose display name is only the method name.
+- name: useFullyQualifiedTestName
+ type: boolean
+ default: false
+
+# Controls per-test output attachments. Defaults to Failed.
+- name: testResultAttachmentMode
+ type: string
+ default: Failed
+ values:
+ - Failed
+ - All
+ - None
+
# Advanced: optional pipeline artifact (produced earlier in this run) that contains the tool
# nupkg. When set, the artifact is downloaded and the tool is installed from the nupkg into
# a local tool-path; this bypasses the repo's .config/dotnet-tools.json manifest and is
@@ -89,6 +117,7 @@ jobs:
- job: HelixJobMonitor
displayName: Monitor Helix Jobs
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
+ continueOnError: ${{ parameters.continueOnError }}
${{ if ne(length(parameters.dependsOn), 0) }}:
dependsOn: ${{ parameters.dependsOn }}
${{ if ne(parameters.condition, '') }}:
@@ -96,9 +125,11 @@ jobs:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
+ os: linux
demands: ImageOverride -equals build.azurelinux.3.amd64.open
${{ else }}:
name: $(DncEngInternalBuildPool)
+ os: linux
demands: ImageOverride -equals build.azurelinux.3.amd64
steps:
- checkout: self
@@ -176,24 +207,34 @@ jobs:
set -euo pipefail
toolArgs=(
- --helix-base-uri '${{ parameters.helixBaseUri }}'
- --polling-interval-seconds '${{ parameters.pollingIntervalSeconds }}'
- --fail-on-failed-tests '${{ parameters.failWorkItemsWithFailedTests }}'
- --max-wait-minutes "$((${{ parameters.timeoutInMinutes }} - 5))" # Set the tool's timeout slightly lower than the Azure DevOps job timeout to allow it to exit gracefully.
- --stage-name '$(System.StageName)'
+ --helix-base-uri '${{ parameters.helixBaseUri }}'
+ --polling-interval-seconds '${{ parameters.pollingIntervalSeconds }}'
+ --fail-on-failed-tests '${{ parameters.failWorkItemsWithFailedTests }}'
+ --allow-no-helix-jobs '${{ parameters.allowNoHelixJobs }}'
+ --use-fully-qualified-test-name '${{ parameters.useFullyQualifiedTestName }}'
+ --max-wait-minutes "$((${{ parameters.timeoutInMinutes }} - 5))" # Set the tool's timeout slightly lower than the Azure DevOps job timeout to allow it to exit gracefully.
+ --stage-name '$(System.StageName)'
+ --stage-attempt '$(System.StageAttempt)'
)
organization='${{ parameters.organization }}'
repository='${{ parameters.repository }}'
+ testResultAttachmentMode='${{ parameters.testResultAttachmentMode }}'
# Fall back to Azure DevOps-provided environment variables when the caller did not
# supply organization / repository explicitly. BUILD_REPOSITORY_NAME is typically
- # 'owner/repo' for GitHub-backed builds.
+ # 'owner/repo' for GitHub-backed builds and 'owner-repo' for internal builds.
if [ -z "$organization" ] || [ -z "$repository" ]; then
buildRepoName="${BUILD_REPOSITORY_NAME:-}"
if [ -n "$buildRepoName" ] && [[ "$buildRepoName" == */* ]]; then
repoOwner="${buildRepoName%%/*}"
repoName="${buildRepoName#*/}"
+ elif [ -n "$buildRepoName" ] && [[ "$buildRepoName" == *-* ]]; then
+ repoOwner="${buildRepoName%%-*}"
+ repoName="${buildRepoName#*-}"
+ fi
+
+ if [ -n "${repoOwner:-}" ] && [ -n "${repoName:-}" ]; then
if [ -z "$organization" ]; then organization="$repoOwner"; fi
if [ -z "$repository" ]; then repository="$repoName"; fi
fi
@@ -201,6 +242,9 @@ jobs:
if [ -n "$organization" ]; then toolArgs+=( --organization "$organization" ); fi
if [ -n "$repository" ]; then toolArgs+=( --repository "$repository" ); fi
+ if [ -n "$testResultAttachmentMode" ]; then
+ toolArgs+=( --test-result-attachment-mode "$testResultAttachmentMode" )
+ fi
# Build.Reason and Build.SourceBranch are required to derive the Helix source filter
# the same way the Helix SDK submitter does (PR -> 'pr', internal -> 'official',
diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml
index 2816d2905a06..ce077368e40d 100644
--- a/eng/common/core-templates/job/onelocbuild.yml
+++ b/eng/common/core-templates/job/onelocbuild.yml
@@ -14,6 +14,16 @@ parameters:
# exist, and any pipeline that sets this to '' fall back to PAT-based auth via the CeapexPat parameter.
CeapexServiceConnection: 'dnceng-onelocbuild-ceapex'
+ # GitHub App authentication for the OneLoc check-in PR.
+ # dnceng/internal and DevDiv/DevDiv are enabled by default with their project-scoped service
+ # connections. Other projects must explicitly opt in after provisioning equivalent infrastructure.
+ UseGitHubAppAuthentication: true
+ UseGitHubAppAuthenticationInOtherProjects: false
+ GitHubAppServiceConnection: 'dnceng-oneloc-githubapp'
+ GitHubAppClientId: 'Iv23lijBU8x3gc9lDOc9'
+ GitHubAppKeyVaultName: 'EngKeyVault'
+ GitHubAppKeyName: 'oneloc-localization-app-key'
+
SourcesDirectory: $(System.DefaultWorkingDirectory)
CreatePr: true
AutoCompletePr: false
@@ -89,6 +99,23 @@ jobs:
outputVariableName: 'CeapexEntraToken'
condition: ${{ parameters.condition }}
+ # Mint a short-lived GitHub App installation token for the loc check-in PR. Use the connection
+ # provisioned in each supported project; other projects must explicitly opt in and override it.
+ - ${{ if and(eq(parameters.RepoType, 'gitHub'), eq(parameters.UseGitHubAppAuthentication, true), or(eq(variables['System.TeamProject'], 'internal'), eq(variables['System.TeamProject'], 'DevDiv'), eq(parameters.UseGitHubAppAuthenticationInOtherProjects, true))) }}:
+ - template: /eng/common/core-templates/steps/get-github-app-token.yml
+ parameters:
+ is1ESPipeline: ${{ parameters.is1ESPipeline }}
+ ${{ if and(eq(variables['System.TeamProject'], 'DevDiv'), eq(parameters.GitHubAppServiceConnection, 'dnceng-oneloc-githubapp')) }}:
+ azureSubscription: 'devdiv-oneloc-githubapp'
+ ${{ else }}:
+ azureSubscription: ${{ parameters.GitHubAppServiceConnection }}
+ keyVaultName: ${{ parameters.GitHubAppKeyVaultName }}
+ keyName: ${{ parameters.GitHubAppKeyName }}
+ appClientId: ${{ parameters.GitHubAppClientId }}
+ installationOwner: ${{ parameters.GitHubOrg }}
+ outputVariableName: 'GitHubAppInstallationToken'
+ condition: ${{ parameters.condition }}
+
- task: OneLocBuild@2
displayName: OneLocBuild
env:
@@ -110,7 +137,10 @@ jobs:
patVariable: ${{ parameters.CeapexPat }}
${{ if eq(parameters.RepoType, 'gitHub') }}:
repoType: ${{ parameters.RepoType }}
- gitHubPatVariable: "${{ parameters.GithubPat }}"
+ ${{ if and(eq(parameters.UseGitHubAppAuthentication, true), or(eq(variables['System.TeamProject'], 'internal'), eq(variables['System.TeamProject'], 'DevDiv'), eq(parameters.UseGitHubAppAuthenticationInOtherProjects, true))) }}:
+ gitHubPatVariable: "$(GitHubAppInstallationToken)"
+ ${{ else }}:
+ gitHubPatVariable: "${{ parameters.GithubPat }}"
${{ if ne(parameters.MirrorRepo, '') }}:
isMirrorRepoSelected: true
gitHubOrganization: ${{ parameters.GitHubOrg }}
diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml
index 4229288d3d38..330225ae0938 100644
--- a/eng/common/core-templates/job/publish-build-assets.yml
+++ b/eng/common/core-templates/job/publish-build-assets.yml
@@ -58,8 +58,6 @@ jobs:
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- - group: Publish-Build-Assets
- - group: AzureDevOps-Artifact-Feeds-Pats
- name: runCodesignValidationInjection
value: false
# unconditional - needed for logs publishing (redactor tool version)
diff --git a/eng/common/core-templates/post-build/common-variables.yml b/eng/common/core-templates/post-build/common-variables.yml
index db298ae16bae..a3a8480e254a 100644
--- a/eng/common/core-templates/post-build/common-variables.yml
+++ b/eng/common/core-templates/post-build/common-variables.yml
@@ -1,6 +1,4 @@
variables:
- - group: Publish-Build-Assets
-
# Whether the build is internal or not
- name: IsInternalBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }}
diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml
index 9d951352696e..6dcee6664d68 100644
--- a/eng/common/core-templates/post-build/post-build.yml
+++ b/eng/common/core-templates/post-build/post-build.yml
@@ -236,6 +236,7 @@ stages:
StageLabel: 'Validation'
JobLabel: 'Signing'
BinlogToolVersion: $(BinlogToolVersion)
+ enableInternalRuntimes: false
# SourceLink validation has been removed — the underlying CLI tool
# (targeting netcoreapp2.1) has not functioned for years.
diff --git a/eng/common/core-templates/stages/renovate.yml b/eng/common/core-templates/stages/renovate.yml
index edab28182585..cfa9683794ad 100644
--- a/eng/common/core-templates/stages/renovate.yml
+++ b/eng/common/core-templates/stages/renovate.yml
@@ -81,6 +81,8 @@ resources:
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
+ settings:
+ networkIsolationPolicy: Permissive
pool: ${{ parameters.pool }}
sdl:
sourceAnalysisPool: ${{ parameters.sdlPool }}
diff --git a/eng/common/core-templates/steps/enable-internal-sources.yml b/eng/common/core-templates/steps/enable-internal-sources.yml
index 51af9a017091..843cdff7821e 100644
--- a/eng/common/core-templates/steps/enable-internal-sources.yml
+++ b/eng/common/core-templates/steps/enable-internal-sources.yml
@@ -19,7 +19,7 @@ steps:
displayName: Setup Internal Feeds
inputs:
filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1
- arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $Env:Token
+ arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config
env:
Token: ${{ parameters.legacyCredential }}
- task: Bash@3
@@ -28,7 +28,7 @@ steps:
inputs:
targetType: inline
script: |
- "$(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh" "$(System.DefaultWorkingDirectory)/NuGet.config" "$Token"
+ "$(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh" "$(System.DefaultWorkingDirectory)/NuGet.config"
env:
Token: ${{ parameters.legacyCredential }}
# If running on dnceng (internal project), just use the default behavior for NuGetAuthenticate.
@@ -58,13 +58,17 @@ steps:
displayName: Setup Internal Feeds
inputs:
filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1
- arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $(dnceng-artifacts-feeds-read-access-token)
+ arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config
+ env:
+ Token: $(dnceng-artifacts-feeds-read-access-token)
- task: Bash@3
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
displayName: Setup Internal Feeds
inputs:
filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh
- arguments: $(System.DefaultWorkingDirectory)/NuGet.config $(dnceng-artifacts-feeds-read-access-token)
+ arguments: $(System.DefaultWorkingDirectory)/NuGet.config
+ env:
+ Token: $(dnceng-artifacts-feeds-read-access-token)
# This is required in certain scenarios to install the ADO credential provider.
# It installed by default in some msbuild invocations (e.g. VS msbuild), but needs to be installed for others
# (e.g. dotnet msbuild).
diff --git a/eng/common/core-templates/steps/get-github-app-token.yml b/eng/common/core-templates/steps/get-github-app-token.yml
new file mode 100644
index 000000000000..6d42a48d3c36
--- /dev/null
+++ b/eng/common/core-templates/steps/get-github-app-token.yml
@@ -0,0 +1,79 @@
+# Mints a short-lived GitHub App installation access token by signing a JWT
+# with a private key stored in Azure Key Vault (RSA, RS256). The JWT is
+# exchanged with the GitHub API for a token scoped to a single installation.
+#
+# Requirements (per GitHub App you want to authenticate as):
+# - A GitHub App with its private key uploaded into Key Vault as an RSA key
+# (PEM converted to a key, NOT stored as a secret).
+# - The Azure service connection passed via `azureSubscription` must be
+# granted the `Key Vault Crypto User` role (or at minimum `Sign` action)
+# on that key.
+# - The App must be installed on the target organization/account
+# (`installationOwner`) with the permissions/repositories you need.
+#
+# Output: a secret pipeline variable named ${{ parameters.outputVariableName }}
+# containing the installation access token. Token lifetime is ~1 hour and is
+# automatically scrubbed from logs. Installation tokens are exempt from the
+# enterprise classic-PAT lifetime policy.
+
+parameters:
+# Azure DevOps service connection (federated) that can call
+# `az keyvault key sign` on the App's signing key.
+- name: azureSubscription
+ type: string
+
+# Name of the Key Vault that holds the GitHub App's RSA signing key.
+- name: keyVaultName
+ type: string
+
+# Name of the RSA key inside the Key Vault (the App's private key).
+- name: keyName
+ type: string
+
+# The GitHub App's Client ID (the value to put in the `iss` JWT claim).
+# Prefer this over the numeric App ID; GitHub accepts either, but Client ID
+# is the documented form going forward.
+- name: appClientId
+ type: string
+
+# Login of the organization or user account whose installation we should
+# mint the token for (e.g. `dotnet`, `microsoft`).
+- name: installationOwner
+ type: string
+
+# Name of the pipeline variable that will receive the installation token.
+- name: outputVariableName
+ type: string
+
+- name: is1ESPipeline
+ type: boolean
+
+- name: stepName
+ type: string
+ default: getGitHubAppInstallationToken
+
+- name: condition
+ type: string
+ default: ''
+
+- name: displayName
+ type: string
+ default: Get GitHub App installation token
+
+steps:
+- task: AzureCLI@2
+ displayName: ${{ parameters.displayName }}
+ name: ${{ parameters.stepName }}
+ ${{ if ne(parameters.condition, '') }}:
+ condition: ${{ parameters.condition }}
+ inputs:
+ azureSubscription: ${{ parameters.azureSubscription }}
+ scriptType: pscore
+ scriptLocation: inlineScript
+ inlineScript: |
+ & "$(System.DefaultWorkingDirectory)/eng/common/Get-GitHubAppToken.ps1" `
+ -KeyVaultName '${{ parameters.keyVaultName }}' `
+ -KeyName '${{ parameters.keyName }}' `
+ -AppClientId '${{ parameters.appClientId }}' `
+ -InstallationOwner '${{ parameters.installationOwner }}' `
+ -OutputVariableName '${{ parameters.outputVariableName }}'
diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml
index c496f3d0dc7a..244fef0890e9 100644
--- a/eng/common/core-templates/steps/publish-logs.yml
+++ b/eng/common/core-templates/steps/publish-logs.yml
@@ -5,6 +5,7 @@ parameters:
# A default - in case value from eng/common/core-templates/post-build/common-variables.yml is not passed
BinlogToolVersion: '1.0.11'
is1ESPipeline: false
+ enableInternalRuntimes: true
steps:
- task: Powershell@2
@@ -25,15 +26,20 @@ steps:
# Sensitive data can as well be added to $(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt'
# If the file exists - sensitive data for redaction will be sourced from it
# (single entry per line, lines starting with '# ' are considered comments and skipped)
- arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs'
- -BinlogToolVersion '${{parameters.BinlogToolVersion}}'
- -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt'
- -runtimeSourceFeed https://ci.dot.net/internal
- -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)'
- '$(publishing-dnceng-devdiv-code-r-build-re)'
- '$(akams-client-id)'
- '$(System.AccessToken)'
- ${{parameters.CustomSensitiveDataList}}
+ ${{ if and(eq(parameters.enableInternalRuntimes, true), ne(variables['System.TeamProject'], 'public')) }}:
+ arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs'
+ -BinlogToolVersion '${{parameters.BinlogToolVersion}}'
+ -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt'
+ -runtimeSourceFeed https://ci.dot.net/internal
+ -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)'
+ '$(System.AccessToken)'
+ ${{parameters.CustomSensitiveDataList}}
+ ${{ else }}:
+ arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs'
+ -BinlogToolVersion '${{parameters.BinlogToolVersion}}'
+ -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt'
+ '$(System.AccessToken)'
+ ${{parameters.CustomSensitiveDataList}}
continueOnError: true
condition: always()
@@ -56,4 +62,3 @@ steps:
condition: always()
retryCountOnTaskFailure: 10 # for any files being locked
isProduction: false # logs are non-production artifacts
-
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
index 453bb1ba5b1e..f58abbd2d10a 100644
--- a/eng/common/cross/build-rootfs.sh
+++ b/eng/common/cross/build-rootfs.sh
@@ -8,8 +8,8 @@ usage()
echo "BuildArch can be: arm(default), arm64, loongarch64, ppc64le, riscv64, s390x, x64, x86"
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine"
echo " for alpine can be specified with version: alpineX.YY or alpineedge"
- echo " for FreeBSD can be: freebsd13, freebsd14"
- echo " for OpenBSD can be: openbsd"
+ echo " for FreeBSD can be: freebsd14, freebsd15"
+ echo " for OpenBSD can be: openbsd7.8, openbsd7.9"
echo " for illumos can be: illumos"
echo " for Haiku can be: haiku."
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FreeBSD"
@@ -78,9 +78,9 @@ __AlpinePackages+=" krb5-dev"
__AlpinePackages+=" openssl-dev"
__AlpinePackages+=" zlib-dev"
-__FreeBSDBase="13.5-RELEASE"
-__FreeBSDPkg="2.7.5"
-__FreeBSDABI="13"
+__FreeBSDBase="14.4-RELEASE"
+__FreeBSDPkg="2.8.0"
+__FreeBSDABI="14"
__FreeBSDPackages="libunwind"
__FreeBSDPackages+=" icu"
__FreeBSDPackages+=" libinotify"
@@ -187,17 +187,14 @@ while :; do
__AlpineArch=loongarch64
__QEMUArch=loongarch64
__UbuntuArch=loong64
- __UbuntuSuites=unreleased
__LLDB_Package="liblldb-19-dev"
;;
riscv64)
__BuildArch=riscv64
__AlpineArch=riscv64
- __AlpinePackages="${__AlpinePackages// lldb-dev/}"
__QEMUArch=riscv64
__UbuntuArch=riscv64
- __UbuntuPackages="${__UbuntuPackages// libunwind8-dev/}"
- unset __LLDB_Package
+ __LLDB_Package="liblldb-19-dev"
;;
ppc64le)
__BuildArch=ppc64le
@@ -291,6 +288,10 @@ while :; do
__CodeName=noble
__LLDB_Package="liblldb-19-dev"
;;
+ resolute) # Ubuntu 26.04
+ __CodeName=resolute
+ __LLDB_Package="liblldb-21-dev"
+ ;;
stretch) # Debian 9
__CodeName=stretch
__LLDB_Package="liblldb-6.0-dev"
@@ -331,7 +332,7 @@ while :; do
# Debian-Ports architectures need different values
case "$__UbuntuArch" in
- amd64|arm64|armhf|i386|mips64el|ppc64el|riscv64|s390x)
+ amd64|arm64|armhf|i386|mips64el|ppc64el|riscv64|loong64|s390x)
__KeyringFile="/usr/share/keyrings/debian-archive-keyring.gpg"
if [[ -z "$__UbuntuRepo" ]]; then
@@ -365,20 +366,29 @@ while :; do
__AlpineVersion="$__AlpineMajorVersion.$__AlpineMinorVersion"
fi
;;
- freebsd13)
+ freebsd14)
__CodeName=freebsd
__SkipUnmount=1
;;
- freebsd14)
+ freebsd15)
__CodeName=freebsd
- __FreeBSDBase="14.3-RELEASE"
- __FreeBSDABI="14"
+ __FreeBSDBase="15.1-RELEASE"
+ __FreeBSDABI="15"
__SkipUnmount=1
;;
openbsd)
__CodeName=openbsd
__SkipUnmount=1
;;
+ openbsd7.8)
+ __CodeName=openbsd
+ __SkipUnmount=1
+ ;;
+ openbsd7.9)
+ __CodeName=openbsd
+ __OpenBSDVersion="7.9"
+ __SkipUnmount=1
+ ;;
illumos)
__CodeName=illumos
__SkipUnmount=1
@@ -453,9 +463,12 @@ case "$__AlpineVersion" in
elif [[ "$__AlpineArch" == "x86" ]]; then
__AlpineVersion=3.17 # minimum version that supports lldb-dev
__AlpinePackages+=" llvm15-libs"
- elif [[ "$__AlpineArch" == "riscv64" || "$__AlpineArch" == "loongarch64" ]]; then
+ elif [[ "$__AlpineArch" == "loongarch64" ]]; then
__AlpineVersion=3.21 # minimum version that supports lldb-dev
__AlpinePackages+=" llvm19-libs"
+ elif [[ "$__AlpineArch" == "riscv64" ]]; then
+ __AlpineVersion=3.22 # lldb-dev requires 3.21+, but 3.22+ provides the newer linux-headers needed for RISC-V extension probes
+ __AlpinePackages+=" llvm20-libs"
elif [[ -n "$__AlpineMajorVersion" ]]; then
# use whichever alpine version is provided and select the latest toolchain libs
__AlpineLlvmLibsLookup=1
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index ead7fe3ef263..70b71395e3ba 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -87,6 +87,8 @@ elseif(TARGET_ARCH_NAME STREQUAL "ppc64le")
set(CMAKE_SYSTEM_PROCESSOR ppc64le)
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl)
set(TOOLCHAIN "powerpc64le-alpine-linux-musl")
+ elseif(FREEBSD)
+ set(TOOLCHAIN "powerpc64le-unknown-freebsd14")
else()
set(TOOLCHAIN "powerpc64le-linux-gnu")
endif()
diff --git a/eng/common/msbuild.ps1 b/eng/common/msbuild.ps1
index 495d533a9098..b6dfb570ea50 100644
--- a/eng/common/msbuild.ps1
+++ b/eng/common/msbuild.ps1
@@ -3,6 +3,7 @@ Param(
[string] $verbosity = 'minimal',
[bool] $warnAsError = $true,
[bool] $nodeReuse = $true,
+ [bool][Alias('mt')]$msbuildMultiThreaded = $false,
[switch] $ci,
[switch] $prepareMachine,
[switch] $excludePrereleaseVS,
@@ -13,12 +14,9 @@ Param(
. $PSScriptRoot\tools.ps1
try {
- if ($ci) {
- # Disable node reuse on CI unless explicitly opted in via MSBUILD_NODEREUSE_ENABLED.
- # Internal testing only; this env var will be replaced with a switch (https://github.com/dotnet/arcade/issues/17013) and must not be depended on.
- if ($env:MSBUILD_NODEREUSE_ENABLED -ne "1") {
- $nodeReuse = $false
- }
+ # Node reuse isn't used on CI unless it was explicitly requested via -nodeReuse.
+ if ($ci -and -not $PSBoundParameters.ContainsKey('nodeReuse')) {
+ $nodeReuse = $false
}
MSBuild @extraArgs
diff --git a/eng/common/msbuild.sh b/eng/common/msbuild.sh
index 333be3232fcf..a40c101237b1 100644
--- a/eng/common/msbuild.sh
+++ b/eng/common/msbuild.sh
@@ -14,7 +14,9 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
verbosity='minimal'
warn_as_error=true
-node_reuse=true
+# Empty means "not specified"; tools.sh defaults these to on for local builds and off on CI.
+node_reuse=''
+msbuild_multi_threaded=''
prepare_machine=false
extra_args=''
@@ -33,6 +35,10 @@ while (($# > 0)); do
node_reuse=$2
shift 2
;;
+ --msbuildmultithreaded|--mt)
+ msbuild_multi_threaded=$2
+ shift 2
+ ;;
--ci)
ci=true
shift 1
@@ -50,13 +56,5 @@ done
. "$scriptroot/tools.sh"
-if [[ "$ci" == true ]]; then
- # Disable node reuse on CI unless explicitly opted in via MSBUILD_NODEREUSE_ENABLED.
- # Internal testing only; this env var will be replaced with a switch (https://github.com/dotnet/arcade/issues/17013) and must not be depended on.
- if [[ "${MSBUILD_NODEREUSE_ENABLED:-}" != "1" ]]; then
- node_reuse=false
- fi
-fi
-
MSBuild $extra_args
ExitWithExitCode 0
diff --git a/eng/common/native/init-os-and-arch.sh b/eng/common/native/init-os-and-arch.sh
index 38921d4338f7..62d62fed522a 100644
--- a/eng/common/native/init-os-and-arch.sh
+++ b/eng/common/native/init-os-and-arch.sh
@@ -27,6 +27,10 @@ if [ "$os" = "sunos" ]; then
os="solaris"
fi
CPUName=$(isainfo -n)
+elif [ "$os" = "freebsd" ]; then
+ # FreeBSD's `uname -m` is the machine class ("powerpc" for every PowerPC
+ # variant); `uname -p` gives the specific processor (e.g. powerpc64le).
+ CPUName=$(uname -p)
else
# For the rest of the operating systems, use uname(1) to determine what the CPU is.
CPUName=$(uname -m)
@@ -75,7 +79,7 @@ case "$CPUName" in
arch=s390x
;;
- ppc64le)
+ ppc64le|powerpc64le)
arch=ppc64le
;;
*)
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
index 68119de603ef..8d72d803dd2a 100644
--- a/eng/common/sdk-task.ps1
+++ b/eng/common/sdk-task.ps1
@@ -4,7 +4,9 @@ Param(
[string] $task,
[string] $verbosity = 'minimal',
[string] $msbuildEngine = $null,
- [switch] $restore,
+ # Restore defaults to on; -restore is retained only so existing consumers that pass it don't break. Use -norestore to opt out.
+ [switch] $restore = $true,
+ [switch] $norestore,
[switch] $prepareMachine,
[switch][Alias('nobl')]$excludeCIBinaryLog,
[switch]$noWarnAsError,
@@ -18,12 +20,23 @@ $ci = $true
$binaryLog = if ($excludeCIBinaryLog) { $false } else { $true }
$warnAsError = if ($noWarnAsError) { $false } else { $true }
+# Reconcile the restore state before importing tools.ps1: it reads $restore at import time to
+# decide whether toolset/SDK acquisition installs. -norestore must win so that skipping restore
+# also skips toolset initialization, not just the explicit Restore build below.
+if ($norestore) { $restore = $false }
+
+# sdk-task runs a standalone Arcade SDK task and does not need repo-specific toolset setup.
+# Skip importing configure-toolset.ps1 so its side effects (e.g. a repo's configure-toolset.ps1
+# calling exit) don't terminate this script before the task runs.
+$disableConfigureToolsetImport = $true
+
. $PSScriptRoot\tools.ps1
function Print-Usage() {
Write-Host "Common settings:"
Write-Host " -task Name of Arcade task (name of a project in toolset directory of the Arcade SDK package)"
- Write-Host " -restore Restore dependencies"
+ Write-Host " -restore (Legacy) Restore runs by default; retained for backward compatibility. Use -norestore to skip"
+ Write-Host " -norestore Skip restoring dependencies"
Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]"
Write-Host " -help Print help and exit"
Write-Host ""
diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh
index 1cf71bb2aea4..a7f1ba060d73 100644
--- a/eng/common/sdk-task.sh
+++ b/eng/common/sdk-task.sh
@@ -3,7 +3,8 @@
show_usage() {
echo "Common settings:"
echo " --task Name of Arcade task (name of a project in toolset directory of the Arcade SDK package)"
- echo " --restore Restore dependencies"
+ echo " --restore (Legacy) Restore runs by default; retained for backward compatibility. Use --norestore to skip"
+ echo " --norestore Skip restoring dependencies"
echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]"
echo " --help Print help and exit"
echo ""
@@ -50,10 +51,11 @@ binary_log=true
configuration="Debug"
verbosity="minimal"
exclude_ci_binary_log=false
-restore=false
+# restore defaults to on; --restore is retained only so existing consumers that pass it don't break. Use --norestore to opt out.
+restore=true
help=false
properties=''
-warnAsError=true
+warn_as_error=true
while (($# > 0)); do
lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
@@ -63,7 +65,10 @@ while (($# > 0)); do
shift 2
;;
--restore)
- restore=true
+ shift 1
+ ;;
+ --norestore)
+ restore=false
shift 1
;;
--verbosity)
@@ -75,8 +80,8 @@ while (($# > 0)); do
exclude_ci_binary_log=true
shift 1
;;
- --noWarnAsError)
- warnAsError=false
+ --nowarnaserror)
+ warn_as_error=false
shift 1
;;
--help)
@@ -97,6 +102,11 @@ if $help; then
exit 0
fi
+# sdk-task runs a standalone Arcade SDK task and does not need repo-specific toolset setup.
+# Skip importing configure-toolset.sh so its side effects (e.g. a repo's configure-toolset.sh
+# calling exit) don't terminate this script before the task runs.
+disable_configure_toolset_import=1
+
. "$scriptroot/tools.sh"
InitializeToolset
diff --git a/eng/common/templates-official/steps/get-github-app-token.yml b/eng/common/templates-official/steps/get-github-app-token.yml
new file mode 100644
index 000000000000..c89f3641a4db
--- /dev/null
+++ b/eng/common/templates-official/steps/get-github-app-token.yml
@@ -0,0 +1,7 @@
+steps:
+- template: /eng/common/core-templates/steps/get-github-app-token.yml
+ parameters:
+ is1ESPipeline: true
+
+ ${{ each parameter in parameters }}:
+ ${{ parameter.key }}: ${{ parameter.value }}
diff --git a/eng/common/templates/steps/get-github-app-token.yml b/eng/common/templates/steps/get-github-app-token.yml
new file mode 100644
index 000000000000..79e182c64167
--- /dev/null
+++ b/eng/common/templates/steps/get-github-app-token.yml
@@ -0,0 +1,7 @@
+steps:
+- template: /eng/common/core-templates/steps/get-github-app-token.yml
+ parameters:
+ is1ESPipeline: false
+
+ ${{ each parameter in parameters }}:
+ ${{ parameter.key }}: ${{ parameter.value }}
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 6f664ad890ba..e84033dad90c 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -13,6 +13,12 @@
# Set to true to output binary log from msbuild. Note that emitting binary log slows down the build.
[bool]$binaryLog = if (Test-Path variable:binaryLog) { $binaryLog } else { $ci -and !$excludeCIBinarylog }
+# Set to true to use the pipelines logger which will enable Azure logging output.
+# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md
+# This flag is meant as a temporary opt-in for the feature while validating it across
+# our consumers. It will be deleted in the future.
+[bool]$pipelinesLog = if (Test-Path variable:pipelinesLog) { $pipelinesLog } else { $ci }
+
# Turns on machine preparation/clean up code that changes the machine state (e.g. kills build processes).
[bool]$prepareMachine = if (Test-Path variable:prepareMachine) { $prepareMachine } else { $false }
@@ -25,11 +31,16 @@
# Set to true to reuse msbuild nodes. Recommended to not reuse on CI.
[bool]$nodeReuse = if (Test-Path variable:nodeReuse) { $nodeReuse } else { !$ci }
+# Set to true to build with MSBuild's multi-threaded mode (-mt). Opt-in for now, so off unless it was
+# explicitly requested. It's intended to become the default for local builds once it has proven out.
+[bool]$msbuildMultiThreaded = if (Test-Path variable:msbuildMultiThreaded) { $msbuildMultiThreaded } else { $false }
+
# Configures warning treatment in msbuild.
[bool]$warnAsError = if (Test-Path variable:warnAsError) { $warnAsError } else { $true }
# Specifies semi-colon delimited list of warning codes that should not be treated as errors.
-[string]$warnNotAsError = if (Test-Path variable:warnNotAsError) { $warnNotAsError } else { '' }
+# Defaults to NuGet Audit warning codes NU1901-NU1904.
+[string]$warnNotAsError = if ((Test-Path variable:warnNotAsError) -and $warnNotAsError) { $warnNotAsError } else { 'NU1901;NU1902;NU1903;NU1904' }
# Specifies which msbuild engine to use for build: 'vs', 'dotnet' or unspecified (determined based on presence of tools.vs in global.json).
[string]$msbuildEngine = if (Test-Path variable:msbuildEngine) { $msbuildEngine } else { $null }
@@ -65,6 +76,8 @@ $ErrorActionPreference = 'Stop'
# True when the build is running within the VMR.
[bool]$fromVMR = if (Test-Path variable:fromVMR) { $fromVMR } else { $false }
+[bool]$disablePipelineSetResult = if (Test-Path variable:disablePipelineSetResult) { $disablePipelineSetResult } else { $false }
+
function Create-Directory ([string[]] $path) {
New-Item -Path $path -Force -ItemType 'Directory' | Out-Null
}
@@ -713,7 +726,17 @@ function InitializeToolset() {
$downloadArgs += "--configfile"
$downloadArgs += $nugetConfig
}
- DotNet @downloadArgs
+
+ # 'dotnet package download' fails outright if any source in the repo's NuGet.config is
+ # unavailable (for example a transport feed that was decommissioned after a release). The
+ # Arcade SDK is always published to the public dotnet-eng feed, so if the config-driven
+ # download fails, retry once against that feed directly (which ignores the other sources)
+ # before giving up, so a single dead source doesn't block the build.
+ $downloadExitCode = DotNet -ignoreFailure @downloadArgs
+ if ($downloadExitCode) {
+ Write-Host "Restoring the Arcade SDK from the configured sources failed; retrying from the public dotnet-eng feed."
+ DotNet @downloadArgs --source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json"
+ }
$packageDir = Join-Path $nugetPackageCachePath (Join-Path 'microsoft.dotnet.arcade.sdk' $toolsetVersion)
$packageToolsetDir = Join-Path $packageDir 'toolset'
@@ -775,10 +798,23 @@ function MSBuild() {
$buildTool = InitializeBuildTool
+ if ($pipelinesLog) {
+ $toolsetBuildProject = InitializeToolset
+ $basePath = Split-Path -parent $toolsetBuildProject
+ $selectedPath = Join-Path $basePath (Join-Path 'net' 'Microsoft.DotNet.ArcadeLogging.dll')
+
+ # Only inject the logger when it's present. A last-known-good Arcade used to bootstrap
+ # the build may not ship the logger yet, so its absence must not be a hard error.
+ # Specify the logger type explicitly so loading is deterministic.
+ if (Test-Path $selectedPath) {
+ $args += "/logger:Microsoft.DotNet.ArcadeLogging.PipelinesLogger,$selectedPath"
+ }
+ }
+
$cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci"
- # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable
- if ($env:MSBUILD_MT_ENABLED -eq "1") {
+ # Build with MSBuild's multi-threaded mode.
+ if ($msbuildMultiThreaded) {
$cmdArgs += ' -mt'
}
@@ -790,7 +826,8 @@ function MSBuild() {
}
if ($warnAsError -and $warnNotAsError) {
- $cmdArgs += " /warnnotaserror:$warnNotAsError /p:AdditionalWarningsNotAsErrors=$warnNotAsError"
+ $escapedWarnNotAsError = $warnNotAsError -replace ';', '%3B'
+ $cmdArgs += " /warnnotaserror:$warnNotAsError /p:AdditionalWarningsNotAsErrors=$escapedWarnNotAsError"
}
foreach ($arg in $args) {
@@ -813,8 +850,8 @@ function MSBuild() {
Write-Host "Build failed with exit code $exitCode. Check errors above." -ForegroundColor Red
# When running on Azure Pipelines, override the returned exit code to avoid double logging.
- # Skip this when the build is a child of the VMR build.
- if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$fromVMR) {
+ # Skip this when the build is a child of the VMR build, or when -disablePipelineSetResult is set so the real exit code propagates.
+ if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$fromVMR -and !$disablePipelineSetResult) {
Write-PipelineSetResult -Result "Failed" -Message "msbuild execution failed."
# Exiting with an exit code causes the azure pipelines task to log yet another "noise" error
# The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error
@@ -829,7 +866,7 @@ function MSBuild() {
# Executes a dotnet command with arguments passed to the function.
# Terminates the script if the command fails.
#
-function DotNet() {
+function DotNet([switch]$ignoreFailure) {
$dotnetRoot = InitializeDotNetCli -install:$restore
$dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet')
@@ -848,9 +885,15 @@ function DotNet() {
$exitCode = Exec-Process $dotnetPath $cmdArgs
if ($exitCode -ne 0) {
+ # When -ignoreFailure is set, return the exit code to the caller so it can implement
+ # its own fallback logic instead of terminating the script.
+ if ($ignoreFailure) {
+ return $exitCode
+ }
+
Write-Host "dotnet command failed with exit code $exitCode. Check errors above." -ForegroundColor Red
- if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$fromVMR) {
+ if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$fromVMR -and !$disablePipelineSetResult) {
Write-PipelineSetResult -Result "Failed" -Message "dotnet command execution failed."
ExitWithExitCode 0
} else {
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 347a29b8884f..4d14b100b063 100644
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -1,5 +1,15 @@
#!/usr/bin/env bash
+# Normalizes the value of a boolean build argument. Accepts 1/0 in addition to true/false so that
+# the same value works with the PowerShell scripts, whose [bool] parameters only bind 1/0.
+function NormalizeBoolArg {
+ case "${1:-}" in
+ 1) echo true ;;
+ 0) echo false ;;
+ *) echo "${1:-}" ;;
+ esac
+}
+
# Initialize variables if they aren't already defined.
# CI mode - set to true on CI server for PR validation build or official build.
@@ -8,6 +18,16 @@ ci=${ci:-false}
# Build mode
source_build=${source_build:-false}
+# Set to true to use the pipelines logger which will enable Azure logging output.
+# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md
+# This flag is meant as a temporary opt-in for the feature while validating it across
+# our consumers. It will be deleted in the future.
+if [[ "$ci" == true ]]; then
+ pipelines_log=${pipelines_log:-true}
+else
+ pipelines_log=${pipelines_log:-false}
+fi
+
# Build configuration. Common values include 'Debug' and 'Release', but the repository may use other names.
configuration=${configuration:-'Debug'}
@@ -33,17 +53,25 @@ restore=${restore:-true}
verbosity=${verbosity:-'minimal'}
# Set to true to reuse msbuild nodes. Recommended to not reuse on CI.
+node_reuse=$(NormalizeBoolArg "${node_reuse:-}")
if [[ "$ci" == true ]]; then
node_reuse=${node_reuse:-false}
else
node_reuse=${node_reuse:-true}
fi
+# Set to true to build with MSBuild's multi-threaded mode (-mt). Opt-in for now, so off unless it was
+# explicitly requested. It's intended to become the default for local builds once it has proven out.
+msbuild_multi_threaded=$(NormalizeBoolArg "${msbuild_multi_threaded:-}")
+msbuild_multi_threaded=${msbuild_multi_threaded:-false}
+
# Configures warning treatment in msbuild.
+warn_as_error=$(NormalizeBoolArg "${warn_as_error:-}")
warn_as_error=${warn_as_error:-true}
# Specifies semi-colon delimited list of warning codes that should not be treated as errors.
-warn_not_as_error=${warn_not_as_error:-''}
+# Defaults to NuGet Audit warning codes NU1901-NU1904.
+warn_not_as_error="${warn_not_as_error:-NU1901;NU1902;NU1903;NU1904}"
# True to attempt using .NET Core already that meets requirements specified in global.json
# installed on the machine instead of downloading one.
@@ -68,6 +96,8 @@ runtime_source_feed_key=${runtime_source_feed_key:-''}
# True when the build is running within the VMR.
from_vmr=${from_vmr:-false}
+disable_pipeline_set_result=${disable_pipeline_set_result:-false}
+
# Resolve any symlinks in the given path.
function ResolvePath {
local path=$1
@@ -442,7 +472,16 @@ function InitializeToolset {
if [[ -n "$nuget_config" ]]; then
download_args+=("--configfile" "$nuget_config")
fi
- DotNet "${download_args[@]}"
+
+ # 'dotnet package download' fails outright if any source in the repo's NuGet.config is
+ # unavailable (for example a transport feed that was decommissioned after a release). The
+ # Arcade SDK is always published to the public dotnet-eng feed, so if the config-driven
+ # download fails, retry once against that feed directly (which ignores the other sources)
+ # before giving up, so a single dead source doesn't block the build.
+ if ! DotNet true "${download_args[@]}"; then
+ echo "Restoring the Arcade SDK from the configured sources failed; retrying from the public dotnet-eng feed."
+ DotNet "${download_args[@]}" --source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json"
+ fi
local package_dir="$_InitializeNuGetPackageCachePath/microsoft.dotnet.arcade.sdk/$toolset_version"
@@ -481,6 +520,15 @@ function StopProcesses {
}
function DotNet {
+ # When the first argument is 'true' or 'false' it controls the exit behavior on failure:
+ # 'true' returns the dotnet exit code to the caller (so it can implement its own fallback),
+ # while the default terminates the script. Any other first argument is treated as a dotnet argument.
+ local ignore_failure=false
+ if [[ "$1" == 'true' || "$1" == 'false' ]]; then
+ ignore_failure="$1"
+ shift
+ fi
+
InitializeDotNetCli $restore
local dotnet_path="$_InitializeDotNetCli/dotnet"
@@ -489,9 +537,14 @@ function DotNet {
"$dotnet_path" "$@" || {
local exit_code=$?
+
+ if [[ "$ignore_failure" == true ]]; then
+ return $exit_code
+ fi
+
echo "dotnet command failed with exit code $exit_code. Check errors above."
- if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$from_vmr" != true ]]; then
+ if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$from_vmr" != true && "$disable_pipeline_set_result" != true ]]; then
Write-PipelineSetResult -result "Failed" -message "dotnet command execution failed."
ExitWithExitCode 0
else
@@ -510,6 +563,21 @@ function MSBuild {
InitializeBuildTool
+ local logger_switch=()
+ if [[ "$pipelines_log" == true ]]; then
+ InitializeToolset
+
+ local toolset_dir="${_InitializeToolset%/*}"
+ local selectedPath="$toolset_dir/net/Microsoft.DotNet.ArcadeLogging.dll"
+
+ # Only inject the logger when it's present. A last-known-good Arcade used to bootstrap
+ # the build may not ship the logger yet, so its absence must not be a hard error.
+ # Specify the logger type explicitly so loading is deterministic.
+ if [[ -f "$selectedPath" ]]; then
+ logger_switch=("-logger:Microsoft.DotNet.ArcadeLogging.PipelinesLogger,$selectedPath")
+ fi
+ fi
+
local warnaserror_switch=""
if [[ $warn_as_error == true ]]; then
warnaserror_switch="/warnaserror"
@@ -525,8 +593,8 @@ function MSBuild {
echo "Build failed with exit code $exit_code. Check errors above."
# When running on Azure Pipelines, override the returned exit code to avoid double logging.
- # Skip this when the build is a child of the VMR build.
- if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$from_vmr" != true ]]; then
+ # Skip this when the build is a child of the VMR build, or when -disablePipelineSetResult is set so the real exit code propagates.
+ if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$from_vmr" != true && "$disable_pipeline_set_result" != true ]]; then
Write-PipelineSetResult -result "Failed" -message "msbuild execution failed."
# Exiting with an exit code causes the azure pipelines task to log yet another "noise" error
# The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error
@@ -537,18 +605,18 @@ function MSBuild {
}
}
- # Add -mt flag for MSBuild multithreaded mode if enabled via environment variable
+ # Build with MSBuild's multi-threaded mode.
local mt_switch=""
- if [[ "${MSBUILD_MT_ENABLED:-}" == "1" ]]; then
+ if [[ "$msbuild_multi_threaded" == true ]]; then
mt_switch="-mt"
fi
local warnnotaserror_switch=""
if [[ -n "$warn_not_as_error" && "$warn_as_error" == true ]]; then
- warnnotaserror_switch="/warnnotaserror:$warn_not_as_error /p:AdditionalWarningsNotAsErrors=$warn_not_as_error"
+ warnnotaserror_switch="/warnnotaserror:$warn_not_as_error /p:AdditionalWarningsNotAsErrors=${warn_not_as_error//;/%3B}"
fi
- RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
+ RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch ${logger_switch[@]+"${logger_switch[@]}"} /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
}
function GetDarc {
diff --git a/global.json b/global.json
index f1678b7cb5cb..2cc673b4fc94 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "11.0.100-preview.7.26365.101",
+ "version": "11.0.100-rc.2.26426.102",
"paths": [
"builds/downloads/dotnet",
"$host$"
@@ -8,9 +8,9 @@
"errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'."
},
"tools": {
- "dotnet": "11.0.100-preview.7.26365.101"
+ "dotnet": "11.0.100-rc.2.26426.102"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26365.101"
+ "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26426.102"
}
}
diff --git a/msbuild/Xamarin.MacDev.Tasks/Tasks/XamarinBuildTask.cs b/msbuild/Xamarin.MacDev.Tasks/Tasks/XamarinBuildTask.cs
index 3327f3a06d07..3488936ddd66 100644
--- a/msbuild/Xamarin.MacDev.Tasks/Tasks/XamarinBuildTask.cs
+++ b/msbuild/Xamarin.MacDev.Tasks/Tasks/XamarinBuildTask.cs
@@ -33,10 +33,6 @@ protected string ComputeValueUsingTarget (string computeValueTarget, string targ
net{TargetFramework.Version}-{PlatformName}
-
-
-
- true
{computeValueTarget}
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index ef1f3f98f1a3..e368fb9daaf4 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -3,9 +3,5 @@
$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))
-
-
-
- true
diff --git a/tests/dotnet/UnitTests/DotNetWatchTest.cs b/tests/dotnet/UnitTests/DotNetWatchTest.cs
index 9e0daebd8c86..682c88504f53 100644
--- a/tests/dotnet/UnitTests/DotNetWatchTest.cs
+++ b/tests/dotnet/UnitTests/DotNetWatchTest.cs
@@ -55,6 +55,30 @@ void DotNetWatchImpl (ApplePlatform platform, bool useMonoRuntime, bool enableSa
{
Configuration.IgnoreIfIgnoredPlatform (platform);
+ // Hot Reload with CoreCLR is currently broken on the mobile platforms: the app crashes with
+ // "System.BadImageFormatException: Bad IL range" right after the update has been applied.
+ // Desktop macOS is not affected.
+ //
+ // That error comes from CoreCLR's PEAssembly::GetIL, which means the runtime looked up the
+ // updated method's IL in the *baseline* PE image using the RVA from the metadata delta - and
+ // that RVA is delta-relative, so it's out of range in the baseline image. In other words the
+ // runtime didn't pick up the delta IL when compiling the updated method.
+ //
+ // This is fallout from https://github.com/dotnet/runtime/pull/130159 ("Use CodeVersioning for
+ // EnC"), which made the delta IL be stored as an ILCodeVersion: only
+ // VersionedPrepareCodeConfig::GetILHeader returns it, while the plain
+ // PrepareCodeConfig::GetILHeader falls back to MethodDesc::GetILHeader (= the baseline RVA
+ // lookup that ends up throwing). Something on the mobile-only code path prepares the updated
+ // method with a non-versioned config. The mobile difference isn't code versioning as such
+ // (that's enabled everywhere, since FEATURE_METADATA_UPDATER turns on FEATURE_CODE_VERSIONING),
+ // but rather that FEATURE_DYNAMIC_CODE_COMPILED is off for Apple mobile, so there's no JIT and
+ // these apps run the CoreCLR interpreter instead.
+ //
+ // Tracked upstream here: https://github.com/dotnet/runtime/issues/132804
+ // Re-enable these test cases once the fix has flowed into our runtime.
+ if (!useMonoRuntime && platform != ApplePlatform.MacOSX)
+ Assert.Ignore ("Hot Reload with CoreCLR is currently broken on this platform: https://github.com/dotnet/macios/issues/26470");
+
var projectPath = GetProjectPath ("HotReloadTestApp", platform: platform);
var projectDirectory = Path.GetDirectoryName (projectPath)!;
diff --git a/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt b/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt
index 3f7562da28c3..a10d7ed66fec 100644
--- a/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt
+++ b/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt
@@ -1944,10 +1944,14 @@ System.Private.CoreLib.dll:/__StaticArrayInitTypeS
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=128
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=128 ::2F3EFC9595514E83DED03093C4F3E3C781A650E1AAB8CA350537CD1A47E1EE8E
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=128 ::F8919BA0F50317229A66884F9CE4E004B755100D8A4000A28D468B0627472F4D
+System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=128_Align=8
+System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=128_Align=8 ::4EFE2D3A64964C812874074A7FEE8B5A2B4425064A81A9D44C0E7A3025C716388
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=1316
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=1316 ::A72EB4166B1B422391E0F6E483BEF87AE75881E655BCB152E37F3D9688B2AA71
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=1472_Align=2
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=1472_Align=2 ::7BEC6AD454781FDCD8D475B3418629CBABB3BF9CA66FA80009D608A1A60D06962
+System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=152_Align=8
+System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=152_Align=8 ::DD471F12FFA94CC557A02A91C2CBB95F551AB28C8BBF297B2F953B8886BCCF6D8
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=15552
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=15552 ::3A2A62DD9288C777284B5B71FB3EFB59CFDF6BF81068A16795E6155DB8BFA701
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=16
@@ -1986,6 +1990,8 @@ System.Private.CoreLib.dll:/__StaticArrayInitTypeS
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=256_Align=8 ::40BC6C50487BFA78776C051EF7555931E4F15E5CEE9481EB280B1C2630B906B48
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=28_Align=2
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=28_Align=2 ::374EE580A55269D9E298B7EFD9DB0DFE1798E301679B89E48D722345EB74B59B2
+System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=28_Align=4
+System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=28_Align=4 ::2106C9B520169CFE919ED2D7BAE85C716D866D8DC2716F286D9C95511F1B9B014
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=288_Align=4
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=288_Align=4 ::74BCD6ED20AF2231F2BB1CDE814C5F4FF48E54BAC46029EEF90DDF4A208E2B204
System.Private.CoreLib.dll:/__StaticArrayInitTypeSize=32
@@ -2403,6 +2409,7 @@ System.Private.CoreLib.dll:method System.Void *(System.Byte&) System.RuntimeType
System.Private.CoreLib.dll:method System.Void *(System.Object,System.Action`1,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags) System.Runtime.CompilerServices.AsyncHelpers/ValueTaskSourceContinuation::OnCompletedValueTaskSource
System.Private.CoreLib.dll:method System.Void *(System.Object,System.Int16,System.Byte&) System.Runtime.CompilerServices.AsyncHelpers/ValueTaskSourceContinuation::_getResult
System.Private.CoreLib.dll:method System.Void *(System.Object) System.RuntimeType/ActivatorCache::_pfnRefCtor
+System.Private.CoreLib.dll:method System.Void *(System.Runtime.CompilerServices.Continuation,System.Int32,System.Action) System.Runtime.CompilerServices.AsyncHelpers/RuntimeAsyncStackState::AwaiterContinuation
System.Private.CoreLib.dll:method System.Void *(System.Runtime.CompilerServices.TailCallArgBuffer*,System.Byte&,System.Runtime.CompilerServices.PortableTailCallFrame*) System.Runtime.CompilerServices.PortableTailCallFrame::NextCall
System.Private.CoreLib.dll:method System.Void *(System.Threading.Tasks.Task,System.Byte&) System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation::_getResult
System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle
@@ -2428,7 +2435,7 @@ System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.get_Path()
System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.get_SupportsRandomAccess()
System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.get_ThreadPoolBinding()
System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.get_Type()
-System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.GetCanSeek()
+System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.GetCanSeekCore()
System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.GetFileLength()
System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.GetFileTypeCore()
System.Private.CoreLib.dll:Microsoft.Win32.SafeHandles.SafeFileHandle.GetThreadPoolValueTaskSource()
@@ -2877,6 +2884,9 @@ System.Private.CoreLib.dll:System.Boolean System.Collections.ObjectModel.ReadOnl
System.Private.CoreLib.dll:System.Boolean System.DateTimeRawInfo::hasSameDateAndTimeSeparators
System.Private.CoreLib.dll:System.Boolean System.Decimal/DecCalc::IsNegative()
System.Private.CoreLib.dll:System.Boolean System.DefaultBinder/BinderState::_isParamArray
+System.Private.CoreLib.dll:System.Boolean System.Delegate::HasSingleTarget()
+System.Private.CoreLib.dll:System.Boolean System.Delegate::IsClosed()
+System.Private.CoreLib.dll:System.Boolean System.Delegate::IsUnmanagedFunctionPtr()
System.Private.CoreLib.dll:System.Boolean System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute::k__BackingField
System.Private.CoreLib.dll:System.Boolean System.Diagnostics.Debugger::IsAttached()
System.Private.CoreLib.dll:System.Boolean System.Diagnostics.StackFrame::_isLastFrameFromForeignExceptionStackTrace
@@ -3001,9 +3011,10 @@ System.Private.CoreLib.dll:System.Boolean System.LocalAppContextSwitches::ForceI
System.Private.CoreLib.dll:System.Boolean System.LocalAppContextSwitches::FormatJapaneseFirstYearAsANumber()
System.Private.CoreLib.dll:System.Boolean System.LocalAppContextSwitches::ShowILOffsets()
System.Private.CoreLib.dll:System.Boolean System.Memory`1::IsEmpty()
-System.Private.CoreLib.dll:System.Boolean System.MulticastDelegate::HasSingleTarget()
System.Private.CoreLib.dll:System.Boolean System.Nullable`1::hasValue
System.Private.CoreLib.dll:System.Boolean System.Nullable`1::HasValue()
+System.Private.CoreLib.dll:System.Boolean System.Number/DecodedDecimalIeee754`1::k__BackingField
+System.Private.CoreLib.dll:System.Boolean System.Number/DecodedDecimalIeee754`1::Signed()
System.Private.CoreLib.dll:System.Boolean System.Number/NumberBuffer::HasNonZeroTail
System.Private.CoreLib.dll:System.Boolean System.Number/NumberBuffer::IsNegative
System.Private.CoreLib.dll:System.Boolean System.Numerics.Vector::IsHardwareAccelerated()
@@ -3115,8 +3126,9 @@ System.Private.CoreLib.dll:System.Boolean System.Reflection.TypeNameResolver::_r
System.Private.CoreLib.dll:System.Boolean System.Reflection.TypeNameResolver::_suppressContextualReflectionContext
System.Private.CoreLib.dll:System.Boolean System.Reflection.TypeNameResolver::_throwOnError
System.Private.CoreLib.dll:System.Boolean System.Reflection.TypeNameResolver::SupportsUnboundGenerics()
-System.Private.CoreLib.dll:System.Boolean System.Runtime.CompilerServices.AsyncMethodBuilderCore::TrackAsyncMethodCompletion()
System.Private.CoreLib.dll:System.Boolean System.Runtime.CompilerServices.AsyncProfiler/Info::CurrentContinuationCompleted
+System.Private.CoreLib.dll:System.Boolean System.Runtime.CompilerServices.AsyncProfiler/Info::CurrentContinuationResumes
+System.Private.CoreLib.dll:System.Boolean System.Runtime.CompilerServices.AsyncProfiler/Info::ReachedLastContinuation
System.Private.CoreLib.dll:System.Boolean System.Runtime.CompilerServices.ConditionalWeakTable`2/Container::_finalized
System.Private.CoreLib.dll:System.Boolean System.Runtime.CompilerServices.ConditionalWeakTable`2/Container::_invalid
System.Private.CoreLib.dll:System.Boolean System.Runtime.CompilerServices.ConditionalWeakTable`2/Container::HasCapacity()
@@ -3721,12 +3733,12 @@ System.Private.CoreLib.dll:System.Byte modreq(System.Runtime.CompilerServices.Is
System.Private.CoreLib.dll:System.Byte System.Byte::m_value
System.Private.CoreLib.dll:System.Byte System.Byte::System.IBinaryIntegerParseAndFormatInfo.MaxValueDiv10()
System.Private.CoreLib.dll:System.Byte System.Byte::System.Numerics.IMinMaxValue.MaxValue()
+System.Private.CoreLib.dll:System.Byte System.Byte::System.Numerics.IMinMaxValue.MinValue()
System.Private.CoreLib.dll:System.Byte System.Byte::System.Numerics.INumberBase.One()
System.Private.CoreLib.dll:System.Byte System.Byte::System.Numerics.INumberBase.Zero()
System.Private.CoreLib.dll:System.Byte System.Collections.Generic.InsertionBehavior::value__
System.Private.CoreLib.dll:System.Byte System.DateTimeParse/DS::value__
System.Private.CoreLib.dll:System.Byte System.Decimal::Scale()
-System.Private.CoreLib.dll:System.Byte System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap::value__
System.Private.CoreLib.dll:System.Byte System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap::value__
System.Private.CoreLib.dll:System.Byte System.DTSubStringType::value__
System.Private.CoreLib.dll:System.Byte System.GCMemoryInfoData::_compacted
@@ -3771,12 +3783,17 @@ System.Private.CoreLib.dll:System.Byte System.TimeZoneInfo/TZifType::Abbreviatio
System.Private.CoreLib.dll:System.Byte System.TimeZoneInfo/TZVersion::value__
System.Private.CoreLib.dll:System.Byte.CompareTo(System.Byte)
System.Private.CoreLib.dll:System.Byte.CompareTo(System.Object)
+System.Private.CoreLib.dll:System.Byte.CreateChecked`1(TOther)
System.Private.CoreLib.dll:System.Byte.CreateSaturating`1(TOther)
System.Private.CoreLib.dll:System.Byte.CreateTruncating`1(TOther)
+System.Private.CoreLib.dll:System.Byte.DivRem(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.Equals(System.Byte)
System.Private.CoreLib.dll:System.Byte.Equals(System.Object)
System.Private.CoreLib.dll:System.Byte.GetHashCode()
System.Private.CoreLib.dll:System.Byte.GetTypeCode()
+System.Private.CoreLib.dll:System.Byte.IsOddInteger(System.Byte)
+System.Private.CoreLib.dll:System.Byte.LeadingZeroCount(System.Byte)
+System.Private.CoreLib.dll:System.Byte.Log2(System.Byte)
System.Private.CoreLib.dll:System.Byte.Max(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.Min(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.Parse(System.ReadOnlySpan`1, System.Globalization.NumberStyles, System.IFormatProvider)
@@ -3812,32 +3829,42 @@ System.Private.CoreLib.dll:System.Byte.System.IUtfChar.CastFrom(Sys
System.Private.CoreLib.dll:System.Byte.System.IUtfChar.CastFrom(System.UInt64)
System.Private.CoreLib.dll:System.Byte.System.IUtfChar.CastToUInt32(System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IAdditionOperators.op_Addition(System.Byte, System.Byte)
+System.Private.CoreLib.dll:System.Byte.System.Numerics.IBinaryInteger.GetByteCount()
System.Private.CoreLib.dll:System.Byte.System.Numerics.IBitwiseOperators.op_BitwiseAnd(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IBitwiseOperators.op_BitwiseOr(System.Byte, System.Byte)
+System.Private.CoreLib.dll:System.Byte.System.Numerics.IBitwiseOperators.op_ExclusiveOr(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IBitwiseOperators.op_OnesComplement(System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IComparisonOperators.op_GreaterThan(System.Byte, System.Byte)
+System.Private.CoreLib.dll:System.Byte.System.Numerics.IComparisonOperators.op_GreaterThanOrEqual(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IComparisonOperators.op_LessThan(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IComparisonOperators.op_LessThanOrEqual(System.Byte, System.Byte)
+System.Private.CoreLib.dll:System.Byte.System.Numerics.IDivisionOperators.op_Division(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IEqualityOperators.op_Equality(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IEqualityOperators.op_Inequality(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IMinMaxValue.get_MaxValue()
+System.Private.CoreLib.dll:System.Byte.System.Numerics.IMinMaxValue.get_MinValue()
+System.Private.CoreLib.dll:System.Byte.System.Numerics.IMultiplyOperators.op_Multiply(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.get_One()
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.get_Zero()
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.IsFinite(System.Byte)
+System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.IsInfinity(System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.IsNaN(System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.IsNegative(System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.IsZero(System.Byte)
+System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.TryConvertFromChecked`1(TOther, out System.Byte&)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.TryConvertFromSaturating`1(TOther, out System.Byte&)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.TryConvertFromTruncating`1(TOther, out System.Byte&)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.TryConvertToChecked`1(System.Byte, out TOther&)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.TryConvertToSaturating`1(System.Byte, out TOther&)
System.Private.CoreLib.dll:System.Byte.System.Numerics.INumberBase.TryConvertToTruncating`1(System.Byte, out TOther&)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IShiftOperators.op_LeftShift(System.Byte, System.Int32)
+System.Private.CoreLib.dll:System.Byte.System.Numerics.IShiftOperators.op_RightShift(System.Byte, System.Int32)
System.Private.CoreLib.dll:System.Byte.System.Numerics.ISubtractionOperators.op_Subtraction(System.Byte, System.Byte)
System.Private.CoreLib.dll:System.Byte.System.Numerics.IUnaryNegationOperators.op_UnaryNegation(System.Byte)
System.Private.CoreLib.dll:System.Byte.ToString()
System.Private.CoreLib.dll:System.Byte.ToString(System.IFormatProvider)
System.Private.CoreLib.dll:System.Byte.ToString(System.String, System.IFormatProvider)
+System.Private.CoreLib.dll:System.Byte.TryConvertFromChecked`1(TOther, out System.Byte&)
System.Private.CoreLib.dll:System.Byte.TryConvertFromSaturating`1(TOther, out System.Byte&)
System.Private.CoreLib.dll:System.Byte.TryConvertFromTruncating`1(TOther, out System.Byte&)
System.Private.CoreLib.dll:System.Byte.TryFormat(System.Span`1, out System.Int32&, System.ReadOnlySpan`1, System.IFormatProvider)
@@ -3906,6 +3933,7 @@ System.Private.CoreLib.dll:System.Char System.Buffers.RangeCharSearchValues`1::_
System.Private.CoreLib.dll:System.Char System.Char::m_value
System.Private.CoreLib.dll:System.Char System.Char::System.IBinaryIntegerParseAndFormatInfo.MaxValueDiv10()
System.Private.CoreLib.dll:System.Char System.Char::System.Numerics.IMinMaxValue.MaxValue()
+System.Private.CoreLib.dll:System.Char System.Char::System.Numerics.IMinMaxValue.MinValue()
System.Private.CoreLib.dll:System.Char System.Char::System.Numerics.INumberBase.One()
System.Private.CoreLib.dll:System.Char System.Char::System.Numerics.INumberBase.Zero()
System.Private.CoreLib.dll:System.Char System.CharEnumerator::Current()
@@ -3986,27 +4014,39 @@ System.Private.CoreLib.dll:System.Char.System.IUtfChar.CastFrom(Sys
System.Private.CoreLib.dll:System.Char.System.IUtfChar.CastFrom(System.UInt64)
System.Private.CoreLib.dll:System.Char.System.IUtfChar.CastToUInt32(System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IAdditionOperators.op_Addition(System.Char, System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.IBinaryInteger.GetByteCount()
+System.Private.CoreLib.dll:System.Char.System.Numerics.IBinaryInteger.LeadingZeroCount(System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.IBinaryNumber.Log2(System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IBitwiseOperators.op_BitwiseAnd(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IBitwiseOperators.op_BitwiseOr(System.Char, System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.IBitwiseOperators.op_ExclusiveOr(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IBitwiseOperators.op_OnesComplement(System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IComparisonOperators.op_GreaterThan(System.Char, System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.IComparisonOperators.op_GreaterThanOrEqual(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IComparisonOperators.op_LessThan(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IComparisonOperators.op_LessThanOrEqual(System.Char, System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.IDivisionOperators.op_Division(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IEqualityOperators.op_Equality(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IEqualityOperators.op_Inequality(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IMinMaxValue.get_MaxValue()
+System.Private.CoreLib.dll:System.Char.System.Numerics.IMinMaxValue.get_MinValue()
+System.Private.CoreLib.dll:System.Char.System.Numerics.IMultiplyOperators.op_Multiply(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.get_One()
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.get_Zero()
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.IsFinite(System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.IsInfinity(System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.IsNaN(System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.IsNegative(System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.IsOddInteger(System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.IsZero(System.Char)
+System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.TryConvertFromChecked`1(TOther, out System.Char&)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.TryConvertFromSaturating`1(TOther, out System.Char&)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.TryConvertFromTruncating`1(TOther, out System.Char&)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.TryConvertToChecked`1(System.Char, out TOther&)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.TryConvertToSaturating`1(System.Char, out TOther&)
System.Private.CoreLib.dll:System.Char.System.Numerics.INumberBase.TryConvertToTruncating`1(System.Char, out TOther&)
System.Private.CoreLib.dll:System.Char.System.Numerics.IShiftOperators.op_LeftShift(System.Char, System.Int32)
+System.Private.CoreLib.dll:System.Char.System.Numerics.IShiftOperators.op_RightShift(System.Char, System.Int32)
System.Private.CoreLib.dll:System.Char.System.Numerics.ISubtractionOperators.op_Subtraction(System.Char, System.Char)
System.Private.CoreLib.dll:System.Char.System.Numerics.IUnaryNegationOperators.op_UnaryNegation(System.Char)
System.Private.CoreLib.dll:System.Char.ToString()
@@ -5195,6 +5235,7 @@ System.Private.CoreLib.dll:System.Decimal System.Decimal::MultiplicativeIdentity
System.Private.CoreLib.dll:System.Decimal System.Decimal::NegativeOne
System.Private.CoreLib.dll:System.Decimal System.Decimal::One
System.Private.CoreLib.dll:System.Decimal System.Decimal::System.Numerics.IMinMaxValue.MaxValue()
+System.Private.CoreLib.dll:System.Decimal System.Decimal::System.Numerics.IMinMaxValue.MinValue()
System.Private.CoreLib.dll:System.Decimal System.Decimal::System.Numerics.INumberBase.One()
System.Private.CoreLib.dll:System.Decimal System.Decimal::System.Numerics.INumberBase.Zero()
System.Private.CoreLib.dll:System.Decimal System.Decimal::Zero
@@ -5218,6 +5259,7 @@ System.Private.CoreLib.dll:System.Decimal..ctor(System.UInt64)
System.Private.CoreLib.dll:System.Decimal.AsMutable(System.Decimal&)
System.Private.CoreLib.dll:System.Decimal.CompareTo(System.Decimal)
System.Private.CoreLib.dll:System.Decimal.CompareTo(System.Object)
+System.Private.CoreLib.dll:System.Decimal.CreateChecked`1(TOther)
System.Private.CoreLib.dll:System.Decimal.CreateSaturating`1(TOther)
System.Private.CoreLib.dll:System.Decimal.CreateTruncating`1(TOther)
System.Private.CoreLib.dll:System.Decimal.DecDivMod1E9(System.Decimal&)
@@ -5232,8 +5274,10 @@ System.Private.CoreLib.dll:System.Decimal.get_Scale()
System.Private.CoreLib.dll:System.Decimal.GetHashCode()
System.Private.CoreLib.dll:System.Decimal.GetTypeCode()
System.Private.CoreLib.dll:System.Decimal.IsNegative(System.Decimal)
+System.Private.CoreLib.dll:System.Decimal.IsOddInteger(System.Decimal)
System.Private.CoreLib.dll:System.Decimal.IsValid(System.Int32)
System.Private.CoreLib.dll:System.Decimal.op_Addition(System.Decimal, System.Decimal)
+System.Private.CoreLib.dll:System.Decimal.op_Division(System.Decimal, System.Decimal)
System.Private.CoreLib.dll:System.Decimal.op_Equality(System.Decimal, System.Decimal)
System.Private.CoreLib.dll:System.Decimal.op_Explicit(System.Decimal) => System.Byte
System.Private.CoreLib.dll:System.Decimal.op_Explicit(System.Decimal) => System.Char
@@ -5262,6 +5306,7 @@ System.Private.CoreLib.dll:System.Decimal.op_Implicit(System.UInt64) => System.D
System.Private.CoreLib.dll:System.Decimal.op_Inequality(System.Decimal, System.Decimal)
System.Private.CoreLib.dll:System.Decimal.op_LessThan(System.Decimal, System.Decimal)
System.Private.CoreLib.dll:System.Decimal.op_LessThanOrEqual(System.Decimal, System.Decimal)
+System.Private.CoreLib.dll:System.Decimal.op_Multiply(System.Decimal, System.Decimal)
System.Private.CoreLib.dll:System.Decimal.op_Subtraction(System.Decimal, System.Decimal)
System.Private.CoreLib.dll:System.Decimal.op_UnaryNegation(System.Decimal)
System.Private.CoreLib.dll:System.Decimal.Parse(System.ReadOnlySpan`1, System.Globalization.NumberStyles, System.IFormatProvider)
@@ -5285,11 +5330,14 @@ System.Private.CoreLib.dll:System.Decimal.System.IConvertible.ToUInt16(System.IF
System.Private.CoreLib.dll:System.Decimal.System.IConvertible.ToUInt32(System.IFormatProvider)
System.Private.CoreLib.dll:System.Decimal.System.IConvertible.ToUInt64(System.IFormatProvider)
System.Private.CoreLib.dll:System.Decimal.System.Numerics.IMinMaxValue.get_MaxValue()
+System.Private.CoreLib.dll:System.Decimal.System.Numerics.IMinMaxValue.get_MinValue()
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.get_One()
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.get_Zero()
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.IsFinite(System.Decimal)
+System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.IsInfinity(System.Decimal)
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.IsNaN(System.Decimal)
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.IsZero(System.Decimal)
+System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.TryConvertFromChecked`1(TOther, out System.Decimal&)
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.TryConvertFromSaturating`1(TOther, out System.Decimal&)
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.TryConvertFromTruncating`1(TOther, out System.Decimal&)
System.Private.CoreLib.dll:System.Decimal.System.Numerics.INumberBase.TryConvertToChecked`1(System.Decimal, out TOther&)
@@ -5310,40 +5358,77 @@ System.Private.CoreLib.dll:System.Decimal.ToUInt64(System.Decimal)
System.Private.CoreLib.dll:System.Decimal.Truncate(System.Decimal)
System.Private.CoreLib.dll:System.Decimal.Truncate(System.Decimal&)
System.Private.CoreLib.dll:System.Decimal.TryConvertFrom`1(TOther, out System.Decimal&)
+System.Private.CoreLib.dll:System.Decimal.TryConvertFromChecked`1(TOther, out System.Decimal&)
System.Private.CoreLib.dll:System.Decimal.TryConvertTo`1(System.Decimal, out TOther&)
System.Private.CoreLib.dll:System.Decimal.TryFormat(System.Span`1, out System.Int32&, System.ReadOnlySpan`1, System.IFormatProvider)
System.Private.CoreLib.dll:System.Decimal/DecCalc
+System.Private.CoreLib.dll:System.Decimal/DecCalc..cctor()
+System.Private.CoreLib.dll:System.Decimal/DecCalc.Add32To96(System.Decimal/DecCalc/Buf12&, System.UInt32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.DecAddSub(System.Decimal/DecCalc&, System.Decimal/DecCalc&, System.Boolean)
System.Private.CoreLib.dll:System.Decimal/DecCalc.DecDivMod1E9(System.Decimal/DecCalc&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.DecimalToFloatingPoint`1(System.UInt64, System.UInt32, System.Int32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.DecimalToFloatingPointExact(System.UInt64, System.UInt32, System.Int32, System.Int32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.Div128By64(System.Decimal/DecCalc/Buf16&, System.UInt64)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.Div128By96(System.Decimal/DecCalc/Buf16&, System.Decimal/DecCalc/Buf12&)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.Div64By32(System.UInt64, System.UInt32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.Div96By32(System.Decimal/DecCalc/Buf12&, System.UInt32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.Div96By64(System.Decimal/DecCalc/Buf12&, System.UInt64)
System.Private.CoreLib.dll:System.Decimal/DecCalc.Div96ByConst(System.UInt64&, System.UInt32&, System.UInt32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.DivByConst(System.UInt32*, System.UInt32, out System.UInt32&, out System.UInt32&, System.UInt32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.Equals(System.Decimal&, System.Decimal&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.get_High()
System.Private.CoreLib.dll:System.Decimal/DecCalc.get_IsNegative()
+System.Private.CoreLib.dll:System.Decimal/DecCalc.get_Low()
System.Private.CoreLib.dll:System.Decimal/DecCalc.get_Low64()
+System.Private.CoreLib.dll:System.Decimal/DecCalc.get_Mid()
System.Private.CoreLib.dll:System.Decimal/DecCalc.get_Scale()
System.Private.CoreLib.dll:System.Decimal/DecCalc.get_UInt32Powers10()
+System.Private.CoreLib.dll:System.Decimal/DecCalc.get_UInt64Powers10()
System.Private.CoreLib.dll:System.Decimal/DecCalc.GetHashCode(System.Decimal&)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.IncreaseScale(System.Decimal/DecCalc/Buf12&, System.UInt32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.IncreaseScale(System.Decimal/DecCalc/Buf16&, System.UInt32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.IncreaseScale64(System.Decimal/DecCalc/Buf12&, System.UInt32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.InternalRound(System.Decimal/DecCalc&, System.UInt32, System.MidpointRounding)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.OverflowUnscale(System.Decimal/DecCalc/Buf12&, System.Int32, System.Boolean)
System.Private.CoreLib.dll:System.Decimal/DecCalc.Pow5(System.Int32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.RoundShiftRightEven(System.UInt128, System.Int32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.ScaleResult(System.Decimal/DecCalc/Buf24*, System.UInt32, System.Int32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.SearchScale(System.UInt64, System.UInt32, System.Int32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.set_High(System.UInt32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.set_Low(System.UInt32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.set_Low64(System.UInt64)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.set_Mid(System.UInt32)
System.Private.CoreLib.dll:System.Decimal/DecCalc.Unscale(System.UInt32&, System.UInt64&, System.Int32&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarCyFromDec(System.Decimal/DecCalc&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarDecCmp(System.Decimal&, System.Decimal&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarDecCmpSub(System.Decimal&, System.Decimal&)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.VarDecDiv(System.Decimal/DecCalc&, System.Decimal/DecCalc&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarDecFromFloat`1(TNumber, out System.Decimal/DecCalc&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarDecFromR4(System.Single, out System.Decimal/DecCalc&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarDecFromR8(System.Double, out System.Decimal/DecCalc&)
+System.Private.CoreLib.dll:System.Decimal/DecCalc.VarDecMul(System.Decimal/DecCalc&, System.Decimal/DecCalc&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarR4FromDec(System.Decimal&)
System.Private.CoreLib.dll:System.Decimal/DecCalc.VarR8FromDec(System.Decimal&)
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf12
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf12 System.Decimal/DecCalc/Buf16::High96
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf12 System.Decimal/DecCalc/Buf16::Low96
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf12.get_High64()
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf12.get_Low64()
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf12.set_High64(System.UInt64)
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf12.set_Low64(System.UInt64)
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf16
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf16.get_High64()
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf16.get_Low64()
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf16.set_High64(System.UInt64)
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf16.set_Low64(System.UInt64)
System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf24
System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf24.get_Low64()
+System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf24.set_High64(System.UInt64)
System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf24.set_Low64(System.UInt64)
System.Private.CoreLib.dll:System.Decimal/DecCalc/Buf24.set_Mid64(System.UInt64)
+System.Private.CoreLib.dll:System.Decimal/DecCalc/PowerOvfl
+System.Private.CoreLib.dll:System.Decimal/DecCalc/PowerOvfl..ctor(System.UInt32, System.UInt32, System.UInt32)
+System.Private.CoreLib.dll:System.Decimal/DecCalc/PowerOvfl[] System.Decimal/DecCalc::PowerOvflValues
System.Private.CoreLib.dll:System.DefaultBinder
System.Private.CoreLib.dll:System.DefaultBinder System.DefaultBinder::Instance
System.Private.CoreLib.dll:System.DefaultBinder..cctor()
@@ -5387,47 +5472,74 @@ System.Private.CoreLib.dll:System.DefaultBinder/Primitives System.DefaultBinder/
System.Private.CoreLib.dll:System.DefaultBinder/Primitives System.DefaultBinder/Primitives::UInt32
System.Private.CoreLib.dll:System.DefaultBinder/Primitives System.DefaultBinder/Primitives::UInt64
System.Private.CoreLib.dll:System.Delegate
+System.Private.CoreLib.dll:System.Delegate System.Delegate/Wrapper::Value
System.Private.CoreLib.dll:System.Delegate System.Threading.CancellationTokenSource/CallbackNode::Callback
System.Private.CoreLib.dll:System.Delegate System.Threading.Tasks.Task::m_action
System.Private.CoreLib.dll:System.Delegate System.Threading.Thread/StartHelper::_start
-System.Private.CoreLib.dll:System.Delegate.g____PInvoke|19_0(System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack, System.RuntimeMethodHandleInternal, System.Runtime.CompilerServices.QCallTypeHandle, System.DelegateBindingFlags)
-System.Private.CoreLib.dll:System.Delegate.g____PInvoke|32_0(System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack)
+System.Private.CoreLib.dll:System.Delegate.g____PInvoke|34_0(System.Runtime.CompilerServices.MethodTable*, System.Runtime.CompilerServices.MethodTable*, System.RuntimeMethodHandleInternal, System.Runtime.CompilerServices.QCallTypeHandle, System.DelegateBindingFlags, System.Runtime.CompilerServices.ObjectHandleOnStack, System.Delegate/BindToMethodDetails*)
+System.Private.CoreLib.dll:System.Delegate.g____PInvoke|39_0(System.Runtime.CompilerServices.MethodTable*, System.Runtime.CompilerServices.MethodTable*, System.IntPtr, System.Delegate/BindToMethodDetails*)
System.Private.CoreLib.dll:System.Delegate.AdjustTarget(System.Object, System.IntPtr)
-System.Private.CoreLib.dll:System.Delegate.AdjustTarget(System.Runtime.CompilerServices.ObjectHandleOnStack, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.AdjustTarget(System.Runtime.CompilerServices.MethodTable*, System.IntPtr)
System.Private.CoreLib.dll:System.Delegate.BindToMethodInfo(System.Object, System.IRuntimeMethodInfo, System.RuntimeType, System.DelegateBindingFlags)
-System.Private.CoreLib.dll:System.Delegate.BindToMethodInfo(System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack, System.RuntimeMethodHandleInternal, System.Runtime.CompilerServices.QCallTypeHandle, System.DelegateBindingFlags)
+System.Private.CoreLib.dll:System.Delegate.BindToMethodInfo(System.Runtime.CompilerServices.MethodTable*, System.Runtime.CompilerServices.MethodTable*, System.RuntimeMethodHandleInternal, System.Runtime.CompilerServices.QCallTypeHandle, System.DelegateBindingFlags, System.Runtime.CompilerServices.ObjectHandleOnStack, out System.Delegate/BindToMethodDetails&)
System.Private.CoreLib.dll:System.Delegate.Combine(System.Delegate, System.Delegate)
System.Private.CoreLib.dll:System.Delegate.CombineImpl(System.Delegate)
-System.Private.CoreLib.dll:System.Delegate.Construct(System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.Construct(System.Runtime.CompilerServices.MethodTable*, System.Runtime.CompilerServices.MethodTable*, System.IntPtr, out System.Delegate/BindToMethodDetails&)
System.Private.CoreLib.dll:System.Delegate.CreateDelegateInternal(System.RuntimeType, System.Reflection.RuntimeMethodInfo, System.Object, System.DelegateBindingFlags)
+System.Private.CoreLib.dll:System.Delegate.CreateMethodInfo(System.Runtime.CompilerServices.MethodDesc*, System.Runtime.CompilerServices.ObjectHandleOnStack)
+System.Private.CoreLib.dll:System.Delegate.CreateMethodInfo(System.Runtime.CompilerServices.MethodDesc*)
+System.Private.CoreLib.dll:System.Delegate.CtorClosed(System.Object, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.CtorClosedStatic(System.Object, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.CtorCollectibleClosedStatic(System.Object, System.IntPtr, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.CtorCollectibleOpen(System.Object, System.IntPtr, System.IntPtr, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.CtorCollectibleVirtualDispatch(System.Object, System.IntPtr, System.IntPtr, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.CtorOpen(System.Object, System.IntPtr, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.CtorRTClosed(System.Object, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.CtorVirtualDispatch(System.Object, System.IntPtr, System.IntPtr)
System.Private.CoreLib.dll:System.Delegate.DelegateConstruct(System.Object, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.DeleteFromInvocationList(System.ReadOnlySpan`1, System.Int32, System.Int32)
System.Private.CoreLib.dll:System.Delegate.EnumerateInvocationList`1(TDelegate)
System.Private.CoreLib.dll:System.Delegate.Equals(System.Object)
-System.Private.CoreLib.dll:System.Delegate.FindMethodHandle()
-System.Private.CoreLib.dll:System.Delegate.FindMethodHandle(System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack)
+System.Private.CoreLib.dll:System.Delegate.get_HasSingleTarget()
+System.Private.CoreLib.dll:System.Delegate.get_IsClosed()
+System.Private.CoreLib.dll:System.Delegate.get_IsUnmanagedFunctionPtr()
System.Private.CoreLib.dll:System.Delegate.get_Method()
+System.Private.CoreLib.dll:System.Delegate.get_MethodDesc()
System.Private.CoreLib.dll:System.Delegate.GetHashCode()
System.Private.CoreLib.dll:System.Delegate.GetInvokeMethod()
System.Private.CoreLib.dll:System.Delegate.GetInvokeMethod(System.Runtime.CompilerServices.MethodTable*)
+System.Private.CoreLib.dll:System.Delegate.GetMethodDesc()
+System.Private.CoreLib.dll:System.Delegate.GetMethodDesc(System.Runtime.CompilerServices.ObjectHandleOnStack)
System.Private.CoreLib.dll:System.Delegate.GetMethodImpl()
+System.Private.CoreLib.dll:System.Delegate.GetMethodImplUncached()
System.Private.CoreLib.dll:System.Delegate.GetMulticastInvoke()
System.Private.CoreLib.dll:System.Delegate.GetMulticastInvoke(System.Runtime.CompilerServices.MethodTable*)
System.Private.CoreLib.dll:System.Delegate.GetMulticastInvokeSlow(System.Runtime.CompilerServices.MethodTable*)
System.Private.CoreLib.dll:System.Delegate.GetTargetForSingleCastInstanceDelegate()
System.Private.CoreLib.dll:System.Delegate.InitializeVirtualCallStub(System.IntPtr)
System.Private.CoreLib.dll:System.Delegate.InitializeVirtualCallStub(System.Runtime.CompilerServices.ObjectHandleOnStack, System.IntPtr)
+System.Private.CoreLib.dll:System.Delegate.InternalAlloc(System.Runtime.CompilerServices.MethodTable*)
System.Private.CoreLib.dll:System.Delegate.InternalAlloc(System.RuntimeType)
-System.Private.CoreLib.dll:System.Delegate.InternalEqualMethodHandles(System.Delegate, System.Delegate)
-System.Private.CoreLib.dll:System.Delegate.InternalEqualMethodHandles(System.Runtime.CompilerServices.ObjectHandleOnStack, System.Runtime.CompilerServices.ObjectHandleOnStack)
System.Private.CoreLib.dll:System.Delegate.InternalEqualTypes(System.Object, System.Object)
+System.Private.CoreLib.dll:System.Delegate.NewMulticastDelegate(System.Delegate/Wrapper[], System.Int32, System.Boolean)
System.Private.CoreLib.dll:System.Delegate.op_Equality(System.Delegate, System.Delegate)
System.Private.CoreLib.dll:System.Delegate.Remove(System.Delegate, System.Delegate)
System.Private.CoreLib.dll:System.Delegate.RemoveImpl(System.Delegate)
+System.Private.CoreLib.dll:System.Delegate.ThrowNullThisInDelegateToInstance()
+System.Private.CoreLib.dll:System.Delegate.TryGetAt(System.Int32)
+System.Private.CoreLib.dll:System.Delegate.TryGetInvocations(out System.ReadOnlySpan`1&)
+System.Private.CoreLib.dll:System.Delegate.TrySetSlot(System.Delegate&, System.Delegate)
+System.Private.CoreLib.dll:System.Delegate/BindToMethodDetails
System.Private.CoreLib.dll:System.Delegate/InvocationListEnumerator`1
System.Private.CoreLib.dll:System.Delegate/InvocationListEnumerator`1..ctor(System.MulticastDelegate)
System.Private.CoreLib.dll:System.Delegate/InvocationListEnumerator`1.get_Current()
System.Private.CoreLib.dll:System.Delegate/InvocationListEnumerator`1.GetEnumerator()
System.Private.CoreLib.dll:System.Delegate/InvocationListEnumerator`1.MoveNext()
+System.Private.CoreLib.dll:System.Delegate/Wrapper
+System.Private.CoreLib.dll:System.Delegate/Wrapper..ctor(System.Delegate)
+System.Private.CoreLib.dll:System.Delegate/Wrapper.Equals(System.Delegate/Wrapper)
+System.Private.CoreLib.dll:System.Delegate/Wrapper.Equals(System.Object)
+System.Private.CoreLib.dll:System.Delegate/Wrapper.GetHashCode()
System.Private.CoreLib.dll:System.DelegateBindingFlags
System.Private.CoreLib.dll:System.DelegateBindingFlags System.DelegateBindingFlags::CaselessMatching
System.Private.CoreLib.dll:System.DelegateBindingFlags System.DelegateBindingFlags::ClosedDelegateOnly
@@ -5654,20 +5766,6 @@ System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource
System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource System.Diagnostics.Tracing.NativeRuntimeEventSource::Log
System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource..cctor()
System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource..ctor()
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionStart(System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap, System.UInt16, System.IntPtr, System.IntPtr, System.UInt64)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionStart(System.Threading.Lock)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionStop(System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap, System.UInt16, System.Double)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionStop(System.Double)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionStart(System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap, System.UInt16, System.IntPtr, System.IntPtr, System.UInt64)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionStop(System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap, System.UInt16, System.Double)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.LogWaitHandleWaitStart(System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap, System.IntPtr, System.UInt16)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.LogWaitHandleWaitStop(System.UInt16)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.WaitHandleWaitStart(System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap, System.IntPtr, System.UInt16)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.WaitHandleWaitStart(System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap, System.Object)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource.WaitHandleWaitStop(System.UInt16)
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap::Managed
-System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap System.Diagnostics.Tracing.NativeRuntimeEventSource/ContentionFlagsMap::Native
System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap
System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap::MonitorWait
System.Private.CoreLib.dll:System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap System.Diagnostics.Tracing.NativeRuntimeEventSource/WaitHandleWaitSourceMap::Unknown
@@ -5693,9 +5791,11 @@ System.Private.CoreLib.dll:System.Double System.Double::System.Numerics.IFloatin
System.Private.CoreLib.dll:System.Double System.Double::System.Numerics.IFloatingPointIeee754.NegativeZero()
System.Private.CoreLib.dll:System.Double System.Double::System.Numerics.IFloatingPointIeee754.PositiveInfinity()
System.Private.CoreLib.dll:System.Double System.Double::System.Numerics.IMinMaxValue.MaxValue()
+System.Private.CoreLib.dll:System.Double System.Double::System.Numerics.IMinMaxValue.MinValue()
System.Private.CoreLib.dll:System.Double System.Double::System.Numerics.INumberBase.One()
System.Private.CoreLib.dll:System.Double System.Double::System.Numerics.INumberBase.Zero()
System.Private.CoreLib.dll:System.Double System.NotFiniteNumberException::_offendingNumber
+System.Private.CoreLib.dll:System.Double System.Number/SqrtCoefficients::C
System.Private.CoreLib.dll:System.Double System.Runtime.InteropServices.Marshalling.ComVariant/UnionTypes::_date
System.Private.CoreLib.dll:System.Double System.Runtime.InteropServices.Marshalling.ComVariant/UnionTypes::_r8
System.Private.CoreLib.dll:System.Double System.Runtime.InteropServices.NFloat::_value
@@ -5721,9 +5821,11 @@ System.Private.CoreLib.dll:System.Double System.TimeSpan::TotalDays()
System.Private.CoreLib.dll:System.Double System.TimeSpan::TotalHours()
System.Private.CoreLib.dll:System.Double System.TimeSpan::TotalMilliseconds()
System.Private.CoreLib.dll:System.Double System.TimeSpan::TotalSeconds()
+System.Private.CoreLib.dll:System.Double.Abs(System.Double)
System.Private.CoreLib.dll:System.Double.CompareTo(System.Double)
System.Private.CoreLib.dll:System.Double.CompareTo(System.Object)
System.Private.CoreLib.dll:System.Double.ConvertToIntegerNative`1(System.Double)
+System.Private.CoreLib.dll:System.Double.CreateChecked`1(TOther)
System.Private.CoreLib.dll:System.Double.CreateDouble(System.Boolean, System.UInt16, System.UInt64)
System.Private.CoreLib.dll:System.Double.CreateSaturating`1(TOther)
System.Private.CoreLib.dll:System.Double.CreateTruncating`1(TOther)
@@ -5732,14 +5834,19 @@ System.Private.CoreLib.dll:System.Double.Equals(System.Object)
System.Private.CoreLib.dll:System.Double.GetHashCode()
System.Private.CoreLib.dll:System.Double.GetTypeCode()
System.Private.CoreLib.dll:System.Double.IsFinite(System.Double)
+System.Private.CoreLib.dll:System.Double.IsInfinity(System.Double)
+System.Private.CoreLib.dll:System.Double.IsInteger(System.Double)
System.Private.CoreLib.dll:System.Double.IsNaN(System.Double)
System.Private.CoreLib.dll:System.Double.IsNaNOrZero(System.Double)
System.Private.CoreLib.dll:System.Double.IsNegative(System.Double)
+System.Private.CoreLib.dll:System.Double.IsOddInteger(System.Double)
System.Private.CoreLib.dll:System.Double.IsZero(System.Double)
+System.Private.CoreLib.dll:System.Double.Log2(System.Double)
System.Private.CoreLib.dll:System.Double.Max(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.Min(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.op_Equality(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.op_GreaterThan(System.Double, System.Double)
+System.Private.CoreLib.dll:System.Double.op_GreaterThanOrEqual(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.op_Inequality(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.op_LessThan(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.op_LessThanOrEqual(System.Double, System.Double)
@@ -5789,15 +5896,20 @@ System.Private.CoreLib.dll:System.Double.System.IConvertible.ToUInt64(System.IFo
System.Private.CoreLib.dll:System.Double.System.Numerics.IAdditionOperators.op_Addition(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.System.Numerics.IBitwiseOperators.op_BitwiseAnd(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.System.Numerics.IBitwiseOperators.op_BitwiseOr(System.Double, System.Double)
+System.Private.CoreLib.dll:System.Double.System.Numerics.IBitwiseOperators.op_ExclusiveOr(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.System.Numerics.IBitwiseOperators.op_OnesComplement(System.Double)
+System.Private.CoreLib.dll:System.Double.System.Numerics.IDivisionOperators.op_Division(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.System.Numerics.IFloatingPointIeee754.get_NaN()
System.Private.CoreLib.dll:System.Double.System.Numerics.IFloatingPointIeee754.get_NegativeInfinity()
System.Private.CoreLib.dll:System.Double.System.Numerics.IFloatingPointIeee754.get_NegativeZero()
System.Private.CoreLib.dll:System.Double.System.Numerics.IFloatingPointIeee754.get_PositiveInfinity()
System.Private.CoreLib.dll:System.Double.System.Numerics.IMinMaxValue.get_MaxValue()
+System.Private.CoreLib.dll:System.Double.System.Numerics.IMinMaxValue.get_MinValue()
+System.Private.CoreLib.dll:System.Double.System.Numerics.IMultiplyOperators.op_Multiply(System.Double, System.Double)
System.Private.CoreLib.dll:System.Double.System.Numerics.INumberBase.get_One()
System.Private.CoreLib.dll:System.Double.System.Numerics.INumberBase.get_Zero()
System.Private.CoreLib.dll:System.Double.System.Numerics.INumberBase.IsZero(System.Double)
+System.Private.CoreLib.dll:System.Double.System.Numerics.INumberBase.TryConvertFromChecked`1(TOther, out System.Double&)
System.Private.CoreLib.dll:System.Double.System.Numerics.INumberBase.TryConvertFromSaturating`1(TOther, out System.Double&)
System.Private.CoreLib.dll:System.Double.System.Numerics.INumberBase.TryConvertFromTruncating`1(TOther, out System.Double&)
System.Private.CoreLib.dll:System.Double.System.Numerics.INumberBase.TryConvertToChecked`1(System.Double, out TOther&)
@@ -5808,6 +5920,7 @@ System.Private.CoreLib.dll:System.Double.System.Numerics.IUnaryNegationOperators
System.Private.CoreLib.dll:System.Double.ToString()
System.Private.CoreLib.dll:System.Double.ToString(System.IFormatProvider)
System.Private.CoreLib.dll:System.Double.ToString(System.String, System.IFormatProvider)
+System.Private.CoreLib.dll:System.Double.Truncate(System.Double)
System.Private.CoreLib.dll:System.Double.TryConvertFrom`1(TOther, out System.Double&)
System.Private.CoreLib.dll:System.Double.TryConvertTo`1(System.Double, out TOther&)
System.Private.CoreLib.dll:System.Double.TryFormat(System.Span`1, out System.Int32&, System.ReadOnlySpan`1, System.IFormatProvider)
@@ -6279,11 +6392,6 @@ System.Private.CoreLib.dll:System.GC/GC_ALLOC_FLAGS System.GC/GC_ALLOC_FLAGS::GC
System.Private.CoreLib.dll:System.GC/GC_ALLOC_FLAGS System.GC/GC_ALLOC_FLAGS::GC_ALLOC_ZEROING_OPTIONAL
System.Private.CoreLib.dll:System.GC/GCHeapHardLimitInfo
System.Private.CoreLib.dll:System.GCGenerationInfo
-System.Private.CoreLib.dll:System.GCGenerationInfo System.GCMemoryInfoData::_generationInfo0
-System.Private.CoreLib.dll:System.GCGenerationInfo System.GCMemoryInfoData::_generationInfo1
-System.Private.CoreLib.dll:System.GCGenerationInfo System.GCMemoryInfoData::_generationInfo2
-System.Private.CoreLib.dll:System.GCGenerationInfo System.GCMemoryInfoData::_generationInfo3
-System.Private.CoreLib.dll:System.GCGenerationInfo System.GCMemoryInfoData::_generationInfo4
System.Private.CoreLib.dll:System.GCKind
System.Private.CoreLib.dll:System.GCKind System.GCKind::Any
System.Private.CoreLib.dll:System.GCKind System.GCKind::Background
@@ -7220,11 +7328,12 @@ System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo System.Globaliz
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo::InvariantInfo()
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo..cctor()
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo..ctor(System.Globalization.CultureData)
-System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
+System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.g__GetProviderNonNull|60_0(System.IFormatProvider)
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.g__ThrowInvalid|167_0(System.Globalization.NumberStyles)
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.g__ThrowInvalid|166_0(System.Globalization.NumberStyles)
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.g__ThrowInvalid|165_0(System.Globalization.NumberStyles)
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.AllowHyphenDuringParsing()
+System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.CreateUtf8Cache(System.Byte[]&, System.String)
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparatorTChar`1()
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.CurrencyGroupSeparatorTChar`1()
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.CurrencySymbolTChar`1()
@@ -7247,6 +7356,7 @@ System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.get_PercentPosi
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.get_PositiveInfinitySymbol()
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.GetFormat(System.Type)
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.GetInstance(System.IFormatProvider)
+System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.GetUtf8Span(System.Byte[]&, System.String)
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.InitializeInvariantAndNegativeSignFlags()
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.NaNSymbolTChar`1()
System.Private.CoreLib.dll:System.Globalization.NumberFormatInfo.NegativeInfinitySymbolTChar`1()
@@ -7272,7 +7382,6 @@ System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalizatio
System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalization.NumberStyles::AllowLeadingWhite
System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalization.NumberStyles::AllowParentheses
System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalization.NumberStyles::AllowThousands
-System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalization.NumberStyles::AllowTrailingInvalidCharacters
System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalization.NumberStyles::AllowTrailingSign
System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalization.NumberStyles::AllowTrailingWhite
System.Private.CoreLib.dll:System.Globalization.NumberStyles System.Globalization.NumberStyles::Any
@@ -7681,6 +7790,7 @@ System.Private.CoreLib.dll:System.Guid/ParseFailure System.Guid/ParseFailure::Ov
System.Private.CoreLib.dll:System.Guid/ParseFailure System.Guid/ParseFailure::Overflow_UInt32
System.Private.CoreLib.dll:System.Half
System.Private.CoreLib.dll:System.Half System.Half::MaxValue()
+System.Private.CoreLib.dll:System.Half System.Half::MinValue()
System.Private.CoreLib.dll:System.Half System.Half::NaN()
System.Private.CoreLib.dll:System.Half System.Half::NegativeInfinity()
System.Private.CoreLib.dll:System.Half System.Half::NegativeZero()
@@ -7692,6 +7802,7 @@ System.Private.CoreLib.dll:System.Half..ctor(System.UInt16)
System.Private.CoreLib.dll:System.Half.AreZero(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.CompareTo(System.Half)
System.Private.CoreLib.dll:System.Half.CompareTo(System.Object)
+System.Private.CoreLib.dll:System.Half.CreateChecked`1(TOther)
System.Private.CoreLib.dll:System.Half.CreateDoubleNaN(System.Boolean, System.UInt64)
System.Private.CoreLib.dll:System.Half.CreateHalfNaN(System.Boolean, System.UInt64)
System.Private.CoreLib.dll:System.Half.CreateSaturating`1(TOther)
@@ -7702,6 +7813,7 @@ System.Private.CoreLib.dll:System.Half.ExtractBiasedExponentFromBits(System.UInt
System.Private.CoreLib.dll:System.Half.ExtractTrailingSignificandFromBits(System.UInt16)
System.Private.CoreLib.dll:System.Half.get_BiasedExponent()
System.Private.CoreLib.dll:System.Half.get_MaxValue()
+System.Private.CoreLib.dll:System.Half.get_MinValue()
System.Private.CoreLib.dll:System.Half.get_NaN()
System.Private.CoreLib.dll:System.Half.get_NegativeInfinity()
System.Private.CoreLib.dll:System.Half.get_NegativeZero()
@@ -7709,12 +7821,16 @@ System.Private.CoreLib.dll:System.Half.get_One()
System.Private.CoreLib.dll:System.Half.get_PositiveInfinity()
System.Private.CoreLib.dll:System.Half.get_TrailingSignificand()
System.Private.CoreLib.dll:System.Half.get_Zero()
+System.Private.CoreLib.dll:System.Half.GetCompareKey(System.UInt16)
System.Private.CoreLib.dll:System.Half.GetHashCode()
System.Private.CoreLib.dll:System.Half.IsFinite(System.Half)
+System.Private.CoreLib.dll:System.Half.IsInfinity(System.Half)
System.Private.CoreLib.dll:System.Half.IsNaN(System.Half)
System.Private.CoreLib.dll:System.Half.IsNaNOrZero(System.Half)
System.Private.CoreLib.dll:System.Half.IsNegative(System.Half)
+System.Private.CoreLib.dll:System.Half.IsOddInteger(System.Half)
System.Private.CoreLib.dll:System.Half.IsZero(System.Half)
+System.Private.CoreLib.dll:System.Half.Log2(System.Half)
System.Private.CoreLib.dll:System.Half.NormSubnormalF16Sig(System.UInt32)
System.Private.CoreLib.dll:System.Half.op_Addition(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
@@ -7725,6 +7841,12 @@ System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
+System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
+System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
+System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
+System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
+System.Private.CoreLib.dll:System.Half.op_CheckedExplicit(System.Half)
+System.Private.CoreLib.dll:System.Half.op_Division(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.op_Equality(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.op_Explicit(System.Char) => System.Half
System.Private.CoreLib.dll:System.Half.op_Explicit(System.Decimal) => System.Half
@@ -7761,6 +7883,7 @@ System.Private.CoreLib.dll:System.Half.op_Implicit(System.SByte) => System.Half
System.Private.CoreLib.dll:System.Half.op_Inequality(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.op_LessThan(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.op_LessThanOrEqual(System.Half, System.Half)
+System.Private.CoreLib.dll:System.Half.op_Multiply(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.op_Subtraction(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.op_UnaryNegation(System.Half)
System.Private.CoreLib.dll:System.Half.RoundPackToHalf(System.Boolean, System.Int16, System.UInt16)
@@ -7793,8 +7916,10 @@ System.Private.CoreLib.dll:System.Half.System.IBinaryFloatParseAndFormatInfo.get_ZeroBits()
System.Private.CoreLib.dll:System.Half.System.Numerics.IBitwiseOperators.op_BitwiseAnd(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.System.Numerics.IBitwiseOperators.op_BitwiseOr(System.Half, System.Half)
+System.Private.CoreLib.dll:System.Half.System.Numerics.IBitwiseOperators.op_ExclusiveOr(System.Half, System.Half)
System.Private.CoreLib.dll:System.Half.System.Numerics.IBitwiseOperators.op_OnesComplement(System.Half)
System.Private.CoreLib.dll:System.Half.System.Numerics.INumberBase.IsZero(System.Half)
+System.Private.CoreLib.dll:System.Half.System.Numerics.INumberBase.TryConvertFromChecked`1(TOther, out System.Half&)
System.Private.CoreLib.dll:System.Half.System.Numerics.INumberBase.TryConvertFromSaturating`1(TOther, out System.Half&)
System.Private.CoreLib.dll:System.Half.System.Numerics.INumberBase.TryConvertFromTruncating`1(TOther, out System.Half&)
System.Private.CoreLib.dll:System.Half.System.Numerics.INumberBase.TryConvertToChecked`1(System.Half, out TOther&)
@@ -7903,6 +8028,42 @@ System.Private.CoreLib.dll:System.IConvertible.ToUInt32(System.IFormatProvider)
System.Private.CoreLib.dll:System.IConvertible.ToUInt64(System.IFormatProvider)
System.Private.CoreLib.dll:System.ICustomFormatter
System.Private.CoreLib.dll:System.ICustomFormatter.Format(System.String, System.Object, System.IFormatProvider)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.ConvertToExponent(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.CountDigits(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.DivRemPow10(TValue, System.Int32)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.EncodeExponentToG0ThroughGwPlus1(System.UInt32)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.EncodeExponentToG2ThroughGwPlus3(System.UInt32)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_BufferLength()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_ExponentBias()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_G0G1Mask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_G0ToGwPlus1ExponentMask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_G2ToGwPlus3ExponentMask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_GwPlus2ToGwPlus4SignificandMask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_GwPlus4SignificandMask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_MaxAdjustedExponent()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_MaxExponent()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_MaxSignificand()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_MinAdjustedExponent()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_MinExponent()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_MostSignificantBitOfSignificandMask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_NaN()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_NaNMask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_NegativeInfinity()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_NumberBitsSignificand()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_PositiveInfinity()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_Precision()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_SignMask()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.get_Zero()
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.IsFinite(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.IsInfinity(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.IsNaN(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.IsNegative(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.IsNegativeInfinity(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.IsPositiveInfinity(TValue)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.NumberToSignificand(System.Number/NumberBuffer&, System.Int32)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.Power10(System.Int32)
+System.Private.CoreLib.dll:System.IDecimalIeee754ParseAndFormatInfo`2.ToDecStr(TValue)
System.Private.CoreLib.dll:System.IDisposable
System.Private.CoreLib.dll:System.IDisposable.Dispose()
System.Private.CoreLib.dll:System.IEquatable`1
@@ -7919,6 +8080,7 @@ System.Private.CoreLib.dll:System.Index System.Range::k__BackingField
System.Private.CoreLib.dll:System.Index System.Range::k__BackingField
System.Private.CoreLib.dll:System.Index System.Range::End()
System.Private.CoreLib.dll:System.Index System.Range::Start()
+System.Private.CoreLib.dll:System.Index..ctor(System.Int32, System.Boolean)
System.Private.CoreLib.dll:System.Index..ctor(System.Int32)
System.Private.CoreLib.dll:System.Index.Equals(System.Index)
System.Private.CoreLib.dll:System.Index.Equals(System.Object)
@@ -7951,8 +8113,10 @@ System.Private.CoreLib.dll:System.Int128 System.Int128::Zero()
System.Private.CoreLib.dll:System.Int128..ctor(System.UInt64, System.UInt64)
System.Private.CoreLib.dll:System.Int128.CompareTo(System.Int128)
System.Private.CoreLib.dll:System.Int128.CompareTo(System.Object)
+System.Private.CoreLib.dll:System.Int128.CreateChecked`1(TOther)
System.Private.CoreLib.dll:System.Int128.CreateSaturating`1(TOther)
System.Private.CoreLib.dll:System.Int128.CreateTruncating`1(TOther)
+System.Private.CoreLib.dll:System.Int128.DivRem(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.Equals(System.Int128)
System.Private.CoreLib.dll:System.Int128.Equals(System.Object)
System.Private.CoreLib.dll:System.Int128.get_MaxValue()
@@ -7961,7 +8125,11 @@ System.Private.CoreLib.dll:System.Int128.get_One()
System.Private.CoreLib.dll:System.Int128.get_Zero()
System.Private.CoreLib.dll:System.Int128.GetHashCode()
System.Private.CoreLib.dll:System.Int128.IsNegative(System.Int128)
+System.Private.CoreLib.dll:System.Int128.IsOddInteger(System.Int128)
System.Private.CoreLib.dll:System.Int128.IsPositive(System.Int128)
+System.Private.CoreLib.dll:System.Int128.LeadingZeroCount(System.Int128)
+System.Private.CoreLib.dll:System.Int128.LeadingZeroCountAsInt32(System.Int128)
+System.Private.CoreLib.dll:System.Int128.Log2(System.Int128)
System.Private.CoreLib.dll:System.Int128.op_Addition(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.op_BitwiseAnd(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.op_BitwiseOr(System.Int128, System.Int128)
@@ -7974,7 +8142,14 @@ System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
+System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
+System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
+System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
+System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Int128)
+System.Private.CoreLib.dll:System.Int128.op_CheckedExplicit(System.Single)
+System.Private.CoreLib.dll:System.Int128.op_Division(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.op_Equality(System.Int128, System.Int128)
+System.Private.CoreLib.dll:System.Int128.op_ExclusiveOr(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.op_Explicit(System.Decimal) => System.Int128
System.Private.CoreLib.dll:System.Int128.op_Explicit(System.Double) => System.Int128
System.Private.CoreLib.dll:System.Int128.op_Explicit(System.Int128) => System.Byte
@@ -8013,6 +8188,7 @@ System.Private.CoreLib.dll:System.Int128.op_LessThan(System.Int128, System.Int12
System.Private.CoreLib.dll:System.Int128.op_LessThanOrEqual(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.op_Multiply(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.op_OnesComplement(System.Int128)
+System.Private.CoreLib.dll:System.Int128.op_RightShift(System.Int128, System.Int32)
System.Private.CoreLib.dll:System.Int128.op_Subtraction(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.op_UnaryNegation(System.Int128)
System.Private.CoreLib.dll:System.Int128.op_UnsignedRightShift(System.Int128, System.Int32)
@@ -8024,9 +8200,12 @@ System.Private.CoreLib.dll:System.Int128.System.IBinaryIntegerParseAndFormatInfo
System.Private.CoreLib.dll:System.Int128.System.IBinaryIntegerParseAndFormatInfo.IsGreaterThanAsUnsigned(System.Int128, System.Int128)
System.Private.CoreLib.dll:System.Int128.System.IBinaryIntegerParseAndFormatInfo.MultiplyBy10(System.Int128)
System.Private.CoreLib.dll:System.Int128.System.IBinaryIntegerParseAndFormatInfo.MultiplyBy16(System.Int128)
+System.Private.CoreLib.dll:System.Int128.System.Numerics.IBinaryInteger.GetByteCount()
System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.IsFinite(System.Int128)
+System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.IsInfinity(System.Int128)
System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.IsNaN(System.Int128)
System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.IsZero(System.Int128)
+System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.TryConvertFromChecked`1(TOther, out System.Int128&)
System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.TryConvertFromSaturating`1(TOther, out System.Int128&)
System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.TryConvertFromTruncating`1(TOther, out System.Int128&)
System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase.TryConvertToChecked`1(System.Int128, out TOther&)
@@ -8035,6 +8214,7 @@ System.Private.CoreLib.dll:System.Int128.System.Numerics.INumberBase, out System.Int32&, System.ReadOnlySpan`1, System.IFormatProvider)
@@ -8047,6 +8227,7 @@ System.Private.CoreLib.dll:System.Int16 System.Guid::_c
System.Private.CoreLib.dll:System.Int16 System.Int16::m_value
System.Private.CoreLib.dll:System.Int16 System.Int16::System.IBinaryIntegerParseAndFormatInfo.MaxValueDiv10()
System.Private.CoreLib.dll:System.Int16 System.Int16::System.Numerics.IMinMaxValue.MaxValue()
+System.Private.CoreLib.dll:System.Int16 System.Int16::System.Numerics.IMinMaxValue.MinValue()
System.Private.CoreLib.dll:System.Int16 System.Int16::System.Numerics.INumberBase.One()
System.Private.CoreLib.dll:System.Int16 System.Int16::System.Numerics.INumberBase.Zero()
System.Private.CoreLib.dll:System.Int16 System.Runtime.CompilerServices.AsyncHelpers/ValueTaskSourceContinuation::Token
@@ -8085,13 +8266,18 @@ System.Private.CoreLib.dll:System.Int16 System.Threading.Tasks.ValueTask`1::_tok
System.Private.CoreLib.dll:System.Int16 System.Threading.Tasks.ValueTask`1/ValueTaskSourceAsTask::_token
System.Private.CoreLib.dll:System.Int16.CompareTo(System.Int16)
System.Private.CoreLib.dll:System.Int16.CompareTo(System.Object)
+System.Private.CoreLib.dll:System.Int16.CreateChecked`1(TOther)
System.Private.CoreLib.dll:System.Int16.CreateSaturating`1(TOther)
System.Private.CoreLib.dll:System.Int16.CreateTruncating`1(TOther)
+System.Private.CoreLib.dll:System.Int16.DivRem(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.Equals(System.Int16)
System.Private.CoreLib.dll:System.Int16.Equals(System.Object)
System.Private.CoreLib.dll:System.Int16.GetHashCode()
System.Private.CoreLib.dll:System.Int16.GetTypeCode()
System.Private.CoreLib.dll:System.Int16.IsNegative(System.Int16)
+System.Private.CoreLib.dll:System.Int16.IsOddInteger(System.Int16)
+System.Private.CoreLib.dll:System.Int16.LeadingZeroCount(System.Int16)
+System.Private.CoreLib.dll:System.Int16.Log2(System.Int16)
System.Private.CoreLib.dll:System.Int16.Max(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.Min(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.Parse(System.ReadOnlySpan`1, System.Globalization.NumberStyles, System.IFormatProvider)
@@ -8121,31 +8307,41 @@ System.Private.CoreLib.dll:System.Int16.System.IConvertible.ToUInt16(System.IFor
System.Private.CoreLib.dll:System.Int16.System.IConvertible.ToUInt32(System.IFormatProvider)
System.Private.CoreLib.dll:System.Int16.System.IConvertible.ToUInt64(System.IFormatProvider)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IAdditionOperators.op_Addition(System.Int16, System.Int16)
+System.Private.CoreLib.dll:System.Int16.System.Numerics.IBinaryInteger.GetByteCount()
System.Private.CoreLib.dll:System.Int16.System.Numerics.IBitwiseOperators.op_BitwiseAnd(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IBitwiseOperators.op_BitwiseOr(System.Int16, System.Int16)
+System.Private.CoreLib.dll:System.Int16.System.Numerics.IBitwiseOperators.op_ExclusiveOr(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IBitwiseOperators.op_OnesComplement(System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IComparisonOperators.op_GreaterThan(System.Int16, System.Int16)
+System.Private.CoreLib.dll:System.Int16.System.Numerics.IComparisonOperators.op_GreaterThanOrEqual(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IComparisonOperators.op_LessThan(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IComparisonOperators.op_LessThanOrEqual(System.Int16, System.Int16)
+System.Private.CoreLib.dll:System.Int16.System.Numerics.IDivisionOperators.op_Division(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IEqualityOperators.op_Equality(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IEqualityOperators.op_Inequality(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IMinMaxValue.get_MaxValue()
+System.Private.CoreLib.dll:System.Int16.System.Numerics.IMinMaxValue.get_MinValue()
+System.Private.CoreLib.dll:System.Int16.System.Numerics.IMultiplyOperators.op_Multiply(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.get_One()
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.get_Zero()
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.IsFinite(System.Int16)
+System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.IsInfinity(System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.IsNaN(System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.IsZero(System.Int16)
+System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.TryConvertFromChecked`1(TOther, out System.Int16&)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.TryConvertFromSaturating`1(TOther, out System.Int16&)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.TryConvertFromTruncating`1(TOther, out System.Int16&)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.TryConvertToChecked`1(System.Int16, out TOther&)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.TryConvertToSaturating`1(System.Int16, out TOther&)
System.Private.CoreLib.dll:System.Int16.System.Numerics.INumberBase.TryConvertToTruncating`1(System.Int16, out TOther&)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IShiftOperators.op_LeftShift(System.Int16, System.Int32)
+System.Private.CoreLib.dll:System.Int16.System.Numerics.IShiftOperators.op_RightShift(System.Int16, System.Int32)
System.Private.CoreLib.dll:System.Int16.System.Numerics.ISubtractionOperators.op_Subtraction(System.Int16, System.Int16)
System.Private.CoreLib.dll:System.Int16.System.Numerics.IUnaryNegationOperators.op_UnaryNegation(System.Int16)
System.Private.CoreLib.dll:System.Int16.ToString()
System.Private.CoreLib.dll:System.Int16.ToString(System.IFormatProvider)
System.Private.CoreLib.dll:System.Int16.ToString(System.String, System.IFormatProvider)
+System.Private.CoreLib.dll:System.Int16.TryConvertFromChecked`1(TOther, out System.Int16&)
System.Private.CoreLib.dll:System.Int16.TryConvertFromSaturating`1(TOther, out System.Int16&)
System.Private.CoreLib.dll:System.Int16.TryConvertFromTruncating`1(TOther, out System.Int16&)
System.Private.CoreLib.dll:System.Int16.TryFormat(System.Span`1, out System.Int32&, System.ReadOnlySpan`1, System.IFormatProvider)
@@ -8297,6 +8493,7 @@ System.Private.CoreLib.dll:System.Int32 System.Decimal::_flags
System.Private.CoreLib.dll:System.Int32 System.Decimal/DecCalc::Scale()
System.Private.CoreLib.dll:System.Int32 System.DefaultBinder/BinderState::_originalSize
System.Private.CoreLib.dll:System.Int32 System.DefaultBinder/Primitives::value__
+System.Private.CoreLib.dll:System.Int32 System.Delegate/BindToMethodDetails::selfReferentialTarget
System.Private.CoreLib.dll:System.Int32 System.Delegate/InvocationListEnumerator`1::_index
System.Private.CoreLib.dll:System.Int32 System.DelegateBindingFlags::value__
System.Private.CoreLib.dll:System.Int32 System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes::value__
@@ -8492,6 +8689,14 @@ System.Private.CoreLib.dll:System.Int32 System.IBinaryFloatParseAndFormatInfo`1:
System.Private.CoreLib.dll:System.Int32 System.IBinaryFloatParseAndFormatInfo`1::OverflowDecimalExponent()
System.Private.CoreLib.dll:System.Int32 System.IBinaryIntegerParseAndFormatInfo`1::MaxDigitCount()
System.Private.CoreLib.dll:System.Int32 System.IBinaryIntegerParseAndFormatInfo`1::MaxHexDigitCount()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::BufferLength()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::ExponentBias()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::MaxAdjustedExponent()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::MaxExponent()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::MinAdjustedExponent()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::MinExponent()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::NumberBitsSignificand()
+System.Private.CoreLib.dll:System.Int32 System.IDecimalIeee754ParseAndFormatInfo`2::Precision()
System.Private.CoreLib.dll:System.Int32 System.Index::_value
System.Private.CoreLib.dll:System.Int32 System.Index::Value()
System.Private.CoreLib.dll:System.Int32 System.Int128::System.IBinaryIntegerParseAndFormatInfo.MaxDigitCount()
@@ -8503,6 +8708,7 @@ System.Private.CoreLib.dll:System.Int32 System.Int32::System.IBinaryIntegerParse
System.Private.CoreLib.dll:System.Int32 System.Int32::System.IBinaryIntegerParseAndFormatInfo.MaxHexDigitCount()
System.Private.CoreLib.dll:System.Int32 System.Int32::System.IBinaryIntegerParseAndFormatInfo.MaxValueDiv10()
System.Private.CoreLib.dll:System.Int32 System.Int32::System.Numerics.IMinMaxValue.MaxValue()
+System.Private.CoreLib.dll:System.Int32 System.Int32::System.Numerics.IMinMaxValue