platform/upstream/dotnet/runtime.git
15 months agoFix runtime-extra-platforms failures related to HybridGlobalization (#87913)
Meri Khamoyan [Thu, 22 Jun 2023 18:25:25 +0000 (22:25 +0400)]
Fix runtime-extra-platforms failures related to HybridGlobalization (#87913)

Add ErrorCodes and return -2 only when options are not found

15 months ago[main] Update dependencies from 10 repositories (#87522)
dotnet-maestro[bot] [Thu, 22 Jun 2023 16:05:20 +0000 (12:05 -0400)]
[main] Update dependencies from 10 repositories (#87522)

* Update dependencies from https://github.com/dotnet/arcade build 20230612.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23312.4

Dependency coherency updates

Microsoft.SourceLink.GitHub
 From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23309.3 (parent: Microsoft.DotNet.Arcade.Sdk

* Update dependencies from https://github.com/dotnet/arcade build 20230613.6

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23313.6

Dependency coherency updates

Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks
 From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23309.3 (parent: Microsoft.DotNet.Arcade.Sdk

* Update dependencies from https://github.com/dotnet/sdk build 20230614.2

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23314.2

* [wasm] Set SelfContained=true for local, and in-tree targets

Fixes sample builds:

```
/__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser-bench/Wasm.Browser.Bench.Sample.csproj]
/__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser-profile/Wasm.BrowserProfile.Sample.csproj]
/__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser-advanced/Wasm.Advanced.Sample.csproj]
/__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/console-v8/Wasm.Console.V8.Sample.csproj]
/__w/1/s/.packages/microsoft.net.illink.tasks/8.0.0-preview.6.23309.7/build/Microsoft.NET.ILLink.targets(193,5): error NETSDK1102: Optimizing assemblies for size is not supported for the selected publish configuration. Please ensure that you are publishing a self-contained app. [/__w/1/s/src/mono/sample/wasm/browser-bench/Console/Wasm.Console.Bench.Sample.csproj]
/__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser/Wasm.Browser.Sample.csproj]
/__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/console-node/Wasm.Console.Node.Sample.csproj]
```

* [wasm] debugger-tests Set RID, and LibrariesConfiguration early

* Update dependencies from https://github.com/dotnet/llvm-project build 20230615.1

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23315.1

* Update dependencies from https://github.com/dotnet/arcade build 20230614.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23314.1

Dependency coherency updates

Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks
 From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23309.3 (parent: Microsoft.DotNet.Arcade.Sdk

* Update dependencies from https://github.com/dotnet/sdk build 20230615.13

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23315.13

* Update dependencies from https://github.com/dotnet/sdk build 20230616.3

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23316.3

* Update dependencies from https://github.com/dotnet/llvm-project build 20230616.1

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23316.1

* Update dependencies from https://github.com/dotnet/llvm-project build 20230616.4

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23316.4

* Update dependencies from https://github.com/dotnet/arcade build 20230616.6

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23316.6

Dependency coherency updates

Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks
 From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23314.2 (parent: Microsoft.DotNet.Arcade.Sdk

* Update dependencies from https://github.com/dotnet/runtime-assets build 20230616.1

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
 From Version 8.0.0-beta.23307.1 -> To Version 8.0.0-beta.23316.1

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20230616.4

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23305.2 -> To Version 8.0.0-alpha.0.23316.4

* Update dependencies from https://github.com/dotnet/sdk build 20230616.53

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23316.53

* Update dependencies from https://github.com/dotnet/runtime build 20230619.2

Microsoft.NET.ILLink.Tasks , Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json
 From Version 8.0.0-preview.6.23309.7 -> To Version 8.0.0-preview.6.23319.2

* Update dependencies from https://github.com/dotnet/sdk build 20230619.8

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23319.8

* Fix all host tests to correctly specify SelfContained when necessary

Recent SDK change modified the default for when RuntimeIdentifier is specified. Before this also implied SelfContained, now it doesn't. The host tests were not yet updated for this and thus several failed with various types of failures.

This change modifes all the test projects which specify RuntimeIdentifier to also specify SelfContained=true. And then updates the test infra to:
* Fail if RuntimeIdentifier is specified and SelfContained is not specified
* Update all callsites which specify RuntimeIdentifier to also specify SelfContained.

* Update dependencies from https://github.com/dotnet/llvm-project build 20230619.3

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23319.3

* Implement a workaround for issue with EnableUnsafeBinaryFormatterSerialization

See https://github.com/dotnet/runtime/issues/87811 for more details.

This change uses a custom target to hook right before the runtimeconfig is generated and removes the runtime property from the item group to avoid writing it into runtimeconfig.

* Update dependencies from https://github.com/dotnet/arcade build 20230619.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23319.3

* Update dependencies from https://github.com/dotnet/icu build 20230619.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.6.23319.1

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20230619.2

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23305.2 -> To Version 8.0.0-alpha.0.23319.2

* Update dependencies from https://github.com/dotnet/cecil build 20230619.2

Microsoft.DotNet.Cecil
 From Version 0.11.4-alpha.23312.1 -> To Version 0.11.4-alpha.23319.2

* Update dependencies from https://github.com/dotnet/sdk build 20230620.3

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23320.3

* Update dependencies from https://github.com/dotnet/llvm-project build 20230621.1

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23321.1

* Update dependencies from https://github.com/dotnet/arcade build 20230620.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23320.3

* Update dependencies from https://github.com/dotnet/runtime-assets build 20230621.1

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
 From Version 8.0.0-beta.23307.1 -> To Version 8.0.0-beta.23321.1

* Update dependencies from https://github.com/dotnet/emsdk build 20230621.1

Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
 From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.6.23321.1

* Disable failing runtime test

```
/Users/runner/work/1/s/src/tests/JIT/jit64/opt/rngchk/RngchkStress2.cs(527,796): error CS8078: An expression is too long or complex to compile [/Users/runner/work/1/s/src/tests/JIT/jit64/opt/rngchk/RngchkStress2_o.csproj] [/Users/runner/work/1/s/src/tests/build.proj]
```
Issue: https://github.com/dotnet/runtime/issues/87879

* disable JIT/jit64/opt/cse/hugeSimpleExpr1.csproj

* Use full name for the test being disabled

* Update dependencies from https://github.com/dotnet/emsdk build 20230621.3

Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
 From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.7.23321.3

* another try

* Update dependencies from https://github.com/dotnet/arcade build 20230620.3

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23320.3

Dependency coherency updates

Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks
 From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23314.2 (parent: Microsoft.DotNet.Arcade.Sdk

* Update dependencies from https://github.com/dotnet/icu build 20230621.2

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.7.23321.2

* Update dependencies from https://github.com/dotnet/xharness build 20230621.2

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 8.0.0-prerelease.23312.1 -> To Version 8.0.0-prerelease.23321.2

* Update dependencies from https://github.com/dotnet/runtime-assets build 20230621.1

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
 From Version 8.0.0-beta.23307.1 -> To Version 8.0.0-beta.23321.1

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20230619.2

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23305.2 -> To Version 8.0.0-alpha.0.23319.2

* Update dependencies from https://github.com/dotnet/cecil build 20230619.2

Microsoft.DotNet.Cecil
 From Version 0.11.4-alpha.23312.1 -> To Version 0.11.4-alpha.23319.2

* Update dependencies from https://github.com/dotnet/sdk build 20230621.38

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.7.23321.38

---------

Co-authored-by: Ankit Jain <radical@gmail.com>
Co-authored-by: vitek-karas <10670590+vitek-karas@users.noreply.github.com>
15 months agoFix metrics test (#87898)
Tarek Mahmoud Sayed [Thu, 22 Jun 2023 15:14:51 +0000 (08:14 -0700)]
Fix metrics test (#87898)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
15 months agoFaster optimized frozen dictionary creation (3/n) (#87688)
Adam Sitnik [Thu, 22 Jun 2023 14:52:50 +0000 (16:52 +0200)]
Faster optimized frozen dictionary creation (3/n) (#87688)

* avoid the need of having `Action<int, int> storeDestIndexFromSrcIndex` by writing the destination indexes to the provided buffer with hashcodes and moving the responsibility to the caller (1-4% gain)

* For cases where the key is an integer and we know the input us already unique (because it comes from a dictionary or a hash set) there is no need to create another hash set

Also, in cases where simply all hash codes are unique, we can iterate over a span rather than a hash set

+9% gain for scenarios where the key was an integer (time), 10-20% allocations drop
up to +5% gain where string keys turned out to have unique hash codes

Co-authored-by: Stephen Toub <stoub@microsoft.com>
15 months ago[mono] Do not ignore non-public custom attributes in dynamic assemblies (#87406)
Ivan Povazan [Thu, 22 Jun 2023 13:44:15 +0000 (15:44 +0200)]
[mono] Do not ignore non-public custom attributes in dynamic assemblies (#87406)

Fixes https://github.com/dotnet/runtime/issues/60650

15 months agoShare UTF8 converters between coreclr and mono (#85558)
Adeel Mujahid [Thu, 22 Jun 2023 13:30:16 +0000 (16:30 +0300)]
Share UTF8 converters between coreclr and mono (#85558)

* Share UTF8 converters between coreclr and mono - v1

* Revert "Share UTF8 converters between coreclr and mono - v1"

This reverts commit f9845ac6f53dc95fb747eb21351dfa9412397217.

* Share UTF8 converters between coreclr and mono - v2

* Remove C++ runtime dependency

* Initial C++ to C conversion

* Delete unused macros

* Fix custom alloc in mono

* Error on invalid sequences when caller requested

* Remove count from convert APIs

15 months agoadd support for https proxy (#87638)
Tomas Weinfurt [Thu, 22 Jun 2023 12:22:34 +0000 (14:22 +0200)]
add support for https proxy (#87638)

* add support for https proxy

* winhttp

* https

* diag

15 months ago[main] Update dependencies from dnceng/internal/dotnet-optimization (#87727)
dotnet-maestro[bot] [Thu, 22 Jun 2023 11:56:44 +0000 (07:56 -0400)]
[main] Update dependencies from dnceng/internal/dotnet-optimization (#87727)

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230616.4

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23315.5 -> To Version 1.0.0-prerelease.23316.4

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230617.4

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23315.5 -> To Version 1.0.0-prerelease.23317.4

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230619.3

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23315.5 -> To Version 1.0.0-prerelease.23319.3

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230619.7

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23315.5 -> To Version 1.0.0-prerelease.23319.7

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230620.5

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23315.5 -> To Version 1.0.0-prerelease.23320.5

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
15 months agoImplement Stopwatch.ToString() (#87812)
Eric Mutta [Thu, 22 Jun 2023 11:52:48 +0000 (14:52 +0300)]
Implement Stopwatch.ToString() (#87812)

* Implement Stopwatch.ToString()

For the tests, I added a few one-liners to the existing tests
where the Stopwatch.Elapsed property was easy to check.
I also added the OverridesToString() test to check for cases
where the ToString() method is called implicitly. This confirms
that people can write "Console.WriteLine(sw)" where "sw" is
an instance of the Stopwatch class, and get the elapsed time
printed.

Fix #87449

* Fix typo in Stopwatch.cs

Fix typo in the comment within the OverridesToString() test.

* Add XML docs for the ToString() method.

The <returns> tag is somewhat redundant since the <summary> tag
adequately describes what's going on here, but since the convention
is to have both tags, I have used the <returns> tag to clarify that
the returned string renders the elapsed time using the same format as
TimeSpan.ToString().

* Add ToString() override for Stopwatch class.

See https://github.com/dotnet/runtime/pull/87812#discussion_r1235940302

---------

Co-authored-by: Eric Mutta <ericm@creditregistry.com>
15 months agoUse internal `BitOperations.ResetLowestSetBit` (#87798)
xtqqczze [Thu, 22 Jun 2023 11:45:04 +0000 (12:45 +0100)]
Use internal `BitOperations.ResetLowestSetBit` (#87798)

15 months agoRemove object[] allocation from CustomAttribute.AddCustomAttributes (#87902)
Stephen Toub [Thu, 22 Jun 2023 10:47:04 +0000 (06:47 -0400)]
Remove object[] allocation from CustomAttribute.AddCustomAttributes (#87902)

15 months agoFix contention in LoggerFactory.CreateLogger (#87904)
Stephen Toub [Thu, 22 Jun 2023 09:09:43 +0000 (05:09 -0400)]
Fix contention in LoggerFactory.CreateLogger (#87904)

Some ASP.NET code paths end up calling this _a lot_, and it takes a lock on every call, even though the vast majority are satisifed by the cache and require no mutation.  We can use a ConcurrentDictionary instead of a Dictionary, with double-checked locking.  Nothing is ever removed from or overwritten in the dictionary, so there's no problem doing the hot-path read outside of the lock; we still do the mutation inside of the lock so that all of the mutation work is performed atomically and synchronized with the actions from AddProvider and RefreshFilter.

15 months ago[mono][jit] Fix float to int/uint casting behavior (#86941)
Jan Dupej [Thu, 22 Jun 2023 08:59:32 +0000 (10:59 +0200)]
[mono][jit] Fix float to int/uint casting behavior (#86941)

* Reenabled JIT/SIMD/VectorConvert tests.

* Float to int conversion on arm64, mini.

* Reverted previous behavior on r4/8 -> u1/2, i1/2

* Fixed double->u/i32 conversion.

15 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 220697...
dotnet bot [Thu, 22 Jun 2023 07:55:14 +0000 (09:55 +0200)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2206976 (#87891)

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2206720

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2206720

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2206720

15 months agoMove NTAuthentication/NegotiateStreamPal back to the mothership (#87887)
Filip Navara [Thu, 22 Jun 2023 07:26:45 +0000 (09:26 +0200)]
Move NTAuthentication/NegotiateStreamPal back to the mothership (#87887)

15 months agoFix passing rpath on Bionic (#87900)
Michal Strehovský [Thu, 22 Jun 2023 06:57:57 +0000 (15:57 +0900)]
Fix passing rpath on Bionic (#87900)

#87669 had a bunch of trial and error to get it right. Turns out the clang that ships in the Android NDK really doesn't like this form (`clang : error : no such file or directory: ''-Wl,-rpath,$ORIGIN'').

15 months agoQUIC ALPN list narrowing down scenario test (#86659)
Ahmet Ibrahim Aksoy [Thu, 22 Jun 2023 06:23:00 +0000 (09:23 +0300)]
QUIC ALPN list narrowing down scenario test (#86659)

* Added necessary test for ALPN Narrowing down on QUIC

Co-authored-by: Natalia Kondratyeva <knatalia@microsoft.com>
15 months agoBump main to Preview 7 (#87893)
Carlos Sánchez López [Thu, 22 Jun 2023 05:51:37 +0000 (22:51 -0700)]
Bump main to Preview 7 (#87893)

* Bump main to Preview 7

* Bump emsdk to 8.0.0-preview.7.23321.3

---------

Co-authored-by: Ankit Jain <radical@gmail.com>
15 months agoRemove unused _LinkerFlagsToDrop property from the sample app (#87889)
Milos Kotlar [Thu, 22 Jun 2023 05:24:23 +0000 (07:24 +0200)]
Remove unused _LinkerFlagsToDrop property from the sample app (#87889)

15 months agoEnsure Min/Max APIs are handled for float in VN (#87872)
Tanner Gooding [Thu, 22 Jun 2023 00:06:43 +0000 (17:06 -0700)]
Ensure Min/Max APIs are handled for float in VN (#87872)

* Ensure Min/Max APIs are handled for float in VN

* Apply formatting patch

15 months agoUpdate WCF package versions (#87787)
Viktor Hofer [Wed, 21 Jun 2023 23:31:57 +0000 (01:31 +0200)]
Update WCF package versions (#87787)

* Update WCF package versions

* Update Versions.props

15 months ago[mono][debugger] Concurrency on execution context dictionary (#87870)
Thays Grazia [Wed, 21 Jun 2023 22:36:47 +0000 (19:36 -0300)]
[mono][debugger] Concurrency on execution context dictionary (#87870)

* fix concurrency

* fix typo and get last executioncontext

* use getoradd as suggested by @radical

* using @radical refactor

15 months agoSystem.IO.Packaging: Avoid setting the general purpose bitflag due to enforced UTF8...
Carlos Sánchez López [Wed, 21 Jun 2023 21:51:55 +0000 (14:51 -0700)]
System.IO.Packaging: Avoid setting the general purpose bitflag due to enforced UTF8 (#87883)

15 months agoRemove InstrumentRecorder class (#87873)
Tarek Mahmoud Sayed [Wed, 21 Jun 2023 21:34:25 +0000 (14:34 -0700)]
Remove InstrumentRecorder class (#87873)

15 months ago[wasm] Misc build+test fixes (#87830)
Ankit Jain [Wed, 21 Jun 2023 21:25:18 +0000 (17:25 -0400)]
[wasm] Misc build+test fixes (#87830)

* [wasm] Use -s EXPORT_ES6=1 only for link time

Fixes `emcc: warning: linker setting ignored during compilation: 'EXPORT_ES6' [-Wunused-command-line-argument]`

* [wasm] Fix loading `dotnet.native.js.symbols`

* [wasm] WBT: Re-enable skiasharp test

.. as a new build of skiasharp native lib is now available.

Fixes issue: https://github.com/dotnet/runtime/issues/82725

* [wasm] WBT: Enable more previously disabled tests

`Blazor.BuildPublishTests.WithDllImportInMainAssembly`
`Blazor.BuildPublishTests.BlazorPublishRun`

Issue: https://github.com/dotnet/runtime/issues/82725
Issue: https://github.com/dotnet/runtime/issues/82481

* [wasm] Browser.targets - fix up paths for webcil

* [wasm] Add make target build-packages to build the nugets

* address review feedback from @maraf, and add text implementations for node, and error cases

* address review feedback from @maraf

* WBT: remove unnecessary code

WithDllImportInMainAssembly: remove `CheckNativeFileLinked` because we
can run the blazor project now.

* address review feedback from @pavelsavara

* Disable failing blazor test on windows

15 months agoImplement unidirectional GeneratedComInterface options (#87831)
Jeremy Koritzinsky [Wed, 21 Jun 2023 21:19:49 +0000 (14:19 -0700)]
Implement unidirectional GeneratedComInterface options (#87831)

15 months agoFix typos in Process.cs (#87683)
Nikita Balabaev [Wed, 21 Jun 2023 21:16:45 +0000 (23:16 +0200)]
Fix typos in Process.cs (#87683)

15 months agoDon't create type loader for apps that don't need it (#87678)
Michal Strehovský [Wed, 21 Jun 2023 21:03:14 +0000 (06:03 +0900)]
Don't create type loader for apps that don't need it (#87678)

In the TypeLoaderEnvironment constructor we initialize a bunch of collections/lookup tables to be able to support runtime-created data structures. But if no runtime loading happens, these are useless.

Make some of the instance methods static (if they don't need the dynamic data structures) so that we don't need to create type loader for nothing, and make some services conditioned on whether we did any type building.

Saves 10 kB on a hello world.

15 months agoUpdate HP libunwind to v1.7.0 (#87426)
Adeel Mujahid [Wed, 21 Jun 2023 20:47:09 +0000 (23:47 +0300)]
Update HP libunwind to v1.7.0 (#87426)

15 months agoInclude liblog in linker command line for Bionic (#87862)
Michal Strehovský [Wed, 21 Jun 2023 20:41:36 +0000 (05:41 +0900)]
Include liblog in linker command line for Bionic (#87862)

Fixes issue reported in https://github.com/dotnet/runtime/issues/87340#issuecomment-1600401747.

15 months agoConvert HttpListener to use public NegotiateAuthentication API (#86956)
Filip Navara [Wed, 21 Jun 2023 19:52:37 +0000 (21:52 +0200)]
Convert HttpListener to use public NegotiateAuthentication API (#86956)

* Convert HttpListener to public NegotiateAuthentication API

* Add back identity disposal.

* Allow HTTP/localhost SPN.

15 months agoFix support for JsonSerializerContext contained in arbitrary types. (#87829)
Eirik Tsarpalis [Wed, 21 Jun 2023 18:39:23 +0000 (19:39 +0100)]
Fix support for JsonSerializerContext contained in arbitrary types. (#87829)

* Fix support for JsonSerializerContext contained in struct types.

* Extend support to other kinds.

* Simplify testing

* Improve namespace detection logic.

15 months agoJIT: Stop allocating address exposed locals if they are unreferenced (#87790)
Jakob Botsch Nielsen [Wed, 21 Jun 2023 17:18:32 +0000 (19:18 +0200)]
JIT: Stop allocating address exposed locals if they are unreferenced (#87790)

15 months agoFix how jitrollingbuild disable Component Governance (#87853)
Bruce Forstall [Wed, 21 Jun 2023 16:50:05 +0000 (09:50 -0700)]
Fix how jitrollingbuild disable Component Governance (#87853)

15 months agoFix ID regression in Alpine Linux builds (#86804)
Adeel Mujahid [Wed, 21 Jun 2023 16:15:05 +0000 (19:15 +0300)]
Fix ID regression in Alpine Linux builds (#86804)

Co-authored-by: Jan Vorlicek <jan.vorlicek@volny.cz>
15 months agoAdd support for net8.0-browser TFM to WASM sdk (#87866)
Alexander Köplinger [Wed, 21 Jun 2023 16:08:46 +0000 (18:08 +0200)]
Add support for net8.0-browser TFM to WASM sdk (#87866)

15 months ago[mono][jit] Enabling some Vector4 methods as Intrinsics on arm64. (#87684)
Vlad-Alexandru Ionescu [Wed, 21 Jun 2023 15:14:03 +0000 (17:14 +0200)]
[mono][jit] Enabling some Vector4 methods as Intrinsics on arm64. (#87684)

* Enabled fmul fdiv fadd fsub fmin fmax fabs fsqrt

---------

Signed-off-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-5.local>
Co-authored-by: Vlad - Alexandru Ionescu <vlad-alexandruionescu@Vlads-MacBook-Pro-5.local>
15 months ago[wasm] PackedSimd, implement store methods (#87828)
Radek Doulik [Wed, 21 Jun 2023 14:13:15 +0000 (16:13 +0200)]
[wasm] PackedSimd, implement store methods (#87828)

* [wasm] PackedSimd, implement store methods

* Feedback

15 months ago[mono][jit] Avoid doing copy propagation on ldaddr for gsharedvt variables. (#87713)
Zoltan Varga [Wed, 21 Jun 2023 13:55:10 +0000 (09:55 -0400)]
[mono][jit] Avoid doing copy propagation on ldaddr for gsharedvt variables. (#87713)

Ldaddr requires the emission of dummy uses for
gsharedvt_info_var/gsharedvt_locals_var and the copy wouldn't have these,
leading to register allocation problems.

Fixes https://github.com/dotnet/runtime/issues/87551.

15 months ago[mono][jit] Added Vector128 intrinsics that depend on Vector64 for arm64 (#87765)
Jan Dupej [Wed, 21 Jun 2023 11:56:58 +0000 (13:56 +0200)]
[mono][jit] Added Vector128 intrinsics that depend on Vector64 for arm64 (#87765)

* Added Vector128.GetLower,GetUpper as intrinsics on arm64. Enabled OP_XCONCAT.

* Adding WithLower, WithUpper.

* Fixed missing variable.

* Restored check on x64 code.

* xlower and xupper now sanitize the upper half of the dest register.

* Fixed definitions of insert opcodes to reflect that they depend on the original dest state.

* OP_XCONCAT can now also depend on initial dest state.

* Disabling Vector128.WithLower,WithUpper on x64.

15 months agoFix PlatformDetection.IsThreadingSupported (#87863)
Pavel Savara [Wed, 21 Jun 2023 10:50:31 +0000 (12:50 +0200)]
Fix PlatformDetection.IsThreadingSupported (#87863)

15 months agoSPMI: HTML escape lines inside diffs (#87861)
Jakob Botsch Nielsen [Wed, 21 Jun 2023 10:30:32 +0000 (12:30 +0200)]
SPMI: HTML escape lines inside diffs (#87861)

The summarize script will convert markdown diff code blocks into
manually colored HTML tags because AzDO does not support proper
highlighting in its preview. However, when we do this we should also
take care to escape the contents as otherwise it can start being
interpreted as HTML tags. For example, in a recent case a field named
`<Option>k__BackingField` caused the preview to be truncated because
`<option>` was interpreted as a HTML tag.

15 months agoFix expected analyzer layout in nuget packages (#87860)
Viktor Hofer [Wed, 21 Jun 2023 09:22:33 +0000 (11:22 +0200)]
Fix expected analyzer layout in nuget packages (#87860)

Regressed with https://github.com/dotnet/runtime/pull/87726
Reported in https://github.com/dotnet/aspnetcore/pull/48917#issuecomment-1599944176

15 months agoAdded IReadOnlyDictionary to HttpRequestOptions (#86983)
Roman Makarevich [Wed, 21 Jun 2023 08:22:04 +0000 (11:22 +0300)]
Added IReadOnlyDictionary to HttpRequestOptions (#86983)

* Added IReadOnlyDictionary to HttpRequestOptions

Closes #68149

* Added test for new methods

* Added negative scenario to HttpRequestOptionsTest

Co-authored-by: Stephen Toub <stoub@microsoft.com>
---------

Co-authored-by: Stephen Toub <stoub@microsoft.com>
15 months agoImplement collation native functions functions (#86895)
Meri Khamoyan [Wed, 21 Jun 2023 08:19:06 +0000 (12:19 +0400)]
Implement collation native functions functions (#86895)

Implemented IndexOf, LastIndexOf, IsSuffix, IsPrefix functions

15 months agofixing an assert in GetGCMemoryInfo when there hasn't been any GC of that kind yet...
Maoni Stephens [Wed, 21 Jun 2023 07:05:51 +0000 (00:05 -0700)]
fixing an assert in GetGCMemoryInfo when there hasn't been any GC of that kind yet (#87848)

when there hasn't been any GC of that kind yet, we cannot validate the info as it's all 0's.

15 months agoImport isinst/castclass Nullable as underlying type (#87241)
Huo Yaoyuan [Wed, 21 Jun 2023 04:19:00 +0000 (12:19 +0800)]
Import isinst/castclass Nullable as underlying type (#87241)

* Import isinst Nullable as underlying type

* IL test coverage for castclass

15 months agoApply iteration work limits to X509 certificate loading (#87514)
David Cantú [Wed, 21 Jun 2023 03:02:35 +0000 (22:02 -0500)]
Apply iteration work limits to X509 certificate loading (#87514)

* Apply iteration work limits to X509 certificate loading

* Specify InvariantCulture on Convert.ToInt64

* Skip X509 tests on browser

* Remove unneeded packaging changes

* Tests: use AppContext.SetData instead of AppDomain.SetData

* Address feedback

* Fix typo in System.Security.Cryptography.Pkcs.csproj

* Remove GetRemainingLength, no longer used

15 months agoDelete IsCppCodegenTemporaryWorkaround (#87820)
SingleAccretion [Tue, 20 Jun 2023 22:18:38 +0000 (01:18 +0300)]
Delete IsCppCodegenTemporaryWorkaround (#87820)

C++ codegen has been no more for a long time.

We still set this to 'true' downstream in NAOT-LLVM, but don't actually need to.

15 months agofix WBT dotnet.native.worker.js support (#87823)
Aleksey Kliger (λgeek) [Tue, 20 Jun 2023 22:16:03 +0000 (18:16 -0400)]
fix WBT dotnet.native.worker.js support (#87823)

* fix WBT dotnet.native.worker.js support

We used to create a dotnet.worker.js but then we renamed the
emscripten outputs to dotnet.native.

* fix logic in ComputePublishWebAssets

15 months ago[mono] Fix some warnings. (#87825)
Zoltan Varga [Tue, 20 Jun 2023 22:09:28 +0000 (18:09 -0400)]
[mono] Fix some warnings. (#87825)

15 months agoAdd missing argument name when throwing ArgumentException (#87797)
Gérald Barré [Tue, 20 Jun 2023 22:01:07 +0000 (18:01 -0400)]
Add missing argument name when throwing ArgumentException (#87797)

* Add missing argument name when throwing ArgumentException

* Update test

15 months agoOptions validation source generator (#87587)
Tarek Mahmoud Sayed [Tue, 20 Jun 2023 21:56:21 +0000 (14:56 -0700)]
Options validation source generator (#87587)

15 months agoFix a couple of issues related to Process.WaitForExit on Unix (#87174)
Stephen Toub [Tue, 20 Jun 2023 21:01:36 +0000 (17:01 -0400)]
Fix a couple of issues related to Process.WaitForExit on Unix (#87174)

* Fix WaitForExitAsync could return a cancelled task

* Fix handling of _waitInProgress

* Update ProcessWaitState.Unix.cs

* Update src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessWaitState.Unix.cs

* Address PR feedback

* Initialize wait task with already-completed task

---------

Co-authored-by: skyoxZ <skyoxZ@qq.com>
15 months agoTar: Ensure trailing separator in sanitized path for extraction (#87534)
Carlos Sánchez López [Tue, 20 Jun 2023 20:10:21 +0000 (13:10 -0700)]
Tar: Ensure trailing separator in sanitized path for extraction (#87534)

15 months ago[mono][tasks] Extract EmitWasmBundle into generic EmitBundle task and enable bundling...
Mitchell Hwang [Tue, 20 Jun 2023 19:42:42 +0000 (15:42 -0400)]
[mono][tasks] Extract EmitWasmBundle into generic EmitBundle task and enable bundling in mono self-contained library (#84191)

* [tasks] Move EmitWasmBundle out of wasm specific task

* [tasks] Make EmitBundle more generic

* [tasks] Generate EmitBundle task and replace invocations of old task

* Extend preloading assemblies with mono_assembly_open

* [LibraryBuilder] Integrate bundling

* Refactor LibraryBuilder targets to isolate Bundling

* [mono] Add mono_get_bundled_assembly in preparation for bundled runtimeconfig data

* [mono][librarymode] Bundle runtimeconfig.bin

* Address feedback

Redesign bundling apis to handle various types of resources

Move bundle registering into generated function and handle all forms of bundle registering there

Move bundling api into assembly.c and prototypes into assembly-internals.h

Rename assemblies to resources in bundling context

Include EmitBundle task in wasm nuget

Declare macro for case invariant string comparison

Add documentation for bundling apis

* Consolidate runtimeconfig functions

* [LibraryBuilder] Enable bundling by default

* Handle pdb bundling

* Default EmitBundle callback function to mono_add_bundled_resource

* Combine bundled resource types into generic bundled data

* Add api to free memory dynamically allocated for the bundled resources hash table

* Prepend enum and entries with mono

* Move bundling api into separate source and header

* Fix source file name

* Prefix struct with Mono

* Integrate new bundling api into mono debug

* Fix types in autoinit

* [mono] Base bundling apis around preallocation of MonoBundled*Resource structs

* [mono] Clean up bundled assembly and satellite assembly search

* [mono] Incorporate new bundling APIs into bundled resource retrievals

* [EmitBundle][task] Add templates for bundled source files

Templates added:
- header mirroring bundled-resources-internals.h and MonoBundledSatelliteAssembly
- source file template for each resource's byte data and size
- individual templates to build preallocated MonoBundled*Resource structs
- source file template to hold preallocated MonoBundled*Resource structs

* [EmitBundle] Enable consolidation of bundled resource symbols

* [EmitBundle] Generate bundled source file to preallocate MonoBundled*Resources

* [EmitBundle] Output symbol to resource type map for populating function to add bundled resources

* [LibraryBuilder] Generate source file to add preallocated MonoBundled*Resources

* [LibraryBuilder] Incorporate EmitBundle templates into targets flow

* [EmitBundle] Move bundle registration back into EmitBundle
[EmitBundle] Leverage Emit for file generation

* Update invocations of EmitBundle task

* Address feedback

Migrate logic to check hash table for assemblies or satellite assemblies back to bundled-resources.c
Prepend apis with consistent mono_bundled_resources prefix

* [mono] Prefer C99 compliant types for partially exposed APIs

* Address various fixups

Remove unused function
Remove unnecessary string duplication
Add length checks for comparisons
Fix spacing in MonoBundledResource structs
Avoid g_hash_table_lookup_extended precondition macro assertion fail

* Combine preallocation registration and rename to templates

* Prefer symbol data over symfile

* Differentiate resource name and symbol

* Update invocations of EmitBundle

* Add inlined resource getters

* Add unique id field for each MonoBundledResource

* Include culture information for satellite resources

* Generate preallocation and registration source file iff BundleFile provided

* Generate output itemgroup detailing resource data

* Leverage new bundling api from old bundling api and deprecate

* [mono][debug] Migrate symbol data registration to new bundling api

* Remove symbol data from MonoBundleSatelliteAssemblyResource

* Directly determine resource type

* Update bundled header and switch to non internal types

Update bundled header to declare resource symbols and registration function
Switch types from mono internal types to C99 compliant as bundling apis are partially exposed to public

* Update Autoinitialization logic to leverage bundled runtimeconfig symbols

* Integrate header into bundled source

* Add functions to free allocated MonoBundledResources

* Fixup Leverage new bundling api from old bundling api and deprecate

* Fixup Address various fixups

* Remove unnecessary includes

* Fix trailing commas in structs and extra lines in generated files

* Move specific bundled resource getters into source file

* Various cleanups

Instantiating boolean variables
More direct insertion into hash table
Removing unnecessary assertions
Proper type casting
Preferring symbol_data over symfile
Adding void to prototype functions arg
Fix indentation and spacing
Prefer id over name

* Cleanup logic surrounding EmitBundle task invocations

* Rename output metadata to DataLenSymbol and DataLenSymbolValue

* Simplify bundled resource hashtable insertion

* Cleanup variable instantiation

* Fixup mono-debug

* Cleanup header

* fixup wasi

* fixup template format

* Add flexibility to auto initialize runtime without bundled runtimeconfig

* Various fixups

* Use g_free for memory allocated through glib apis

* Move condition end tag into LibraryBuilder to avoid empty line and cluttered line

* Add bundled resource getters to access data values without MonoBundledResource structs

* Emit one object file for single resource data source file mode

* Rename resource size symbol

* Use public friendly API in file linking towards runtime

* Cleanup types populated through bundled resource getters

* Move extern block completely to LibraryBuilder side

* Update EmitBundle task invocations to use BundleRegistrationFunctionName

* Refactor EmitBundle to account for timezone duplicate resource contents

* wip

* wip

* WIP

* [mono] Alias assemblies with known extension in bundled resources hashtable

* [tasks] Calculate destination files within EmitBundle task itself

* Update invocations of EmitBundle to grab DestinationFiles from output

* Guard webcil specific logic

* Include OutputDirectory path into output destinationFiles

* Fix debugger tests and memory leak

* Various fixups and Documentation

* Try adding resources with known assembly extensions as dll

* Revert to custom hash and equal without WEBCIL guard
This reverts commit 0e3344214e306709c68ef0aa453863b9f79563ed.

* Consolidate file and bundledResource variables

* Add culture metadata to SatelliteAssembly resources

* Truncate Encoding for readability

* Enable custom hash for bundling resources on wasm

* Leverage new bundling api for wasm wasi drivers

* Add helper to dynamically add bundled assembly and satellite_assembly resources

* Limit when bundled resources can be added and freed

* Restrict MonoBundledResource getters

* Restrict exposure of underlying MonoBundledAssemblyResource modification

* WIP

* Free function chaining.

* Fix crash when output parameters are NULL.

* Fix WASM/WASI build errors.

* Align bundled resources registration struct

* [task] Check PE metadata to determine resource type

* Cleanup Satellite Assembly bundling

* Address Feedback

* Split MonoBundledAssemblyResource getter

* Addressing more feedback

* Validate OutputDirectory

---------

Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: lateralusX <lateralusx.github@gmail.com>
15 months agoSPMI: Handle -jitoption for tpdiff (#87818)
Jakob Botsch Nielsen [Tue, 20 Jun 2023 19:40:33 +0000 (21:40 +0200)]
SPMI: Handle -jitoption for tpdiff (#87818)

15 months ago[wasm][debugger] Remove usage of GeneratedRegex (#86911)
Thays Grazia [Tue, 20 Jun 2023 19:24:00 +0000 (16:24 -0300)]
[wasm][debugger] Remove usage of GeneratedRegex (#86911)

* avoid breaking change

* Addressin @radical comments

* Addressing @radical comments

15 months agoSupport config binding ext methods in options assembly (#87733)
Layomi Akinrinade [Tue, 20 Jun 2023 18:56:24 +0000 (11:56 -0700)]
Support config binding ext methods in options assembly (#87733)

15 months agoJIT: Insert readbacks eagerly in physical promotion (#87809)
Jakob Botsch Nielsen [Tue, 20 Jun 2023 17:43:57 +0000 (19:43 +0200)]
JIT: Insert readbacks eagerly in physical promotion (#87809)

Physical promotion currently inserts readbacks (reading the struct local
back into the field local) as COMMAs right before a local that needs it.
This is not right for QMARKs where it may mean we only end up reading
back the local in one of the branches.

This change makes physical promotion insert readbacks as new statements
before any statement that is going to need it. While we could do this
for QMARKs only, it is done for any statement indiscriminately since it
has two benefits:
1. It allows forward-sub to kick in for the readbacks, which can lead to
   a contained LCL_FLD
2. It stops us from disabling local copy prop by avoiding the creation
   of embedded stores.

The existing logic is still necessary to keep in case the readback was
marked within the same tree.

Fix #87508

15 months agoFix a number of source generator bugs. (#87796)
Eirik Tsarpalis [Tue, 20 Jun 2023 17:43:29 +0000 (18:43 +0100)]
Fix a number of source generator bugs. (#87796)

* Fix a number of source generator bugs.

* Extract type attribute processing to a standalone method.

15 months agoEnsure that parsed JsonElement values are never marked as disposable. (#87766)
Eirik Tsarpalis [Tue, 20 Jun 2023 17:36:56 +0000 (18:36 +0100)]
Ensure that parsed JsonElement values are never marked as disposable. (#87766)

15 months agoUpdate dependencies from https://github.com/dotnet/roslyn build 20230619.4 (#87816)
dotnet-maestro[bot] [Tue, 20 Jun 2023 16:32:00 +0000 (11:32 -0500)]
Update dependencies from https://github.com/dotnet/roslyn build 20230619.4 (#87816)

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.7.0-2.23301.9 -> To Version 4.7.0-2.23319.4

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
15 months agominor WBT fixups for local testing (#87817)
Aleksey Kliger (λgeek) [Tue, 20 Jun 2023 16:10:54 +0000 (12:10 -0400)]
minor WBT fixups for local testing (#87817)

Now that there's no perftrace variant, the _BuildVariants item group
could be empty.  Also replace "three" by "two" and 3 by 2 in a few places

15 months agoChange Parallel to use Environment.TickCount64 (#87800)
Stephen Toub [Tue, 20 Jun 2023 15:53:12 +0000 (11:53 -0400)]
Change Parallel to use Environment.TickCount64 (#87800)

* Change Parallel to use Environment.TickCount64

Avoid wraparound issues from using Environment.TickCount.

* Update src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs

Co-authored-by: Dan Moseley <danmose@microsoft.com>
---------

Co-authored-by: Dan Moseley <danmose@microsoft.com>
15 months agoSupport relative path for ICU_DAT_FILE_PATH on iOS/tvOS/Catalyst (#87813)
Alexander Köplinger [Tue, 20 Jun 2023 15:48:48 +0000 (17:48 +0200)]
Support relative path for ICU_DAT_FILE_PATH on iOS/tvOS/Catalyst (#87813)

We consider it relative to the app bundle root.

Required for https://github.com/xamarin/xamarin-macios/issues/17877 and NativeAOT scenarios.

15 months agoFix using ICU with Bionic and NativeAOT (#87806)
Michal Strehovský [Tue, 20 Jun 2023 15:16:39 +0000 (00:16 +0900)]
Fix using ICU with Bionic and NativeAOT (#87806)

I blindly copied a piece of configuration from Mono but System.Globalization.Native is built elsewhere for NativeAOT.

15 months agoFix symbol stripping on Windows (#87802)
Michal Strehovský [Tue, 20 Jun 2023 15:14:10 +0000 (00:14 +0900)]
Fix symbol stripping on Windows (#87802)

`&&` and newlines don't play well on Windows. Separate this into multiple Exec tasks.

15 months ago[browser][MT] fix library tests, remove MonoWasmBuildVariant=perftrace (#87549)
Pavel Savara [Tue, 20 Jun 2023 11:41:50 +0000 (13:41 +0200)]
[browser][MT] fix library tests, remove MonoWasmBuildVariant=perftrace (#87549)

15 months agoUpdate version of MSDia and default to using shipped versions (#87782)
Juan Hoyos [Tue, 20 Jun 2023 09:17:03 +0000 (02:17 -0700)]
Update version of MSDia and default to using shipped versions (#87782)

15 months agoInvoke `where` with `/Q` when looking for tools (#87803)
Michal Strehovský [Tue, 20 Jun 2023 08:28:25 +0000 (17:28 +0900)]
Invoke `where` with `/Q` when looking for tools (#87803)

Avoids printing `INFO: Could not find files for the given pattern(s).` to build output.

15 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 220513...
dotnet bot [Tue, 20 Jun 2023 07:02:45 +0000 (09:02 +0200)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2205134 (#87788)

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2204780

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2204780

15 months ago[mono][mini] Fix conversion from r4/r8 to native u (#85964)
Vlad Brezae [Tue, 20 Jun 2023 06:08:35 +0000 (09:08 +0300)]
[mono][mini] Fix conversion from r4/r8 to native u (#85964)

* [mono][mini] Fix conversion from r4/r8 to native u

When converting from float point to unsigned integer, we always do a conversion to u8, then do a simple integer conversion with range checks. The problem is that the first conversion to u8 pushes a STACK_I8 and doing a further conversion to u8 is not actually a nop since it will throw if the result of the previous conversion is negative.

* Enable tests

* [mono][jit] Reuse conv ovf methods used by interpreter

These follow CoreCLR implementation and don't rely on undefined behavior from out of range conversions.

15 months agoFix outerloop CI error (#87789)
David Wrighton [Tue, 20 Jun 2023 03:32:08 +0000 (20:32 -0700)]
Fix outerloop CI error (#87789)

* Fix issue where type validation checker failed to instantiate signature before performing signature comparison

15 months agoAdd missing Free methods for our Com interface marshallers. (#87777)
Jeremy Koritzinsky [Tue, 20 Jun 2023 03:18:18 +0000 (20:18 -0700)]
Add missing Free methods for our Com interface marshallers. (#87777)

15 months agoAdd DebuggerDisplay to Logger and Logger<T> (#87754)
James Newton-King [Tue, 20 Jun 2023 03:16:01 +0000 (11:16 +0800)]
Add DebuggerDisplay to Logger and Logger<T> (#87754)

15 months agoEnsure that the various Min and Max APIs are accelerated where possible (#87641)
Tanner Gooding [Tue, 20 Jun 2023 00:55:56 +0000 (17:55 -0700)]
Ensure that the various Min and Max APIs are accelerated where possible (#87641)

* Updating Math.Max and Math.Min to utilize AVX512 when available

* Ensure that Single/Double APIs can be directly handled as intrinsic

* Ensure that the various Min and Max APIs are accelerated where possible

* Don't include ILogB for the time being

* Ensure FixupScalar is passed all 4 parameters

* Apply suggestions from code review

15 months ago[mono][aot] Fix an assertion. (#87692)
Zoltan Varga [Tue, 20 Jun 2023 00:41:17 +0000 (20:41 -0400)]
[mono][aot] Fix an assertion. (#87692)

Fixes https://github.com/dotnet/runtime/issues/87682.

15 months agoMake idSmallCns signed to allow including -1 (#87373)
Tanner Gooding [Tue, 20 Jun 2023 00:19:59 +0000 (17:19 -0700)]
Make idSmallCns signed to allow including -1 (#87373)

* Make idSmallCns signed on xarch

* Ensure EMITTER_STATS are correctly tracked

* Use signed _idSmallCns on other platforms as well

* Have EMITTER_STATS track additional information about constants

* Also track whether the constant fits into 8, 16, or 32-bits

* Fix the formatting/ordering of the EMITTER_STATS header

* Ensure the EMITTER_STATS header covers all the instrDesc types

* Ensure that instrDesc counts are all being tracked by EMITTER_STATS

* Apply suggestions from code review

Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
---------

Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
15 months agofix mono HelloWorld sample (#87778)
Aleksey Kliger (λgeek) [Mon, 19 Jun 2023 23:51:49 +0000 (19:51 -0400)]
fix mono HelloWorld sample (#87778)

* fix mono HelloWorld sample

Set SelfContained=true.  Otherwise we get this when trying to run the
app:

```
./artifacts/bin/H
elloWorld/arm64/Release/osx-arm64/publish/HelloWorld
You must install or update .NET to run this application.

App: /Users/alklig/work/dotnet-runtime/runtime-review/artifacts/bin/HelloWorld/arm64/Release/osx-arm64/publish/HelloWorld
```

* fix samples

15 months agoUpdate generators.targets (#87784)
Viktor Hofer [Mon, 19 Jun 2023 21:56:20 +0000 (23:56 +0200)]
Update generators.targets (#87784)

15 months agoExpose AVX512 Compare and BlendVariable APIs (#87404)
Tanner Gooding [Mon, 19 Jun 2023 21:55:20 +0000 (14:55 -0700)]
Expose AVX512 Compare and BlendVariable APIs (#87404)

* Expose AVX512 Compare APIs

* Expose AVX512 Compare Tests

* Ensure AVX512 Compare are supported by the JIT

* Expose AVX512 BlendVariable APIs

* Expose AVX512 BlendVariable Tests

* Ensure AVX512 BlendVariable is supported by the JIT

* Apply formatting patch

* Ensure the register is sign-extended for vblendvps

15 months agoUse pairwise load in `WidenAsciiToUtf16` (#87737)
xtqqczze [Mon, 19 Jun 2023 21:43:38 +0000 (22:43 +0100)]
Use pairwise load in `WidenAsciiToUtf16` (#87737)

15 months agoUnconditionally suppress IL2026 for StartupHookProvider.CallStartupHook (#87779)
Justin Anderson [Mon, 19 Jun 2023 21:36:58 +0000 (14:36 -0700)]
Unconditionally suppress IL2026 for StartupHookProvider.CallStartupHook (#87779)

15 months agoUse analyzers from targeting pack for NetCoreAppCurrent (#87726)
Viktor Hofer [Mon, 19 Jun 2023 21:27:38 +0000 (23:27 +0200)]
Use analyzers from targeting pack for NetCoreAppCurrent (#87726)

* Use analyzers from targeting pack for NetCoreAppCurrent

Fixes that analyzer failures didn't show-up in #74897

Add analyzers to the frameworklist that OOB projects in src/libraries
use, and only auto ProjectReference the analyzers in generators.targets
when not using the analyzers from the targeting pack.

Also move the generator projects related code into a separate file.

Continuation of https://github.com/dotnet/runtime/pull/75093

* Fix project build

* Add missing reference to Regex tests

* Add missing generators for netfx build

* Fix paht in test project

* Fix typo

* Disable runtime marshalling for SharedTypes.csproj

* Disable runtime marshalling for NativeExports.csproj

15 months ago[PERF] Fix crossgen zip missing error (#87662)
Parker Bibus [Mon, 19 Jun 2023 21:09:15 +0000 (14:09 -0700)]
[PERF] Fix crossgen zip missing error (#87662)

Only run ArchiveFiles for runKinds that use it.

15 months agoFixed System.Tests.DateTimeTests.TryFormat_MatchesToString test (#87693)
Alexander Radchenko [Mon, 19 Jun 2023 21:05:54 +0000 (03:05 +0600)]
Fixed System.Tests.DateTimeTests.TryFormat_MatchesToString test (#87693)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
15 months agoJIT: Cache significant segments computations for layouts in physical promotion (...
Jakob Botsch Nielsen [Mon, 19 Jun 2023 20:30:19 +0000 (22:30 +0200)]
JIT: Cache significant segments computations for layouts in physical promotion (#87745)

Before:
JitEnablePhysicalPromotion=1
benchmarks.run_pgo:
Total num SignificantSegments calls: 2543
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>     312 count ( 37% of total)
      2 ..       2 ===>      58 count ( 44% of total)
      3 ..       3 ===>     181 count ( 66% of total)
      4 ..       5 ===>     191 count ( 90% of total)
      6 ..      10 ===>      66 count ( 98% of total)
     11 ..      20 ===>      12 count ( 99% of total)
     21 ..      35 ===>       4 count (100% of total)
     36 ..      50 ===>       0 count (100% of total)
     51 ..      75 ===>       0 count (100% of total)
     76 ..     100 ===>       0 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     250 ===>       0 count (100% of total)
    251 ..     500 ===>       0 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

libraries.pmi:
Total num SignificantSegments calls: 28525
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>    1154 count ( 19% of total)
      2 ..       2 ===>    1878 count ( 50% of total)
      3 ..       3 ===>     809 count ( 64% of total)
      4 ..       5 ===>     782 count ( 77% of total)
      6 ..      10 ===>     831 count ( 91% of total)
     11 ..      20 ===>     357 count ( 97% of total)
     21 ..      35 ===>     101 count ( 98% of total)
     36 ..      50 ===>      29 count ( 99% of total)
     51 ..      75 ===>      29 count ( 99% of total)
     76 ..     100 ===>       8 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     250 ===>       0 count (100% of total)
    251 ..     500 ===>       0 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

JitEnablePhysicalPromotion=1;JitStressModeNames=STRESS_NO_OLD_PROMOTION
benchmarks.run_pgo:
Total num SignificantSegments calls: 90839
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>     681 count (  7% of total)
      2 ..       2 ===>    1035 count ( 17% of total)
      3 ..       3 ===>    1635 count ( 34% of total)
      4 ..       5 ===>    1053 count ( 45% of total)
      6 ..      10 ===>    3162 count ( 78% of total)
     11 ..      20 ===>     814 count ( 87% of total)
     21 ..      35 ===>     931 count ( 96% of total)
     36 ..      50 ===>     215 count ( 99% of total)
     51 ..      75 ===>      69 count ( 99% of total)
     76 ..     100 ===>       4 count ( 99% of total)
    101 ..     150 ===>       4 count ( 99% of total)
    151 ..     250 ===>       0 count ( 99% of total)
    251 ..     500 ===>      11 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

libraries.pmi:
Total num SignificantSegments calls: 277708
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>    6993 count ( 17% of total)
      2 ..       2 ===>    8197 count ( 38% of total)
      3 ..       3 ===>    5225 count ( 51% of total)
      4 ..       5 ===>    5380 count ( 65% of total)
      6 ..      10 ===>    7141 count ( 83% of total)
     11 ..      20 ===>    4094 count ( 93% of total)
     21 ..      35 ===>    1627 count ( 97% of total)
     36 ..      50 ===>     519 count ( 98% of total)
     51 ..      75 ===>     292 count ( 99% of total)
     76 ..     100 ===>      98 count ( 99% of total)
    101 ..     150 ===>      59 count ( 99% of total)
    151 ..     250 ===>      11 count ( 99% of total)
    251 ..     500 ===>       4 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

After:
benchmarks.run_pgo:
Total num SignificantSegments calls: 915
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>     741 count ( 89% of total)
      2 ..       2 ===>      75 count ( 99% of total)
      3 ..       3 ===>       8 count (100% of total)
      4 ..       5 ===>       0 count (100% of total)
      6 ..      10 ===>       0 count (100% of total)
     11 ..      20 ===>       0 count (100% of total)
     21 ..      35 ===>       0 count (100% of total)
     36 ..      50 ===>       0 count (100% of total)
     51 ..      75 ===>       0 count (100% of total)
     76 ..     100 ===>       0 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     250 ===>       0 count (100% of total)
    251 ..     500 ===>       0 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

libraries.pmi:
Total num SignificantSegments calls: 9061
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>    4172 count ( 69% of total)
      2 ..       2 ===>    1105 count ( 88% of total)
      3 ..       3 ===>     416 count ( 95% of total)
      4 ..       5 ===>     214 count ( 98% of total)
      6 ..      10 ===>      67 count ( 99% of total)
     11 ..      20 ===>       3 count ( 99% of total)
     21 ..      35 ===>       1 count (100% of total)
     36 ..      50 ===>       0 count (100% of total)
     51 ..      75 ===>       0 count (100% of total)
     76 ..     100 ===>       0 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     250 ===>       0 count (100% of total)
    251 ..     500 ===>       0 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

JitEnablePhysicalPromotion=1;JitStressModeNames=STRESS_NO_OLD_PROMOTION
benchmarks.run_pgo:
Total num SignificantSegments calls: 15082
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>    6709 count ( 69% of total)
      2 ..       2 ===>    1735 count ( 87% of total)
      3 ..       3 ===>     462 count ( 92% of total)
      4 ..       5 ===>     471 count ( 97% of total)
      6 ..      10 ===>     237 count (100% of total)
     11 ..      20 ===>       0 count (100% of total)
     21 ..      35 ===>       0 count (100% of total)
     36 ..      50 ===>       0 count (100% of total)
     51 ..      75 ===>       0 count (100% of total)
     76 ..     100 ===>       0 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     250 ===>       0 count (100% of total)
    251 ..     500 ===>       0 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

libraries.pmi:
Total uncached SignificantSegments calls: 68938
(Per context) SignificantSegments calls
     <=          0 ===>       0 count (  0% of total)
      1 ..       1 ===>   24323 count ( 61% of total)
      2 ..       2 ===>    8687 count ( 83% of total)
      3 ..       3 ===>    3357 count ( 91% of total)
      4 ..       5 ===>    2378 count ( 97% of total)
      6 ..      10 ===>     789 count ( 99% of total)
     11 ..      20 ===>     105 count ( 99% of total)
     21 ..      35 ===>       1 count (100% of total)
     36 ..      50 ===>       0 count (100% of total)
     51 ..      75 ===>       0 count (100% of total)
     76 ..     100 ===>       0 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     250 ===>       0 count (100% of total)
    251 ..     500 ===>       0 count (100% of total)
    501 ..    1000 ===>       0 count (100% of total)

15 months agoJIT: Fix LocalUses::FindAccess (#87732)
Jakob Botsch Nielsen [Mon, 19 Jun 2023 20:29:54 +0000 (22:29 +0200)]
JIT: Fix LocalUses::FindAccess (#87732)

The function is looking for access information with a specified type at
a specified offset, but was using the wrong list here. That would in
some cases with overlapping accesses cause us to fail to find the
Access. The net result is that we rarely end up not promoting some
induced accesses that we would otherwise promote.

15 months agoEnable GDV with multiple guesses for NativeAOT (#87380)
Egor Bogatov [Mon, 19 Jun 2023 20:17:24 +0000 (22:17 +0200)]
Enable GDV with multiple guesses for NativeAOT (#87380)

15 months agoRevert "Upgrade ios perf queue to osx 13 (#86574)" (#87780)
Milos Kotlar [Mon, 19 Jun 2023 20:09:39 +0000 (22:09 +0200)]
Revert "Upgrade ios perf queue to osx 13 (#86574)" (#87780)

This reverts commit da712842c32eeb34a97d7d2db927a22b4981ecfb.

15 months agoadd zero byte read to SslStream (#87563)
Tomas Weinfurt [Mon, 19 Jun 2023 18:37:24 +0000 (20:37 +0200)]
add zero byte read to SslStream (#87563)

* add zero byte read to SslStream

* fix test

* Apply suggestions from code review

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* feedback

* add back missing line

---------

Co-authored-by: Stephen Toub <stoub@microsoft.com>
15 months agoMake sure that intellisense files are copied (#87603)
Viktor Hofer [Mon, 19 Jun 2023 17:31:33 +0000 (19:31 +0200)]
Make sure that intellisense files are copied (#87603)

Fixes https://github.com/dotnet/runtime/issues/87585

When looking at the 8.0 Preview 5 SDK, xml files are missing for certain
assemblies. This is likely because of the TargetFramework condition in
intellisense.targets. Instead of conditioning on the rid-less net8.0
TFM, use the sfx.proj which already assemblies the shared framework and
targeting pack layout to copy the documentation files.

Additionally, remove the XmlDocDir and copy the files into the targeting
pack folder which was a difference between the "real" targeting pack and
the "fake" one that libraries generates.

15 months agoLSRA-throughput: Iterate over the regMaskTP instead all registers (#87424)
Kunal Pathak [Mon, 19 Jun 2023 16:40:16 +0000 (09:40 -0700)]
LSRA-throughput: Iterate over the regMaskTP instead all registers (#87424)

* replace for-loop with regMaspTP iterator

* jit format

* REVERT

* fix a bug

* address review feedback

* Add genFirstRegNumFromMaskAndToggle and genFirstRegNumFromMask

* Use actualRegistersMask

* jit format

* review feedback

* Inline BitScanForward

* fix build error

* remove commented code

15 months agoJIT: Add some limits in physical promotion (#87729)
Jakob Botsch Nielsen [Mon, 19 Jun 2023 16:20:58 +0000 (18:20 +0200)]
JIT: Add some limits in physical promotion (#87729)

Add limits on how many fields we promote in each struct and how many
total fields we promote. These limits are put in place to avoid
pathological cases; we do not hit any of them over all of our SPMI
collections (at least on win-x64).

The limits were selected based on histograms of physical promotion stats
over our collections. Here they are for some of the important
collections:

JitEnablePhysicalPromotion=1:
benchmarks.run_pgo:

```
(Per context) How many fields are promoted:
     <=          0 ===>    1654 count ( 66% of total)
      1 ..       1 ===>     206 count ( 75% of total)
      2 ..       2 ===>     259 count ( 85% of total)
      3 ..       3 ===>     127 count ( 90% of total)
      4 ..       4 ===>      46 count ( 92% of total)
      5 ..       5 ===>      30 count ( 93% of total)
      6 ..      10 ===>      99 count ( 97% of total)
     11 ..      15 ===>      17 count ( 98% of total)
     16 ..      20 ===>      21 count ( 99% of total)
     21 ..      30 ===>      16 count ( 99% of total)
     31 ..      40 ===>       3 count (100% of total)
     41 ..      50 ===>       0 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     200 ===>       0 count (100% of total)
    201 ..     300 ===>       0 count (100% of total)
    301 ..     400 ===>       0 count (100% of total)
    401 ..     500 ===>       0 count (100% of total)
    501 ..     700 ===>       0 count (100% of total)
    701 ..    1000 ===>       0 count (100% of total)
   1001 ..    2000 ===>       0 count (100% of total)
   2001 ..    3000 ===>       0 count (100% of total)
   3001 ..    4000 ===>       0 count (100% of total)
   4001 ..    5000 ===>       0 count (100% of total)

(Per struct) How many fields are promoted:
     <=          0 ===>     980 count ( 39% of total)
      1 ..       1 ===>     760 count ( 69% of total)
      2 ..       2 ===>     423 count ( 86% of total)
      3 ..       3 ===>      73 count ( 89% of total)
      4 ..       4 ===>      30 count ( 90% of total)
      5 ..       5 ===>      46 count ( 92% of total)
      6 ..       6 ===>     181 count ( 99% of total)
      7 ..       8 ===>       2 count (100% of total)
      9 ..      10 ===>       0 count (100% of total)
     11 ..      15 ===>       0 count (100% of total)
     16 ..      20 ===>       0 count (100% of total)
     21 ..      30 ===>       0 count (100% of total)
     31 ..      50 ===>       0 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     200 ===>       0 count (100% of total)
    201 ..     400 ===>       0 count (100% of total)
```

libraries.pmi:

```
(Per context) How many fields are promoted:
     <=          0 ===>   19677 count ( 76% of total)
      1 ..       1 ===>    1717 count ( 83% of total)
      2 ..       2 ===>     899 count ( 86% of total)
      3 ..       3 ===>     616 count ( 89% of total)
      4 ..       4 ===>     660 count ( 91% of total)
      5 ..       5 ===>     285 count ( 92% of total)
      6 ..      10 ===>     932 count ( 96% of total)
     11 ..      15 ===>     377 count ( 98% of total)
     16 ..      20 ===>     164 count ( 98% of total)
     21 ..      30 ===>     165 count ( 99% of total)
     31 ..      40 ===>      68 count ( 99% of total)
     41 ..      50 ===>      28 count ( 99% of total)
     51 ..     100 ===>      51 count ( 99% of total)
    101 ..     150 ===>      14 count ( 99% of total)
    151 ..     200 ===>       2 count ( 99% of total)
    201 ..     300 ===>       0 count ( 99% of total)
    301 ..     400 ===>       1 count (100% of total)
    401 ..     500 ===>       0 count (100% of total)
    501 ..     700 ===>       0 count (100% of total)
    701 ..    1000 ===>       0 count (100% of total)
   1001 ..    2000 ===>       0 count (100% of total)
   2001 ..    3000 ===>       0 count (100% of total)
   3001 ..    4000 ===>       0 count (100% of total)
   4001 ..    5000 ===>       0 count (100% of total)

(Per struct) How many fields are promoted:
     <=          0 ===>    6218 count ( 31% of total)
      1 ..       1 ===>    5075 count ( 57% of total)
      2 ..       2 ===>    1440 count ( 65% of total)
      3 ..       3 ===>    1859 count ( 74% of total)
      4 ..       4 ===>    2682 count ( 88% of total)
      5 ..       5 ===>     974 count ( 93% of total)
      6 ..       6 ===>     624 count ( 96% of total)
      7 ..       8 ===>     533 count ( 99% of total)
      9 ..      10 ===>      37 count ( 99% of total)
     11 ..      15 ===>      65 count ( 99% of total)
     16 ..      20 ===>       2 count ( 99% of total)
     21 ..      30 ===>       0 count ( 99% of total)
     31 ..      50 ===>       1 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     200 ===>       0 count (100% of total)
    201 ..     400 ===>       0 count (100% of total)
```

realworld:

```
(Per context) How many fields are promoted:
     <=          0 ===>    1807 count ( 54% of total)
      1 ..       1 ===>     407 count ( 66% of total)
      2 ..       2 ===>     230 count ( 73% of total)
      3 ..       3 ===>     146 count ( 77% of total)
      4 ..       4 ===>     122 count ( 81% of total)
      5 ..       5 ===>      86 count ( 83% of total)
      6 ..      10 ===>     218 count ( 90% of total)
     11 ..      15 ===>     147 count ( 94% of total)
     16 ..      20 ===>      59 count ( 96% of total)
     21 ..      30 ===>      66 count ( 98% of total)
     31 ..      40 ===>      19 count ( 98% of total)
     41 ..      50 ===>      12 count ( 99% of total)
     51 ..     100 ===>      14 count ( 99% of total)
    101 ..     150 ===>       3 count ( 99% of total)
    151 ..     200 ===>       2 count ( 99% of total)
    201 ..     300 ===>       4 count ( 99% of total)
    301 ..     400 ===>       0 count ( 99% of total)
    401 ..     500 ===>       0 count ( 99% of total)
    501 ..     700 ===>       2 count (100% of total)
    701 ..    1000 ===>       0 count (100% of total)
   1001 ..    2000 ===>       0 count (100% of total)
   2001 ..    3000 ===>       0 count (100% of total)
   3001 ..    4000 ===>       0 count (100% of total)
   4001 ..    5000 ===>       0 count (100% of total)

(Per struct) How many fields are promoted:
     <=          0 ===>    2012 count ( 32% of total)
      1 ..       1 ===>    1421 count ( 55% of total)
      2 ..       2 ===>     499 count ( 63% of total)
      3 ..       3 ===>     521 count ( 71% of total)
      4 ..       4 ===>     565 count ( 80% of total)
      5 ..       5 ===>     446 count ( 87% of total)
      6 ..       6 ===>     503 count ( 96% of total)
      7 ..       8 ===>     139 count ( 98% of total)
      9 ..      10 ===>      71 count ( 99% of total)
     11 ..      15 ===>      34 count ( 99% of total)
     16 ..      20 ===>       3 count (100% of total)
     21 ..      30 ===>       0 count (100% of total)
     31 ..      50 ===>       0 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     200 ===>       0 count (100% of total)
    201 ..     400 ===>       0 count (100% of total)
```

JitEnablePhysicalPromotion=1;JitStressModeNames=STRESS_NO_OLD_PROMOTION:
benchmarks.run_pgo:

```
(Per context) How many fields are promoted:
     <=          0 ===>    1654 count ( 66% of total)
      1 ..       1 ===>     206 count ( 75% of total)
      2 ..       2 ===>     259 count ( 85% of total)
      3 ..       3 ===>     127 count ( 90% of total)
      4 ..       4 ===>      46 count ( 92% of total)
      5 ..       5 ===>      30 count ( 93% of total)
      6 ..      10 ===>      99 count ( 97% of total)
     11 ..      15 ===>      17 count ( 98% of total)
     16 ..      20 ===>      21 count ( 99% of total)
     21 ..      30 ===>      16 count ( 99% of total)
     31 ..      40 ===>       3 count (100% of total)
     41 ..      50 ===>       0 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     150 ===>       0 count (100% of total)
    151 ..     200 ===>       0 count (100% of total)
    201 ..     300 ===>       0 count (100% of total)
    301 ..     400 ===>       0 count (100% of total)
    401 ..     500 ===>       0 count (100% of total)
    501 ..     700 ===>       0 count (100% of total)
    701 ..    1000 ===>       0 count (100% of total)
   1001 ..    2000 ===>       0 count (100% of total)
   2001 ..    3000 ===>       0 count (100% of total)
   3001 ..    4000 ===>       0 count (100% of total)
   4001 ..    5000 ===>       0 count (100% of total)

(Per struct) How many fields are promoted:
     <=          0 ===>     980 count ( 39% of total)
      1 ..       1 ===>     760 count ( 69% of total)
      2 ..       2 ===>     423 count ( 86% of total)
      3 ..       3 ===>      73 count ( 89% of total)
      4 ..       4 ===>      30 count ( 90% of total)
      5 ..       5 ===>      46 count ( 92% of total)
      6 ..       6 ===>     181 count ( 99% of total)
      7 ..       8 ===>       2 count (100% of total)
      9 ..      10 ===>       0 count (100% of total)
     11 ..      15 ===>       0 count (100% of total)
     16 ..      20 ===>       0 count (100% of total)
     21 ..      30 ===>       0 count (100% of total)
     31 ..      50 ===>       0 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     200 ===>       0 count (100% of total)
    201 ..     400 ===>       0 count (100% of total)
```

libraries.pmi:
```
(Per context) How many fields are promoted:
     <=          0 ===>   37477 count ( 48% of total)
      1 ..       1 ===>    7987 count ( 58% of total)
      2 ..       2 ===>    7292 count ( 68% of total)
      3 ..       3 ===>    2988 count ( 72% of total)
      4 ..       4 ===>    4927 count ( 78% of total)
      5 ..       5 ===>    1835 count ( 81% of total)
      6 ..      10 ===>    7147 count ( 90% of total)
     11 ..      15 ===>    2694 count ( 93% of total)
     16 ..      20 ===>    1667 count ( 95% of total)
     21 ..      30 ===>    1346 count ( 97% of total)
     31 ..      40 ===>     758 count ( 98% of total)
     41 ..      50 ===>     335 count ( 99% of total)
     51 ..     100 ===>     510 count ( 99% of total)
    101 ..     150 ===>     107 count ( 99% of total)
    151 ..     200 ===>      34 count ( 99% of total)
    201 ..     300 ===>      12 count ( 99% of total)
    301 ..     400 ===>       2 count ( 99% of total)
    401 ..     500 ===>       2 count (100% of total)
    501 ..     700 ===>       0 count (100% of total)
    701 ..    1000 ===>       0 count (100% of total)
   1001 ..    2000 ===>       0 count (100% of total)
   2001 ..    3000 ===>       0 count (100% of total)
   3001 ..    4000 ===>       0 count (100% of total)
   4001 ..    5000 ===>       0 count (100% of total)

(Per struct) How many fields are promoted:
     <=          0 ===>  102669 count ( 39% of total)
      1 ..       1 ===>   57467 count ( 61% of total)
      2 ..       2 ===>   69010 count ( 88% of total)
      3 ..       3 ===>   11494 count ( 92% of total)
      4 ..       4 ===>   16887 count ( 99% of total)
      5 ..       5 ===>    1043 count ( 99% of total)
      6 ..       6 ===>     618 count ( 99% of total)
      7 ..       8 ===>     579 count ( 99% of total)
      9 ..      10 ===>      57 count ( 99% of total)
     11 ..      15 ===>      71 count ( 99% of total)
     16 ..      20 ===>       5 count ( 99% of total)
     21 ..      30 ===>       0 count ( 99% of total)
     31 ..      50 ===>       1 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     200 ===>       0 count (100% of total)
    201 ..     400 ===>       0 count (100% of total)
```

realworld:
```
(Per context) How many fields are promoted:
     <=          0 ===>    5617 count ( 41% of total)
      1 ..       1 ===>    1657 count ( 53% of total)
      2 ..       2 ===>    1164 count ( 62% of total)
      3 ..       3 ===>     522 count ( 66% of total)
      4 ..       4 ===>     878 count ( 72% of total)
      5 ..       5 ===>     472 count ( 76% of total)
      6 ..      10 ===>    1383 count ( 86% of total)
     11 ..      15 ===>     619 count ( 91% of total)
     16 ..      20 ===>     335 count ( 93% of total)
     21 ..      30 ===>     361 count ( 96% of total)
     31 ..      40 ===>     165 count ( 97% of total)
     41 ..      50 ===>     101 count ( 98% of total)
     51 ..     100 ===>     177 count ( 99% of total)
    101 ..     150 ===>      38 count ( 99% of total)
    151 ..     200 ===>      18 count ( 99% of total)
    201 ..     300 ===>      12 count ( 99% of total)
    301 ..     400 ===>       1 count ( 99% of total)
    401 ..     500 ===>       1 count ( 99% of total)
    501 ..     700 ===>       2 count (100% of total)
    701 ..    1000 ===>       0 count (100% of total)
   1001 ..    2000 ===>       0 count (100% of total)
   2001 ..    3000 ===>       0 count (100% of total)
   3001 ..    4000 ===>       0 count (100% of total)
   4001 ..    5000 ===>       0 count (100% of total)

(Per struct) How many fields are promoted:
     <=          0 ===>   23630 count ( 37% of total)
      1 ..       1 ===>   13267 count ( 59% of total)
      2 ..       2 ===>   16731 count ( 86% of total)
      3 ..       3 ===>    4677 count ( 93% of total)
      4 ..       4 ===>    2727 count ( 97% of total)
      5 ..       5 ===>     492 count ( 98% of total)
      6 ..       6 ===>     496 count ( 99% of total)
      7 ..       8 ===>     150 count ( 99% of total)
      9 ..      10 ===>      92 count ( 99% of total)
     11 ..      15 ===>      41 count ( 99% of total)
     16 ..      20 ===>       3 count ( 99% of total)
     21 ..      30 ===>       3 count ( 99% of total)
     31 ..      50 ===>       3 count (100% of total)
     51 ..     100 ===>       0 count (100% of total)
    101 ..     200 ===>       0 count (100% of total)
    201 ..     400 ===>       0 count (100% of total)
```

15 months agoFix ParseQuoteString handling of non-ASCII chars (#87756)
Stephen Toub [Mon, 19 Jun 2023 16:00:01 +0000 (12:00 -0400)]
Fix ParseQuoteString handling of non-ASCII chars (#87756)

15 months agoadd review comment to sb files (#87003)
Oleksandr Didyk [Mon, 19 Jun 2023 14:42:29 +0000 (16:42 +0200)]
add review comment to sb files (#87003)

15 months ago[wasm] Add helix retries for debugger tests (#87565)
Ankit Jain [Mon, 19 Jun 2023 14:22:41 +0000 (10:22 -0400)]
[wasm] Add helix retries for debugger tests (#87565)

.. when chrome fails to launch. For example:

```
  Error Message:
   System.IO.IOException : Process for /root/helix/work/correlation/chrome-linux/chrome unexpectedly exited with 127 during startup.
  Stack Trace:
     at DebuggerTests.WasmHostProvider.LaunchHostAsync(ProcessStartInfo psi, HttpContext context, Func`2 checkBrowserReady, String messagePrefix, Int32 hostReadyTimeoutMs, CancellationToken token) in /_/src/mono/wasm/debugger/DebuggerTestSuite/WasmHostProvider.cs:line 77
   at DebuggerTests.ChromeProvider.StartBrowserAndProxyAsync(HttpContext context, String targetUrl, Int32 remoteDebuggingPort, String messagePrefix, ILoggerFactory loggerFactory, CancellationTokenSource cts, Int32 browserReadyTimeoutMs, String locale) in /_/src/mono/wasm/debugger/DebuggerTestSuite/ChromeProvider.cs:line 60
   at DebuggerTests.TestHarnessStartup.<>c__DisplayClass13_0.<<Configure>b__2>d.MoveNext() in /_/src/mono/wasm/debugger/DebuggerTestSuite/TestHarnessStartup.cs:line 143
--- End of stack trace from previous location ---
   at DebuggerTests.Inspector.OpenSessionAsync(Func`3 getInitCmds, String urlToInspect, TimeSpan span) in /_/src/mono/wasm/debugger/DebuggerTestSuite/Inspector.cs:line 414
   at DebuggerTests.DebuggerTestBase.InitializeAsync() in /_/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs:line 173
```

15 months ago[wasm] Add more load PackedSimd methods (#87403)
Radek Doulik [Mon, 19 Jun 2023 13:02:34 +0000 (15:02 +0200)]
[wasm] Add more load PackedSimd methods (#87403)

* [wasm] Add more load PackedSimd methods

* Add custom attributes to PlatformNotSupported version

* Add default cases

15 months agoJIT: Insert writebacks in proper post-order location (#87612)
Jakob Botsch Nielsen [Mon, 19 Jun 2023 12:59:22 +0000 (14:59 +0200)]
JIT: Insert writebacks in proper post-order location (#87612)

For struct uses we need to take care to insert any necessary writeback
when we see the local in post-order. The existing approach waits until
it sees the GT_RETURN or GT_CALL node to create writebacks for the
operand, which can cause us to create a writeback that overlaps
improperly with a previous LCL_VAR. For example:

```
Processing use [000014] of V00.[002..004)
STMT00008 ( 0x023[E-] ... ??? )
               [000025] --CXG------                         ▌  CALL      byref  Program:M1(S0,short):byref
               [000023] ----------- arg0                    ├──▌  LCL_VAR   struct<S0, 12> V00 loc0
               [000021] --CXG------ arg1                    └──▌  CAST      int <- short <- int
               [000020] --CXG------                            └──▌  IND       int
               [000018] --CXG------                               └──▌  CALL      byref  Program:M1(S0,short):byref
               [000016] ----------- arg0                             ├──▌  LCL_VAR   struct<S0, 12> V00 loc0
               [000017] ----------- arg1                             └──▌  LCL_VAR   int    V01 loc1          (last use)
New statement:
STMT00008 ( 0x023[E-] ... ??? )
               [000025] -ACXG------                         ▌  CALL      byref  Program:M1(S0,short):byref
               [000023] ----------- arg0                    ├──▌  LCL_VAR   struct<S0, 12> V00 loc0
               [000021] -ACXG------ arg1                    └──▌  CAST      int <- short <- int
               [000020] -ACXG------                            └──▌  IND       int
               [000018] -ACXG------                               └──▌  CALL      byref  Program:M1(S0,short):byref
               [000089] -A--------- arg0                             ├──▌  COMMA     struct
               [000088] UA---------                                  │  ├──▌  STORE_LCL_FLD ushort V00 loc0         [+0]
               [000087] -----------                                  │  │  └──▌  LCL_VAR   int    V09 tmp6
               [000016] -----------                                  │  └──▌  LCL_VAR   struct<S0, 12> V00 loc0          (last use)
               [000017] ----------- arg1                             └──▌  LCL_VAR   int    V01 loc1          (last use)
```

The writeback `[000088]` should have been created before `[000023]`.

This change fixes the problem by moving the writeback logic into
ReplaceLocal. To properly handle commas we need to keep track of the
ancestor stack now.

Fix #87611