platform/upstream/dotnet/runtime.git
2 years agoRemove hardcoded non trimmable assemblies in oob.proj (#72171)
Viktor Hofer [Thu, 14 Jul 2022 23:03:46 +0000 (01:03 +0200)]
Remove hardcoded non trimmable assemblies in oob.proj (#72171)

* Remove hardcoded non trimmable assemblies in oob.proj

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

Use the `TargetPathWithTargetPlatformMoniker` to flow through the IsTrimmable property that is set by projects and use that for illink validation assembly selection.

* Update oob.proj

* Update illink.targets

2 years agoRemove IsPreRelease msbuild property (#72169)
Viktor Hofer [Thu, 14 Jul 2022 23:03:26 +0000 (01:03 +0200)]
Remove IsPreRelease msbuild property (#72169)

* Remove IsPreRelease msbuild property

The property was added in https://github.com/dotnet/coreclr/commit/809b8f792923c95b9d5fee824c60dde21079cca1 years ago and isn't used anymore. Remove it to ease branding.

* Update configureplatform.cmake

2 years agoMake llvm-objcopy preferred; no required (#72208)
Adeel Mujahid [Thu, 14 Jul 2022 22:59:43 +0000 (01:59 +0300)]
Make llvm-objcopy preferred; no required (#72208)

2 years agoFix tar checksum calculation bug (#72139)
Carlos Sanchez [Thu, 14 Jul 2022 22:43:16 +0000 (15:43 -0700)]
Fix tar checksum calculation bug (#72139)

* Merge await using declarations with usages.

* Rename TarEntry test files.

* Fix tar checksum calculation bug

* Revert argument rename

Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
2 years agoUse open images in HTTP/SSL pools (#72218)
Juan Hoyos [Thu, 14 Jul 2022 22:42:07 +0000 (15:42 -0700)]
Use open images in HTTP/SSL pools (#72218)

* Use open image in http.yml

* Use open image in ssl.yml

2 years agoAllow marshaller entry-point type to be a struct (#72207)
Elinor Fung [Thu, 14 Jul 2022 22:07:18 +0000 (15:07 -0700)]
Allow marshaller entry-point type to be a struct (#72207)

2 years agoUse u8 in a few more places (#71992)
Stephen Toub [Thu, 14 Jul 2022 21:43:07 +0000 (17:43 -0400)]
Use u8 in a few more places (#71992)

2 years agoFix more success path finalization in System.Security.Cryptography (#72203)
Stephen Toub [Thu, 14 Jul 2022 21:40:40 +0000 (17:40 -0400)]
Fix more success path finalization in System.Security.Cryptography (#72203)

Finalizable objects being left for finalization on success paths

2 years agoFix a broken dprintf (#72198)
Andrew Au [Thu, 14 Jul 2022 21:35:16 +0000 (14:35 -0700)]
Fix a broken dprintf (#72198)

2 years agoFix stackoverflow issue when creating recursive contracts using JsonIgnoreCondition...
Eirik Tsarpalis [Thu, 14 Jul 2022 21:17:18 +0000 (22:17 +0100)]
Fix stackoverflow issue when creating recursive contracts using JsonIgnoreCondition (#72186)

* Fix stackoverflow issue when creating recursive contracts using JsonIgnoreCondition

* fix formatting

2 years agoRe-enable releaseondetach profiler test (#72144)
David Mason [Thu, 14 Jul 2022 20:11:01 +0000 (13:11 -0700)]
Re-enable releaseondetach profiler test (#72144)

2 years agoRefactor segment size computation (#71178)
Andrew Au [Thu, 14 Jul 2022 19:59:41 +0000 (12:59 -0700)]
Refactor segment size computation (#71178)

Co-authored-by: Maoni0 <maoni@microsoft.com>
2 years agoFix error handling for generic arguments constrained as Enums (#72141)
Jan Kotas [Thu, 14 Jul 2022 19:50:37 +0000 (12:50 -0700)]
Fix error handling for generic arguments constrained as Enums (#72141)

Fixes #71884

2 years agoUpdate dependencies from https://github.com/dotnet/llvm-project build 20220711.1...
dotnet-maestro[bot] [Thu, 14 Jul 2022 19:32:49 +0000 (12:32 -0700)]
Update dependencies from https://github.com/dotnet/llvm-project build 20220711.1 (#72162)

runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.11.0-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 1.0.0-alpha.1.22252.1 -> To Version 1.0.0-alpha.1.22361.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoImplement HttpProtocolException for HTTP/3 (#72095)
Radek Zikmund [Thu, 14 Jul 2022 18:45:31 +0000 (20:45 +0200)]
Implement HttpProtocolException for HTTP/3 (#72095)

* Replace Http3ProtocolException with HttpProtocolException

* Correctly process incoming protocol errors

* Fix HTTP3 stress

* Add some tests

* Remove formating changes

* Code review feedback

* Fix build

* Throw HttpProtocolException from content stream as well

* Add test for throwing when reading the content stream

2 years agoGeneralize init block morphing a little (#70899)
SingleAccretion [Thu, 14 Jul 2022 18:27:16 +0000 (21:27 +0300)]
Generalize init block morphing a little (#70899)

* Generalize init block morphing a little

Make it handle arbitrary local destinations.

* Add a test

2 years agoFix incorrect buffer reallocation in AcceptSecurityContext (#72184)
Filip Navara [Thu, 14 Jul 2022 17:47:41 +0000 (19:47 +0200)]
Fix incorrect buffer reallocation in AcceptSecurityContext (#72184)

2 years ago[wasm] JSImport feedback (#72174)
Pavel Savara [Thu, 14 Jul 2022 17:31:21 +0000 (19:31 +0200)]
[wasm] JSImport feedback (#72174)

- fix exception marshaling on JSExport
- fix export class with no namespace on JSExport
- bind thisArg of function to closest scope in JSImport
Co-authored-by: Katelyn Gadd <kg@luminance.org>
2 years agoUtilize new APIs more in System.Formats.Asn1
Paulus Pärssinen [Thu, 14 Jul 2022 16:09:15 +0000 (19:09 +0300)]
Utilize new APIs more in System.Formats.Asn1

* Replace AsnWriter.Reverse with MemoryExtensions.Reverse
* Split BigInteger parsing and formatting between .NET Standard and Core where possible
* Use BinaryPrimitives in a few more places

2 years agoVector.Shuffle should use SSE2 for double overload when AVX is not availablee (#72168)
Egor Bogatov [Thu, 14 Jul 2022 15:40:53 +0000 (17:40 +0200)]
Vector.Shuffle should use SSE2 for double overload when AVX is not availablee (#72168)

2 years agoDon't explicitly link ICU into Mono (#70088)
Jo Shields [Thu, 14 Jul 2022 15:34:01 +0000 (11:34 -0400)]
Don't explicitly link ICU into Mono (#70088)

We build against FreeBSD 12, with ICU 69. By adding an explicit dynamic link against the system ICU at build time, it means we can't execute on FreeBSD 13.1, with ICU 70. Removing the linkage doesn't seem to break anything (it should be pulled in via the ICU shim in System.Globalization), but it does allow the runtime to execute okay on FreeBSD 13.1.

2 years ago[mono] Refactor UnmanagedCallersOnly_MonoAot tests (#71535)
Ivan Povazan [Thu, 14 Jul 2022 15:27:30 +0000 (17:27 +0200)]
[mono] Refactor UnmanagedCallersOnly_MonoAot tests (#71535)

* Removing UnmanagedCallersOnly_MonoAot due to duplication

* Reverting removal of UnmanagedCallersOnly_MonoAotTest

* Renaming the test to *Basic and reusing the native component

* Moving basic tests from the general test project into the basic one

* Utilizing source generator for test methods

2 years agoAdd missing inlining attribute (#72058)
Joe [Thu, 14 Jul 2022 15:24:31 +0000 (16:24 +0100)]
Add missing inlining attribute (#72058)

2 years agoConfigurationBinder should support binding private properties from ba… (#71039)
LateApexEarlySpeed [Thu, 14 Jul 2022 14:40:17 +0000 (22:40 +0800)]
ConfigurationBinder should support binding private properties from ba… (#71039)

* ConfigurationBinder should support binding private properties from base classes.

* Fix comment: consider binding 'Object' instance directly.

* Fix comment: directly use base-most methodInfo for properties; Add test cases for more get set combinations.

2 years agoRemove an assert from impHWIntrinsic (#72084)
Egor Bogatov [Thu, 14 Jul 2022 14:24:36 +0000 (16:24 +0200)]
Remove an assert from impHWIntrinsic (#72084)

2 years agoGet rid of hardcoded sleep in tracing/runtimeeventsource/nativeruntimeeventsource...
David Mason [Thu, 14 Jul 2022 10:25:32 +0000 (03:25 -0700)]
Get rid of hardcoded sleep in tracing/runtimeeventsource/nativeruntimeeventsource (#72010)

2 years agoFix WritePGOData (#72083)
Jakob Botsch Nielsen [Thu, 14 Jul 2022 08:56:55 +0000 (10:56 +0200)]
Fix WritePGOData (#72083)

We were constructing the TypeHandle before validating that the handle
did not represent an unknown handle. This crashes in the constructor in
debug builds due to some debug-only validation running there.

2 years ago[wasm][debugger][firefox] Added exception handling for Firefox onEval (#72011)
Ilona Tomkowicz [Thu, 14 Jul 2022 06:33:40 +0000 (08:33 +0200)]
[wasm][debugger][firefox] Added exception handling for Firefox onEval (#72011)

* Enabled tests for Firefox.

* Add exception catching for Firefox.

2 years agoSupport caller-allocated buffer for stateless collection marshalling (#72122)
Elinor Fung [Thu, 14 Jul 2022 05:58:42 +0000 (22:58 -0700)]
Support caller-allocated buffer for stateless collection marshalling (#72122)

- Refactor blittable element handling into a base helper for shared functionality between stateless and stateful
- Enable using a caller-allocated buffer for stateless collection marshalling

2 years ago[wasm][aot] Avoid making the 'this' variable volatile. (#71799)
Zoltan Varga [Thu, 14 Jul 2022 05:57:07 +0000 (01:57 -0400)]
[wasm][aot] Avoid making the 'this' variable volatile. (#71799)

This is only needed in non-llvmonly mode for computing stack traces in gshared methods.

2 years agoSpeed up ThreadLocalStatics_Test in DEBUG builds (#72151)
Michal Strehovský [Thu, 14 Jul 2022 04:34:28 +0000 (13:34 +0900)]
Speed up ThreadLocalStatics_Test in DEBUG builds (#72151)

Saw this test timeout in https://github.com/dotnet/runtime/pull/72077. This should decrease the amount of work done by the test by 25%. It is the longest test in DynamicGenerics. It was only recently enabled.

```
Running Test: ThreadLocalStatics.TLSTesting.ThreadLocalStatics_Test

cmdLine:D:\a\_work\1\s\artifacts\tests\coreclr\windows.x64.Debug\nativeaot\SmokeTests\DynamicGenerics\DynamicGenerics\DynamicGenerics.cmd Timed Out (timeout in milliseconds: 1800000 from variable __TestTimeout, start: 7/13/2022 7:46:11 AM, end: 7/13/2022 8:16:11 AM)
Test Harness Exitcode is : -100
```

2 years agoUse `-unicode` instead of `/unicode` for linux ildasm roundtrip tests (#71958)
Will Smith [Thu, 14 Jul 2022 01:35:19 +0000 (18:35 -0700)]
Use `-unicode` instead of `/unicode` for linux ildasm roundtrip tests (#71958)

Use `-unicode` instead of `/unicode` for linux ildasm roundtrip tests

2 years agoFix more SafeHandle cleanup in Windows crypto PAL (#72116)
Stephen Toub [Thu, 14 Jul 2022 01:33:30 +0000 (21:33 -0400)]
Fix more SafeHandle cleanup in Windows crypto PAL (#72116)

* Fix more SafeHandle cleanup in Windows crypto PAL

Most of these are actually on the success path.  These were highlighted via the System.Net.WebSockets.Client tests with the new checked SafeHandle finalization flag.

* Apply suggestions from code review

Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
2 years agoFix Tar stream seeking, flushing, and argument validation (#72045)
Stephen Toub [Thu, 14 Jul 2022 00:56:34 +0000 (20:56 -0400)]
Fix Tar stream seeking, flushing, and argument validation (#72045)

2 years agoFix all outstanding S.Linq.Expressions failures (#72077)
Michal Strehovský [Thu, 14 Jul 2022 00:53:58 +0000 (09:53 +0900)]
Fix all outstanding S.Linq.Expressions failures (#72077)

Product fixes:

* Don't try to be helpful in the exception when `MakeGeneric*` constraint validation fails. CoreCLR is not helpful and S.Linq.Expressions is testing for it.
* We need to inject delegate `Invoke` method dependencies elsewhere. A test looking to reflection-invoke the `Invoke` method was failing with `MissingMetadataException` but we have no right to be failing on that per policy.

Test fixes:

* Consider NativeAOT always trimmed. We could potentially do what Mono is doing, but we currently don't support substitution files (only embedded substitutions), and NativeAOT will always be trimmed.
* Mark a test that is fundamentally incompatible (and pointless) with trimming as such.
* Add a bunch of RD.XML.

Fixes #69944. Fixes #69928. Fixes #69943.

2 years agoMix newer kernel versions into library test matrix (#71740)
Dan Moseley [Thu, 14 Jul 2022 00:34:22 +0000 (18:34 -0600)]
Mix newer kernel versions into library test matrix (#71740)

* Mix newer kernel versions into library test matrix
* Update eng/pipelines/libraries/helix-queues-setup.yml

Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
2 years agoUpdate DependencyGraphViewer to allow for DGML reading (#70690)
Isabel Serrato [Thu, 14 Jul 2022 00:03:09 +0000 (17:03 -0700)]
Update DependencyGraphViewer to allow for DGML reading (#70690)

* Implement capability for users to upload .dgml files in addition to ETW events. Allows program to be run without admin permissions if the user has a .dgml file representing the dependencies in their program.

* Update UI to allow users to upload .dgml files from the file browser or the command line

* Update GUI to allow resizing of pages, clean up layout of pages

* Add test cases to ensure that graph is correctly replicated from sample .dgml files

* Restructure graph class to allow multiple edges and update GUI to show all reasons that two nodes are connected on one line

Co-authored-by: Aaron Robinson <arobins@microsoft.com>
2 years agoClean up runtime pack versioning logic (#72073)
Larry Ewing [Wed, 13 Jul 2022 23:53:18 +0000 (18:53 -0500)]
Clean up runtime pack versioning logic (#72073)

2 years agoILASM - Disable `fileversionpreservation` test (#71972)
Will Smith [Wed, 13 Jul 2022 23:32:46 +0000 (16:32 -0700)]
ILASM - Disable `fileversionpreservation` test (#71972)

* Disable fileversionpreservation test

* Using <IlasmRoundTripIncompatible>true</IlasmRoundTripIncompatible> to disable roundtrip test for fileversionpreservation

* Update issues.targets

2 years agoPolyfill the incremental generator ForAttributeWithMetadataName from roslyn (for...
CyrusNajmabadi [Wed, 13 Jul 2022 22:50:21 +0000 (15:50 -0700)]
Polyfill the incremental generator ForAttributeWithMetadataName from roslyn (for LibraryImportGenerator). (#71652)

Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
2 years agoAvoid unnecessary duplication of XxCng instances (#72120)
Stephen Toub [Wed, 13 Jul 2022 22:41:22 +0000 (18:41 -0400)]
Avoid unnecessary duplication of XxCng instances (#72120)

And also leaving some of the originals for finalization.

2 years agoFix handling of non-bidirectional MarshalMode.Default with collection marshalling...
Elinor Fung [Wed, 13 Jul 2022 22:27:58 +0000 (15:27 -0700)]
Fix handling of non-bidirectional MarshalMode.Default with collection marshalling (#72075)

2 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20220712.1 (#72093)
dotnet-maestro[bot] [Wed, 13 Jul 2022 22:12:45 +0000 (17:12 -0500)]
Update dependencies from https://github.com/dotnet/arcade build 20220712.1 (#72093)

Microsoft.DotNet.ApiCompat , 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 7.0.0-beta.22358.3 -> To Version 7.0.0-beta.22362.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoPort perf improvement changes in new API back to runtime. (#72109)
CyrusNajmabadi [Wed, 13 Jul 2022 22:01:05 +0000 (15:01 -0700)]
Port perf improvement changes in new API back to runtime. (#72109)

* Port perf improvement changes in new API back to runtime.

* Use normal type

2 years agoIf the base type is a sequential zero-sized type, treat a derived auto-layout type...
Jeremy Koritzinsky [Wed, 13 Jul 2022 21:29:46 +0000 (14:29 -0700)]
If the base type is a sequential zero-sized type, treat a derived auto-layout type as starting from field offset 0. (#72065)

2 years agoMake 'RC' lowercase in versions.props (#72110)
Carlos Sanchez [Wed, 13 Jul 2022 21:19:11 +0000 (14:19 -0700)]
Make 'RC' lowercase in versions.props (#72110)

2 years agoFix style issue in X509ChainPolicy.Clone and add some tests
Jeremy Barton [Wed, 13 Jul 2022 21:13:09 +0000 (14:13 -0700)]
Fix style issue in X509ChainPolicy.Clone and add some tests

2 years agoAdd support for building WASM variants alongside single-threaded to the build system...
Jo Shields [Wed, 13 Jul 2022 21:08:01 +0000 (17:08 -0400)]
Add support for building WASM variants alongside single-threaded to the build system (#71054)

This change adds 2 additional wasm runtime packs: multithreaded and perftrace.

2 years agoJIT: Ensure object derefs do not remove previous conditions in loop cloning (#72098)
Jakob Botsch Nielsen [Wed, 13 Jul 2022 20:23:22 +0000 (22:23 +0200)]
JIT: Ensure object derefs do not remove previous conditions in loop cloning (#72098)

Adding object dereferences was calling EnsureBlockConditions which would
reallocate all the lists, removing previous array dereferences. This
resulted in missing array null checks in some cases.

Fix #71611

2 years agoFix issue where the code fixer is not preserving the leading and trailing trivia...
Jose Perez Rodriguez [Wed, 13 Jul 2022 20:20:35 +0000 (15:20 -0500)]
Fix issue where the code fixer is not preserving the leading and trailing trivia for the regex generator (#72042)

2 years agoFix typeloader error messages for invalid byref fields (#72102)
Jan Kotas [Wed, 13 Jul 2022 19:42:14 +0000 (12:42 -0700)]
Fix typeloader error messages for invalid byref fields (#72102)

Fixes #72090

Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoJIT: Disqualify delegate calls to instance methods on value classes from GDV explicit...
Jakob Botsch Nielsen [Wed, 13 Jul 2022 19:23:58 +0000 (21:23 +0200)]
JIT: Disqualify delegate calls to instance methods on value classes from GDV explicitly (#72089)

This was relying on the profile data containing the unboxing stub before.
That really only works out for dynamic PGO. Static profiles or textual
PGO data will end up with the exact method and hit a JIT assert passing
a TYP_REF this arg to a TYP_BYREF this param.

2 years ago[main] Update dependencies from dotnet/icu dotnet/emsdk (#72094)
dotnet-maestro[bot] [Wed, 13 Jul 2022 19:11:24 +0000 (14:11 -0500)]
[main] Update dependencies from dotnet/icu dotnet/emsdk (#72094)

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 7.0.0-preview.7.22361.2 -> To Version 7.0.0-rc.1.22362.2

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

Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
 From Version 7.0.0-preview.7.22361.2 -> To Version 7.0.0-rc.1.22362.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years ago[wasm][aot] Make the gc pin area smaller. (#71807)
Zoltan Varga [Wed, 13 Jul 2022 18:40:44 +0000 (14:40 -0400)]
[wasm][aot] Make the gc pin area smaller. (#71807)

2 years ago[main] Update dependencies from dotnet/hotreload-utils (#72014)
dotnet-maestro[bot] [Wed, 13 Jul 2022 18:14:56 +0000 (13:14 -0500)]
[main] Update dependencies from dotnet/hotreload-utils (#72014)

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.1.0-alpha.0.22354.2 -> To Version 1.1.0-alpha.0.22361.1

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.1.0-alpha.0.22354.2 -> To Version 1.1.0-alpha.0.22362.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years ago[QUIC] System.Net.Quic API made public (#72031)
Marie Píchová [Wed, 13 Jul 2022 18:02:52 +0000 (20:02 +0200)]
[QUIC] System.Net.Quic API made public (#72031)

* System.Net.Quic removed from ASP transport package and made part of SDK ref

* Removed manual references to System.Net.Quic.csproj

2 years ago[QUIC] API QuicStream (#71969)
Marie Píchová [Wed, 13 Jul 2022 18:01:56 +0000 (20:01 +0200)]
[QUIC] API QuicStream (#71969)

* Quic stream API surface

* Fixed test compilation

* Fixed http test compilation

* HttpLoopbackConnection Dispose -> DisposeAsync

* QuicStream implementation

* Fixed some tests

* Fixed all QUIC and HTTP tests

* Fixed exception type for stream closed by connection close

* Feedback

* Fixed WebSocket.Client test build

* Feedback, test fixes

* Fixed build on framework and windows

* Fixed winhandler test

* Swap variable based on order in defining class

* Post merge fixes

* Feedback and build

* Reverted connection state to pass around abort error code

* Fixed exception type.

2 years agoSupport top-level statements in regex analyzer (#72046)
Youssef Victor [Wed, 13 Jul 2022 16:49:41 +0000 (18:49 +0200)]
Support top-level statements in regex analyzer (#72046)

* Support top-level statements in regex analyzer

* Apply test suggestion

* Address feedback

2 years agoBackport action: fix link to set org membership visibility (#72005)
Alexander Köplinger [Wed, 13 Jul 2022 13:49:45 +0000 (15:49 +0200)]
Backport action: fix link to set org membership visibility (#72005)

We need to target the GitHub org that owns the repo, otherwise the collaborator check API doesn't work (i.e. check for dotnet instead of the Microsoft org).

2 years agoFix solution files via slngen (#72059)
Pavel Savara [Wed, 13 Jul 2022 13:29:33 +0000 (15:29 +0200)]
Fix solution files via slngen (#72059)

* Remove System.Private.Runtime.InteropServices.JavaScript from solutions

* slngen

2 years ago[wasm] Re-enable `System.Text.RegularExpressions.Tests.csproj` (#72076)
Ankit Jain [Wed, 13 Jul 2022 13:29:20 +0000 (09:29 -0400)]
[wasm] Re-enable `System.Text.RegularExpressions.Tests.csproj` (#72076)

The linker bump in https://github.com/dotnet/linker/pull/2889 should
have fixed the issue.

Closes https://github.com/dotnet/runtime/issues/71848 .

2 years agoMore reliably clean up more SafeHandle instances (#71991)
Stephen Toub [Wed, 13 Jul 2022 11:09:36 +0000 (07:09 -0400)]
More reliably clean up more SafeHandle instances (#71991)

* More reliably clean up more SafeHandle instances

This calls Dispose on SafeHandles (or things wrapping SafeHandles) that were otherwise being left for finalization:
1. Some of these are fixing finalization happening even on success paths (typically where the implementation isn't disposing of something that directly or indirectly wraps a SafeHandle).
2. Some of these are fixing finalization happening for invalid SafeHandles.
3. Some of these are fixing tests to finalize less.  My goal with fixing the tests was to eliminate the noise in order to find instances of the other two cases.

These were found primarily via two means:
- Debug-instrumentation in SafeHandle to log when one is finalized.  This instrumentation is built into debug/checked builds of SafeHandle and requires setting the DEBUG_SAFEHANDLE_FINALIZATION environment variable to "1".
- Auditing use of SafeHandle.IsInvalid

There's a lot more that can be cleaned up using the SafeHandle instrumentation, but I'm pausing here for now.  The System.IO.Pipes, System.IO.FileSystem, and System.Security.Cryptography tests are clean on Windows.

2 years agoFix ConsoleStream.Flush to not throw for stdin (#72035)
Stephen Toub [Wed, 13 Jul 2022 10:07:02 +0000 (06:07 -0400)]
Fix ConsoleStream.Flush to not throw for stdin (#72035)

* Fix ConsoleStream.Flush to not throw for stdin

Stream.Flush{Async} is supposed be a nop on a read-only stream.

* Disable new test on unsupported platforms

2 years agoMark JsonSerializerOptions.TypeInfoResolver as nullable and linker-safe (#72044)
Eirik Tsarpalis [Wed, 13 Jul 2022 10:03:23 +0000 (11:03 +0100)]
Mark JsonSerializerOptions.TypeInfoResolver as nullable and linker-safe (#72044)

* Mark JsonSerializerOptions.TypeInfoResolver as nullable and linker-safe

* Update src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs

* Ensure TypeInfoResolver value is always populated in JsonSerializerOptions.Default

2 years ago[QUIC] API QuicConnection (#71783)
Marie Píchová [Wed, 13 Jul 2022 07:22:00 +0000 (09:22 +0200)]
[QUIC] API QuicConnection (#71783)

* Listener comment; PreviewFeature attribute

* Feedback

* QuicConnection new API including compilable implementation

* Fixed logging

* Fixed S.N.Quic and S.N.Http tests

* Options now correspond to the issue

* Feedback

* Comments, PreviewFeature attribute and RemoteCertificate disposal.

* Preview feature attribute is assembly wide

* Some typos

* Fixed test with certificate

* Default values as constants

* Event handlers split into methods called via switch expression.

* Some more comments

* Unified unsafe usage

* Fixed some more tests

* Cleaned up some exceptions and resource strings.

* Feedback

* Latest greatest API proposal.

* Fixed Http solution

* Feedback

2 years agoBump main version to RC1 (#72068)
Carlos Sanchez [Wed, 13 Jul 2022 06:46:40 +0000 (23:46 -0700)]
Bump main version to RC1 (#72068)

Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
2 years ago[wasm][debugger] Show correct and complete function names on callstack (#72048)
Thays Grazia [Wed, 13 Jul 2022 06:42:52 +0000 (03:42 -0300)]
[wasm][debugger] Show correct and complete function names on callstack (#72048)

* Fixing 71553

* Fixing merge.

* Addressing @radical comments.

* Addressing @radical comments

* Update src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* addressing @radical comments.

* Update src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Remove console.writeline

* Fix compilation error

Co-authored-by: Ankit Jain <radical@gmail.com>
2 years agoILASM - Allow EntryPoint methods to be on interfaces (#71975)
Will Smith [Wed, 13 Jul 2022 05:51:45 +0000 (22:51 -0700)]
ILASM - Allow EntryPoint methods to be on interfaces (#71975)

2 years ago[main] Update dependencies from dotnet/linker (#72063)
dotnet-maestro[bot] [Wed, 13 Jul 2022 04:52:15 +0000 (00:52 -0400)]
[main] Update dependencies from dotnet/linker (#72063)

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22362.1 -> To Version 7.0.100-1.22362.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoProperly report `TypedReference` with `ref` fields. (#72062)
Aaron Robinson [Wed, 13 Jul 2022 04:46:19 +0000 (21:46 -0700)]
Properly report `TypedReference` with `ref` fields. (#72062)

* Update details about ELEMENT_TYPE_TYPEDBYREF

Details in siginfo.cpp were stale.
Add some logging that helped track down the issue.

* Fix byref reporting in crossgen2

Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
2 years agoCentralize calling convention handling (#71999)
Michal Strehovský [Wed, 13 Jul 2022 04:05:48 +0000 (13:05 +0900)]
Centralize calling convention handling (#71999)

The newstyle calling convention handling being exclusive to JitInterface is causing problems in other spots of the AOT compiler where we would need to replicate the rules of when to read custom modifiers, which ones matter, what's their relationship to `MethodSignatureFlags`, and what combinations of the modifiers makes sense.

I'm adding a single `UnmanagedCallingConventions` enum that captures all the calling conventions we support and add means to get to this from p/invoke, `UnmanagedCallersOnly` method and from a calli signature.

2 years ago[RateLimiting] Rename WaitAsync and RateLimitPartition methods (#72054)
Brennan [Wed, 13 Jul 2022 02:43:53 +0000 (19:43 -0700)]
[RateLimiting] Rename WaitAsync and RateLimitPartition methods (#72054)

2 years agoAdd a fabricbot task to add issues to the AppModel project (#71672)
Andy Gocke [Wed, 13 Jul 2022 01:01:44 +0000 (18:01 -0700)]
Add a fabricbot task to add issues to the AppModel project (#71672)

2 years agoAdd predefined cpu names for --instruction-set (e.g. haswell) (#71911)
Egor Bogatov [Wed, 13 Jul 2022 00:52:03 +0000 (02:52 +0200)]
Add predefined cpu names for --instruction-set (e.g. haswell) (#71911)

2 years agoProvide upgrade response details (#71757)
Katya Sokolova [Tue, 12 Jul 2022 23:59:15 +0000 (01:59 +0200)]
Provide upgrade response details (#71757)

* Provide Upgrade response details

* fixing tests

* Address review feedback

* Save HttpStatusCode without CollectHttpResponseDetails

* Remove unnesessary skip on test

* Disable ConnectAsync_Failed on browser since CollectHttpResponseDetails is not supported

* Update src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs

Co-authored-by: Natalia Kondratyeva <knatalia@microsoft.com>
* Address review feedback

* Revert "Save HttpStatusCode without CollectHttpResponseDetails"

This reverts commit 0713bd8e292b6a76b0b9f297d95e466f11feff3b.

* renove using from ref

* Update test

* Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/ClientWebSocket.cs

Co-authored-by: Natalia Kondratyeva <knatalia@microsoft.com>
* fixing Values and Enumerator for HttpResponseHeaders

* fixing Values and Enumerator for HttpResponseHeaders

* Apply suggestions from code review

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
* Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Apply suggestions from code review

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Check CollectHttpResponseDetails setter

* disable CA1822 // Mark members as static

Co-authored-by: Natalia Kondratyeva <knatalia@microsoft.com>
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoPropertyVisibilityTests.cs: Fix invalid change in tests merged earlier (#72043)
Ankit Jain [Tue, 12 Jul 2022 23:36:56 +0000 (19:36 -0400)]
PropertyVisibilityTests.cs: Fix invalid change in tests merged earlier (#72043)

2 years agoAdd the approved span marshallers and remove the v1 model (#71989)
Jeremy Koritzinsky [Tue, 12 Jul 2022 23:35:51 +0000 (16:35 -0700)]
Add the approved span marshallers and remove the v1 model (#71989)

* Add SpanMarshaller and ReadOnlySpanMarshaller. Move the new attribute types to System.Runtime ref assembly

* Remove pinning of the managed type. The new model isn't supposed to support this and it was breaking the span marshallers.

* Delete the V1 marshalling model

You served us well, but your time has passed.

* Remove obsoleted unit tests. Rename type usages in JS generator

* Fix test build

* PR feedback and add doc comments.

* Fix some extraneous usages of the v1 API in tests.

* Remove test of the managed type's GetPinnableReference method. We don't support this with the v2 system.

2 years agoImprove argument validation for Rfc2898DeriveBytes.
Kevin Jones [Tue, 12 Jul 2022 23:16:56 +0000 (19:16 -0400)]
Improve argument validation for Rfc2898DeriveBytes.

2 years agoAdd CertificateChainPolicy to ssl options
Tomas Weinfurt [Tue, 12 Jul 2022 23:02:26 +0000 (01:02 +0200)]
Add CertificateChainPolicy to ssl options

Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
2 years agoPolyfill the incremental generator ForAttributeWithMetadataName from roslyn (for...
CyrusNajmabadi [Tue, 12 Jul 2022 22:52:05 +0000 (15:52 -0700)]
Polyfill the incremental generator ForAttributeWithMetadataName from roslyn (for EventSourceGeneration). (#71662)

* Polyfill the incremental generator ForAttributeWithMetadataName from roslyn (for LibraryImportGenerator).

* Move common code to shared location

* Polyfill the incremental generator ForAttributeWithMetadataName from roslyn (for EventSourcewGenerator).

* Update src/libraries/System.Private.CoreLib/gen/EventSourceGenerator.Parser.cs

* Revert

* Simplify

2 years ago[main] Update dependencies from dotnet/icu dotnet/runtime-assets dotnet/emsdk dotnet...
dotnet-maestro[bot] [Tue, 12 Jul 2022 22:36:28 +0000 (22:36 +0000)]
[main] Update dependencies from dotnet/icu dotnet/runtime-assets dotnet/emsdk dotnet/roslyn-analyzers (#72012)

[main] Update dependencies from dotnet/icu dotnet/runtime-assets dotnet/emsdk dotnet/roslyn-analyzers

2 years ago[API Implementation]: SafeFileHandle overloads for SetCreationTime, SetLastAccessTime...
Robin Lindner [Tue, 12 Jul 2022 21:32:24 +0000 (23:32 +0200)]
[API Implementation]: SafeFileHandle overloads for SetCreationTime, SetLastAccessTime, SetLastWriteTime (#60507)

* Implement proposal

* Undo auto-reformat

* Add ref

* Fix Parameter Naming in FileSystem.Unix.cs

* Partial test implementation

* Fix typo

* Fix parameter naming

* Naming fix and remove unnessecary method

* Add more test cases

* Implement usage of Kernel32 Method GetFileInformationByHandle and struct BY_HANDLE_FILE_INFORMATION

* Fix Test SetLastWriteTimeTicks_SafeFileHandle

* Disable SafeFileHandle specific-tests on other platforms than Windows

* Add Common reference to project file of System.IO.AccessControl

* fix

* Add preprocessor variable check

* Add check for preprocessor var

* Fix CS0649

* Remove preprozessor variable checks

* Fix tab/spaces conflict in Interop.BY_HANDLE_FILE_INFORMATION

* Fix misplaced StructLayoutAttribute

* Fix project file identation

* Remove preprocessor variable checks for GetSetAttributes test

* Use ThrowHelper instead of direct throwing

* Use ThrowHelper instead of direct throwing

* Add null-forgiving operator to fix build-failures

* Fix build failures

* Win32 interop improvements

* Specify FileAccess in File.OpenHandle calls for testing purposes

* Implement GetLastWin32Error proposal / @Jozkee

Co-authored-by: David Cantú <dacantu@microsoft.com>
* Fix build

* Usage of kernel32.dll!SetFileInformationByHandle in FileSystem.SetFileTime

* Usage of access parameter in GetSetTimes tests

* Remove auto-generated trash

* Add localization string to NativeAOT Strings.resx

* Unix Implementation of GetAttributes, SetAttributes, GetCreationTime, GetLastAccessTime and GetLastWriteTime

* Unix Implementation SetLastAccessTime and SetLastWriteTime

* Add error handling to FChMod call

* Revert "Unix Implementation SetLastAccessTime and SetLastWriteTime"

This reverts commit bce7faadb52bf308e6258864d464334448a4bda3.

* Unix Implementation SetLastAccessTime and SetLastWriteTime

* Move SafeHandle implementation to FileStatus.

* `SafeFileHandle` `FileStatus` (#4)

* [RateLimiting] Dequeue items when queuing with NewestFirst (#63377)

* Don't reuse registers in Debug mode (#63698)

Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
* Add IsKnownConstant jit helper and optimize 'str == ""' with str.StartsWith('c') (#63734)

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
* - mono_wasm_new_external_root for roots on stack (#63997)

- temp_malloc helper via linear buffer in js
- small refactorings
Co-authored-by: Katelyn Gadd <kg@luminance.org>
* [Arm64] Don't use D-copies in CopyBlock (#63588)

* Increase the maximum number of internal registers allowd per node in src/coreclr/jit/lsra.h

* Based on discussion in https://github.com/dotnet/runtime/issues/63453 don't allocate a SIMD register pair if the JIT won't be able to use Q-copies in src/coreclr/jit/lsraarmarch.cpp

* Update CodeGen to reflect that Q-copies should be used only when size >= 2 * FP_REGSIZE_BYTES and using of them makes the instruction sequence shorter in src/coreclr/jit/codegenarmarch.cpp

* Update comment - we don't use D-copies after that change in src/coreclr/jit/codegenarmarch.cpp

* Disable hot reload tests for AOT configurations (#64006)

* Bump Explicit-layout value types with no fields to at minimum 1 byte size. (#63975)

* Add runtime-extra-platforms pipeline to have matching runtime PR and Rolling builds (#62564)

* Add runtime-extended-platforms pipeline to have matching runtime PR and Rolling builds

* Fix evaluate changed paths condition for the extra pipeline

* PR Feedback and fix condition

* Move MacCatalyst back to staging, disable tvOS tests

* Disable browser wasm windows legs

* Make ILStubGenerated event log ModuleID corresponding to that on other events (#63974)

* Retries for flaky WMI test (#64008)

* [arm64] JIT: Redundant zero/sign extensions after ldrX/ldrsX (#62630)

* JIT: fix up switch map for out-of-loop predecessor (#64014)

If we have a loop where some of the non-loop predecessors are switchs, and
we add pre-header to the loop, we need to update the switch map for those
predecessors.

Fixes #63982.

* Update StructMarshalling design now that DisableRuntimeMarshallingAttribute is approved (#63765)

Co-authored-by: Elinor Fung <elfung@microsoft.com>
* Fix Crossgen2 bug #61104 and add regression test (#63956)

The issue tracks the runtime regression failure where
Crossgen2-compiled app is unable to locate a type with non-ASCII
characters in its name. The failure was caused by the fact that
Crossgen2 was incorrectly zero-extending the individual UTF8 characters
when calculating the hash whereas runtime is sign-extending them.

Thanks

Tomas

* Fix invalid threading of nodes in rationalization (#64012)

The code in question assumes that the ASG will be
reversed and thus threads "simdTree" before "location"
in the linear order. That dependency, while valid,
because "gtSetEvalOrder" will always reverse ASGs
with locals on the LHS, is unnecessary and incorrect
from the IR validity point of view.

Fix this by using "InsertAfter" instead of manual
node threading.

* Check if the child object is in the heap range before get_region_plan_gen_num (#63828)

* Check if the child object is in the heap range before object_gennum (#63970)

* 'cmeq' and 'fcmeq' Vector64<T>.Zero/Vector128<T>.Zero ARM64 containment optimizations (#62933)

* Initial work

* Added a comma to display

* Cleanup

* Fixing build

* More cleanup

* Update comment

* Update comment

* Added CompareEqual Vector64/128 with Zero tests

* Do not contain op1 for now

* Wrong intrinsic id used

* Removing generated tests

* Removing generated tests

* Added CompareEqual tests

* Supporting containment for first operand

* Fix test build

* Passing correct register

* Check IsVectorZero before not allocing a register

* Update comment

* Fixing test

* Minor format change

* Fixed formatting

* Renamed test

* Adding AdvSimd_Arm64 tests:

* Adding support for rest of 'cmeq' and 'fcmeq' instructions

* Removing github csproj

* Minor test fix

* Fixed tests

* Fix print

* Minor format change

* Fixing test

* Added some emitter tests

* Feedback

* Update emitarm64.cpp

* Feedback

* [Arm64] Keep unrolling InitBlock and CopyBlock up to 128 bytes (#63422)

* Add INITBLK_LCL_UNROLL_LIMIT and CPBLK_LCL_UNROLL_LIMIT of 128 bytes in src/coreclr/jit/targetarm64.h

* Keep unrolling InitBlock up to INITBLK_LCL_UNROLL_LIMIT bytes when dstAddr points to the stack in src/coreclr/jit/lowerarmarch.cpp

* Keep unrolling CopyBlock up to CPBLK_LCL_UNROLL_LIMIT bytes when both srcAddr and dstAddr point to the stack in src/coreclr/jit/lowerarmarch.cpp

* Add ProcessLinkerXmlBase to NativeAOT (#63666)

Add Xml Parsing linker files as a reference source to NativeAOT
Rename NativeAOT ProcessLinkerXmlBase version to ProcessXmlBase (uses XmlReader)
Add ProcessLinkerXmlBase from linker and fix it so it can be used in NativeAOT (uses XPath)

* Fix gc_heap::remove_ro_segment (#63473)

* Fix OpenSSL version check in GetAlpnSupport

The previous check failed 3.0.0 because the Minor was 0 and Build was 0.

It could probably be rewritten to be `>= new Version(1, 0, 2)`, but that'd require more thinking.

* Fix issues with verify_regions, clear_batch_mark_array_bits. (#63798)

Details:
- we cannot verify the tail of the region list from background GC, as it may be updated by threads allocating.
- fix case in clear_batch_mark_array_bits where end is equal to the very end of a segment and we write into uncommitted memory in the mark_array.
-  bgc_clear_batch_mark_array_bits did some checks and then called clear_batch_mark_array_bits which repeated the exact same checks. Renamed clear_batch_mark_array_bits to bgc_batch_mark_array_bits and removed the old copy, removed the declaration for clear_batch_mark_array_bits.

* [debugger][wasm] Added support for non user code attribute (#63876)

* Hidden methods and step through methods behave the same way.

* Perpared flow for setting JustMyCode in the future.

* Tests for JustMyCode setting before debug launch.

* Transformed into dynamic JustMyCode change flow.

* JustMyCode disabled, first 3 cases solved.

* Finished behavior for JMC disabled (with 1 difference).

* JMC enabled: stepIn np bp + stepIn bp + resume bp.

* Functional version (with minor deviations from expected behavior).

* Refactoring.

* All tests for NonUserCode work.

* Fix line number after adding code above.

* Fix error in merge.

* Removing duplicated tests.

* [wasm][debugger] Added support for stepper boundary attribute (#63991)

* Hidden methods and step through methods behave the same way.

* Perpared flow for setting JustMyCode in the future.

* Tests for JustMyCode setting before debug launch.

* Transformed into dynamic JustMyCode change flow.

* JustMyCode disabled, first 3 cases solved.

* Finished behavior for JMC disabled (with 1 difference).

* JMC enabled: stepIn np bp + stepIn bp + resume bp.

* Functional version (with minor deviations from expected behavior).

* Refactoring.

* All tests for NonUserCode work.

* Fix line number after adding code above.

* Stepper boundary with tests.

* Save information about multiple decorators.

* Fix error in merge.

* Polish the PR build doc (#64036)

* [wasm] WebSocket tests on NodeJS (#63441)

- NPM package with WS.
- Restore npm during build.
- Load npm modules in test-main.js.

Co-authored-by: Pavel Savara <pavel.savara@gmail.com>
* Fix dependency in runtime-official.yml (#64040)

After https://github.com/dotnet/runtime/pull/62564 the `hostedOs` value is included in the job name.

* [API Implementation]: System.Diagnostics.CodeAnalysis.StringSyntaxAttribute (#62995)

* Add StringSyntaxAttribute

* Fix attribute declaration and add usage

* Address PR feedback

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Reduce the memory footprint of HttpHeaders (#62981)

* Change HttpHeaders backing store to an array

* Reduce the size of HeaderDescriptor to 1 object

* Update UnitTests, fix GetOrCreateHeaderInfo

* Switch to a dictionary after ArrayThreshold headers

* Add unit tests

* Use storeValueRef naming consistently

* Workaround field layout regression (#63005)

* Mark _descriptor on HeaderDescriptor as nullable

* Remove HeaderDescriptor.Descriptor and add HasValue, IsKnownHeader, Equals

* Simplify HttpHeaderParser.Separator logic

* Add comments on HasValue checks

* Lazily group headers by name

* Add a header ordering+grouping test

* Make use of the _count field

* Revert all HeaderDescriptor changes from PR

* Switch back to always grouping by name

* Assert that the collection is not empty in GetEnumeratorCore

* Optimize AddHeaders for empty collections

* Reference the Roslyn bug issue

* Assert that multiValues are never empty

* Don't preserve a Dictionary across Clear

* Add comment about why a custom HeaderEntry type is used

* Disable DirectoryLongerThanMaxLongPathWithExtendedSyntax_ThrowsException (#64044)

* Add test coverage for frozen objects and GC interaction (#64030)

* Test coverage for frozen objects and GC interaction

* Update Preinitialization.cs

* Remove Type.MakeGenericType dependency from source generation (#64004)

* Remove Type.MakeGenericType dependency from srcgen

* address feedback

* add trimmer warning suppression

* address feedback

* Add ns2.0 support to System.Formats.Cbor (#62872)

* Add ns2.0 support to System.Formats.Cbor

* Add NetFrameworkMinimum to tfms

* Add ReadHalf and WriteHalf to compatibility suppressions

* Remove unwanted comment

* Exception sets: debug checker & fixes (#63539)

* Add a simple exception sets checker

* Add asserts to catch missing nodes

* Fix normal VN printing

* Fix JTRUE VNs

* Fix PHI VNs

* Update VNs for "this" ARGPLACE node

* Tolerate missing VNs on PHI_ARGs

We do not update them after numbering the loops.

(Though perhaps we should)

* Tolerate unreachable blocks

* Fix exception sets for VNF_PtrTo VNFuncs

* Add VNUniqueWithExc

* Add VNPUniqueWithExc

* Fix arrays

* Consistently give location nodes VNForVoid

And always add exception sets for them.
This will simplify the exception set
propagation code for assignments.

* Fix CSE

* Fix GT_RETURN

* Fix LCLHEAP

* Fix GT_ARR_ELEM

* Fix unique HWI

* Fix unique SIMD

* Fix GT_SWITCH

* Fix CKFINITE

* Fix HWI loads

* Fix fgValueNumberAddExceptionSetForIndirection

The method does not need to add the exception set for
the base address. Additionally, the way it did add the
sets, by unioning with normal value numbers, lost all
exceptions not coming from the base address.

This was fine for the unary loads, but broke the HWI loads
that could have exceptions coming from not just the address.

* Fix GT_RETFILT

* Fix INIT_VAL

* Fix DYN_BLK

* Fix FIELD_LIST

* De-pessimize CkFinite

* Add a test for HWIs

* Add a test for LCLHEAP

* Change test to check for store block operators (#60878)

* Update XUnit to 2.4.2-pre.22 (#63948)

* Update to Xunit build 2.4.2-pre.13

Also pick up latest pre-release of analyzers

* Disambiguate calls to Assert.Equals(double,double,int)

Xunit added a new Assert overload that caused a lot of ambiguous calls.
https://github.com/xunit/xunit/issues/2393

Workaround by casting to double.

* Fix new instances of xUnit2000 diagnostic

* Workaround xUnit2002 issue with implicit cast

Works around https://github.com/xunit/xunit/issues/2395

* Disable xUnit2014 diagnostic

This diagnostic forces the use of Assert.ThrowsAsync for any async method,
however in our case we may want to test that a method will throw
synchronously to avoid regressing that behavior by moving to the async
portion of the method.

* Use AssertExtensions to test for null ArgumentException.ParamName

Workaround https://github.com/xunit/xunit/issues/2396

* Update to Xunit 2.4.2-pre.22

* Fix another ArugmentException.ParamName == null assert

* Preserve OBJ/BLK on the RHS of ASG (#63268)

One of my upcoming changes will need this information to
accurately detect type mismatch in "fgValueNumberBlockAssignment".

* Revert "Temporarily disable coredumps during library testing on macOS (#63742)" (#64057)

This reverts commit 2c28e63f9360280011a3b03c1ca6dc0edce1fae4.

Fixes #63761

* Performance: Fix Browser Wasm job not being found for dependent jobs (#64058)

* Figure out the name that browser wasm now uses.

*  linux to the Browser wasm depends on name.

Update the browser wasm dependson name to match the new one found in the pipeline.

* Fix exception propagation over HW exception frame on macOS arm64 (#63596)

* Fix exception propagation over HW exception frame on macOS arm64

There is a problem unwinding over the PAL_DispatchExceptionWrapper
to the actual hardware exception location. The unwinder is unable
to get distinct LR and PC in that frame and sets both of them to
the same value. This is caused by the fact that the
PAL_DispatchExceptionWrapper is just an injected fake frame and
there was no real call. Calls always return with LR and PC set
to the same value.

The fix unifies the hardware exception frame unwinding with Linux
where we had problems unwinding over signal handler trampoline, so
PAL_VirtualUnwind skips the trampoline and now also the
PAL_DispatchExceptionWrapper frame by copying the context of
the exception as the unwound context.

* Reenable DllImportGenerator.Unit.Tests

* Add StringSyntax attribute to Regex.pattern field (#64063)

I missed adding this one in my initial audit.  It'll be exceedingly rare for a developer to manually write code that assigns a string to this protected field, but every source-generated regex does so, and thus any colorization VS provides will benefit looking at the source-generated code.

* Sync shared code from aspnetcore (#64059)

Co-authored-by: JamesNK <JamesNK@users.noreply.github.com>
* Read the System.GC.CpuGroup settings in runtimeconfig.json (#64067)

* Log message of unexpected exception in ThrowsAny (#64064)

* Log message of unexpected exception in ThrowsAny

* Update AssertExtensions.cs

* Enable some browser legs on the extra-platforms pipeline (#64065)

* Enable some browser legs on the extra-platforms pipeline

* Flow platform parameter from helix queues templates

* Fix another condition

* Allow CreateScalarUnsafe to be directly contained by hwintrinsics that support scalar loads (#62407)

* Ensure that floating-point constants can be contained by hardware intrinsics

* Allow CreateScalarUnsafe to be directly contained by hwintrinsics that support scalar loads

* Rename IsContainableHWIntrinsicOp to TryGetContainableHWIntrinsicOp and improve handling

* Ensure that NI_AVX2_BroadcastScalarToVector128/256 are properly tracked as MaybeMemoryLoad

* Applying formatting patch

* Ensure a few other "maybe memory" and special memory operand size cases are handled

* Applying formatting patch

* Remove commented code (#63869)

* Add pmi_path argument to superpmi.py script and use it in the superpmi-collect pipeline. (#63983)

* Add -pmi_path argument to superpmi.py collect command and use it to set PMIPATH environment variable in src/coreclr/scripts/superpmi.py

* Set pmi_path to $(SuperPMIDirectory)\crossgen2

* Print a warning if -pmi_path or -pmi_location is specified while --pmi is not in src/coreclr/scripts/superpmi.py

* Move setting of PMIPATH environment variable under `if self.coreclr_args.pmi is True:` in src/coreclr/scripts/superpmi.py

* Move pmi argument validation to setup_args() in src/coreclr/scripts/superpmi.py

* Clone root_env if we are going to set PMIPATH environment variable in src/coreclr/scripts/superpmi.py

* Update the macOS CoreCLR building documentation. (#63932)

This updates the documentation to refer to the up-to-date location of
requirements and prerequisites.

* Introduce RandomAccess.SetLength (#63992)

* don't Flush readonly MemoryMappedViewAccessor on disposal (#63794)

* don't Flush if it's impossible to write

* address code review feedback: apply same optimization to MemoryMappedViewStream

* Implement System.Runtime.CompilerServices.DisabledRuntimeMarshallingAttribute on CoreCLR-family of runtimes/type systems (#63320)

* Add the DisableRuntimeMarshallingAttribute to the build.

* Add initial test suite

* Implement support in IL stubs for the "disabled runtime marshalling" feature.

* Add testing for inlining IL stubs.

* Block SetLastError and LCID support when DisableRuntimeMarshallingAttribute is applied.

* Bump NativeAOT-only R2R version header (missed previously)

* Implement support in crossgen2 and NativeAOT

* Clean up the test tree and update the tests to fail more reliably when bugs are present.

Fix a bug that was uncovered when the tests were refactored.

* Fix NativeAOT and clean up crossgen2

* Add a test for NoPreserveSig with DisableRuntimeMarshalling

* Assign hr in SUCCEEDED macro.

* PR feedback.

* Block varargs in disabled marshalling mode.

* Fix typo

* Block types that have a field that is auto-layout somewhere in their layout.

* Fix typo

* Revert the AutoLayoutOrHasAutoLayoutFIeld check in the "marshalling enabled" case

* Only set scope when it isn't null (it's null for some cases).

* Fix narrowing conversion failure.

* First pass simple implementation in Mono

* Fix assert to still work for the built-in marshalling system

* S_FALSE is a thing

* Fix type load failures caused by eager type handle loading.

* Get MethodILScope from the calling method when available (this covers all cases where we need it)

* Add const modifier.

* Try 2 to fix const modifiers

* Fix compilation of NativeAOT jitinterface

* Fix type lookup in Mono

* Use try_get model for getting the attribute type in the case of failure. Fix mono implementation for looking up the attribute.

* Handle void and generic instantiations

* Update auto-layout check to check recursively in layout.

* Enhance test suite with more tests for UnmanagedCallersOnly, generics, and the like. Fix AutoLayout test.

* Fix IL and a few typos

* Set a value in the padding for easier debugging.

* Create sig->marshalling_disabled to track when marshalling is disabled, which is separate from the concept of "is this signature a P/Invoke"

* Fix running test suite on Mono + Mini JIT

* Fix recursive type load failure by only checking the "has auto-layout or field with auto-layout" for value types.

* Fix mono windows build.

* Feedback from Michal.

* Fix bug in EcmaAssembly.HasAssemblyCustomAttribute

* Make the runtime flavor check in the wrapper generator case-invariant

* Use helper method since various different platforms/configurations throw different exceptions for these scenarios.

* Fix AutoLayout test refactor and use a dummy value for the padding field in both enabled and disabled scenarios.

* Add an explicit test for using enums as they're a little weird and needed some special-casing.

* Fix build-time test filtering in xunit wrapper generator.

* Fix some x86-specific issues

* Add a nice big comment block.

* Fix x86

* Refactor tests so we can skip one on Mono since Char->char lossy conversion is not supported.

* Disable test in issues.targets until an alternative solution is reached.

* Add another SkipOnMono attribute in the "Enabled" test suite.

* Apply UnmangedFunctionPointerAttribute to help hint to the Mono LLVM AOT compiler to compile the managed->native thunks at aot-time

* Unify on "runtime marshalling" terminology

* Clean up unused usings.

* Address Jan's feedback except for applying the attribute to CoreLib.

* PR feedback.

* Mono throws an InvalidProgramException for varargs

* Fix copy-paste issue.

* Make sure we use the P/Invoke's Module and not the caller's module when deciding if runtime marshalling is enabled for a varargs P/Invoke call.

* Handle how LLVM AOT reports the failure to handle varargs (EEE)

* Make ILLink validation steps in libs incrementally buildable (#64041)

* Make ILLink validation steps in libs incrementally buildable

Both the illink-oob and the illink-sharedframework targets don't define Inputs and Outputs which makes them run during no-op incremental builds. This change defines Inputs and Outputs based on what's used during the target's execution so that if the input assemblies or the illink assembly itself haven't changed, the step will be skipped.

Also renaming properties and items to make them more readable and consistent. As these target files are "extensions" of the src.proj file and aren't shared anywhere, they can be treated like logic inside a project file and hence prefixing properties and items with an underscore "_" isn't necessary.

* Fix broken callstacks in interpreter on MonoVM. (#60338)

* Fix some broken callstacks in interpreter.

* Fix build error.

* Initial WASI support prototype (#63890)

* Add StringSyntaxAttribute.Json (#64081)

* [main] Update dependencies from 5 repositories (#64002)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Přemek Vysoký <premek.vysoky@microsoft.com>
* Fix crash when VS4Mac is debugging VS4Mac arm64 (#64085)

Fix crash when VS4Mac is debugging VS4Mac arm64

Issue: https://github.com/dotnet/runtime/issues/64011

* ILVerify: Handle readonly references in ldfld (#64077)

* ILVerify: Handle readonly references in ldfld

Fixes #63953

* Fix test name

Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
* Avoid additional local created for delegate invocations (#63796)

Very often 'this' is already a local and we can avoid creating another
local.

* [wasm][debugger] Apply changes on wasm using sdb protocol. (#63705)

* Apply changes on wasm using sdb protocol.

* conflict

* Merge conflict.

* Fix merge

* Fix compilation error.

* Fixed IsFloatPositiveZero from returning 'true' on non-constant double operands (#64083)

* Fixed IsFloatPositiveZero from returning 'true' on non-constant double operands

* Update src/coreclr/jit/gentree.h

Co-authored-by: Egor Bogatov <egorbo@gmail.com>
Co-authored-by: Egor Bogatov <egorbo@gmail.com>
* Ensure several helper intrinsics are correctly imported and handled (#63972)

* Ensure several helper intrinsics are correctly imported and handled

* Ensure that Sum for TYP_INT/UINT on Arm64 is correctly handled

* Respond to PR feedback and ensure ExtractMostSignificantBits for Vector64<int/uint> on Arm64 also uses AddPairwise

* Applying formatting patch

* Ensure the clsHnd is correct

* Fix the remaining musl failures

* Ensure that we aren't sign-extending TYP_BYTE (System.SByte) for ExtractMostSignificantBits

* Ensure an assert is correct on x64

* Ensure Vector64<int/uint>.Dot on Arm64 uses AddPairwise, not AddAcross

* Apply formatting patch

* RegexNode cleanup (#64074)

No functional changes, just code cleanup:
- Move node types into a RegexNodeKind enum
- Rename some of the kinds to make them more descriptive
- Rename node.Next to node.Parent to better describe its purpose
- Add a bunch of comments about node kinds

* Refactor optimizing morph for commutative operations (#63251)

* Create "fgOptimizeCommutativeArithmetic"

And just move code from "fgMorphSmpOp" to it.

Just one diff: better comma throw propagation in an ILGEN method.

* Refactor the function

Split it into specialized variants for each operator,
delete redundant code, fix up one case of wrong typing
for a constant in the MUL -> SHIFT optimization.

One CSE diff due to different VNs because of the typing
change for the constant (int -> long).

Many text diffs: "mov x3, 5" => "mov w3, 5".

* Do not set GTF_NO_CSE for sources of block copies (#63462)

It is not necessary, the compiler fully supports locals
on the RHS of a struct assignment. Not marking these results
in a CQ improvement, from struct (including SIMD) CSEs and
global constant propagation into promoted fields.

* Handle embedded assignments in copy propagation (#63447)

* Clean things up a little

Delete redundant conditions, use "LclVarDsc*", rename locals for clarity.

* Delete a redundant condition

For actual def nodes, GTF_VAR_CAST will never be set, it is
only set in "optNarrowTree" for uses.

For "def nodes" that are actually uses (parameters), the VNs
will never match anyway.

* Handle embedded assignments in copy propagation

Previously, as the comments in copy propagation tell us, it
did not handle "intervening", or not-top-level definitions of
locals, instead opting to maintain a dedicated kill set of them.

This is obviously a CQ problem, but also a TP one, as it meant
there had to be a second pass over the statement's IR, where
the definitions would be pushed on the stack.

This change does away with that, instead pushing new definitions
as they are encountered in execution order, and simultaneously
propagating on uses. Notably, this means the code now needs to
look at the real definition nodes, i. e. ASGs, not the LHS locals,
as those are encountered first in canonical execution order, i. e.
for a tree like:

```
  ASG
    LCL_VAR V00 "def"
    ADD
      LCL_VAR V00
      LCL_VAR V00
```

Were we to use the "def" as the definition point, we would wrongly
push it as the definition on the stack, even as the assignments
itself hasn't happened yet at that point.

There are nice diffs with this change, all resulting from unblocked
propagations, and mostly coming from setup arguments under calls.

* Simplify optIsSsaLocal

* Update format script permissions so it can be called on Unix systems directly. (#64107)

* Revert "Enable System.Text.Json tests on netfx (#63803)" (#64108)

This reverts commit 34794bc5f2bcdbaa9057bb07b8764e2bb6a411a2.

* Make ApiCompat.proj incrementally buildable (#64037)

* Make ApiCompat.proj incrementally buildable

In https://github.com/dotnet/runtime/pull/64000, I noticed that ApiCompat.proj never builds incrementally. Even though the RunApiCompat target has Inputs and Outputs, those aren't defined too late inside the target to have any effect. Moving them out and declare the generated response file as an output.

Also simplifying some msbuild logic and renaming some properties as underscore prefixes in project files don't make sense if the property isn't reserved in any way.

* Update ApiCompat.proj

* Remove enable drawing on unix switch (#64084)

* Remove enable drawing on unix switch

* Update some tests and not run tests that need Drawing on non Windows

* PR Feedback, just turn off the switch

* Address-expose locals under complex local addresses in block morphing (#63100)

* Handle complex local addresses in block morphing

In block morphing, "addrSpill" is used when the destination or source
represent indirections of "complex" addresses. Unfortunately, some trees
in the form of "IND(ADDR(LCL))" fall into this category.

If such an "ADDR(LCL)" is used as an "addrSpill", the underlying local
*must* be marked as address-exposed. Block morphing was using a very
simplistic test for when that needs to happen, essentially only recognizing
"ADDR(LCL_VAR/FLD)". But it is possible to have a more complicated pattern
as "PrepareDst/Src" uses "IsLocalAddrExpr" to recognize indirect stores
to locals.

Currently it appears impossible to get a mismatch here as morph transforms
"IND(ADD(ADDR(LCL_VAR), OFFSET))" into "LCL_FLD" (including for TYP_STRUCT
indirections), but this is a very fragile invariant. Transforming TYP_STRUCT
GT_FIELDs into GT_OBJs instead of GT_INDs breaks it, for example.

Fix this by address-exposing the local obtained via "IsLocalAddrExpr".

* Add a TODO-CQ for LCL_FLD usage

* [Group 2] Enable nullable annotations for `Microsoft.Extensions.DependencyInjection` (#63836)

* Annotate src

* Update ResolverBuilder.Build

* Update RunOnEmptyStackCore

* ILEmitResolverBuilderContext constructor

* Remove setter

* Add assert

* Enable nullable annotations for Microsoft.Extensions.Configuration.UserSecrets (#63700)

* [mono] Cleanup trailing whitespace. (#64112)

* Delete `GT_DYN_BLK` (#63026)

* Import GT_STORE_DYN_BLK directly

* Delete GT_DYN_BLK

* DynBlk -> StoreDynBlk

* Add some tests

* Mark tests Pri-1

* Rebase and fix build

* Bring back the odd early return

* Ignore conversion exceptions during dictionary construction (#63792)

* Extract SuperPMI into a separate component (#64035)

Allows building the runtime without SPMI.

`build.cmd clr` will still build SPMI.
`build.cmd clr.native` will still build SPMI.
`build.cmd clr.runtime` will no longer build SPMI.

This is mostly motivated by NativeAOT subset builds where SPMI contributes to 10% of the native build time (nativeaot CorecLR subset builds pretty quickly compared to full CoreCLR).

* Add COMWrappers to crossgen (#63969)

* pipelines: Add wasm jobs (#64109)

* Fixing update issue with multivalued properties #34267 (#56696)

* Add custom attribute test

* Adding test demonstrating issue #34267

* Solution for issue #34267

Replacing all values in property with the new collection, instead of just
appending new values, leaving old values in place.

* Incorporate review feedback

Changing the variable name

* Relax assert in ApplyEditAndContinue (#64132)

Fixes #64070

* Disable NJulianRuleTest test crashing in CI (#64142)

* Updating unit tests for DirectoryServices.AccountManagement (#56670)

Removing old, redundant unit tests that were actually never executed

Migrating old tests to new test infrastructure with configurable LDAP/AD
connections

* Fix MultiByteToWideChar call in pal (#64146)

* Extra tests for assembly name parser. (#64022)

* Dead code in native assembly name parsing

* disallow `\u` escaping in assembly names

* misc cleanup

* forward slash is illegal escaped or not

* ignore "language" attribute in assembly name ("culture" must be used)

* duplicate attributes are ok if unrecognized (just add tests)

* drop support for "custom" blob attribute

* drop support for publickey[token]=neutral ("null" must be used)

* ignore unknown assembly name attributes in mono (compat)

* disallow \0 anywhere in the assembly name

* disallow \0 in assembly names on mono (compat)

* only check for embedded nulls when parsing

* fix mono build

* make GCC happy

* couple test scenarios for publickey vs. publickeytoken (CoreRT parser might trip on these)

* produce errors on duplicate known attributes in mono

* Dispose LdapConnections used by ValidateCredentials (#62036)

Ensure that cached LdapConnection instances created by
PrincipalContext.ValidateCredentials are disposed when
the corresponding PrincipalContext is disposed.

Fix #62035

* Add runtime support for `ref` fields (#63985)

* Add mono and coreclr runtime support for ref fields

* Update Reflection.Emit tests to validate ref fields.

Add test for TypedReference as a ref field.

* Spmi replay asmdiffs mac os arm64 (#64119)

* Split unix-arm64 into linux-arm64 and osx-arm64 in src/coreclr/scripts/superpmi-replay.proj

* Split unix-arm64 into linux-arm64 and osx-arm64 in src/coreclr/scripts/superpmi-asmdiffs.proj

* Add all subdirectories of $(SuperPMIDirectory) as PMIPATH in src/coreclr/scripts/superpmi-collect.proj

* Update NativeAOT codegen and Crossgen2 for CreateSpan (#63977)

- Make sure FieldRVA pointers remain aligned as required by the code generator
  - Use the same Packing Size approach as the IL Linker will use (See jbevain/cecil#817 for details)
  - Compilers that generate CreateSpan will need to follow that trick to be compatible with rewriters.
- Provide ECMA spec augment describing packing size detail

* Add alignment to mapped field stream (#63305)

* Align MappeFieldDataStream at 8 byte boundary

* Add test to verify that the mapped field rva data blob is aligned to ManagedPEBuilder.MappedFieldDataAlignment

* Only align when the mapped field data is of size not equal to 0

* Implement hash and HMAC stream one shots

This implements hashing and HMAC statics for streams. Additionally,
"LiteHmac" and "LiteHash" were introduced. The existing HMAC and hash
provider functionality do some bookkeeping we don't need for resetting.
Since we do not need to use these hash handles after the digest has
been finalized, resetting is unnecessary work. For HMAC, that also means
keeping a copy of the key around for some implementations which we don't
need to do.

The LiteHash and LiteHmac types are implemented as structs with a common
interface. To avoid boxing, generics are used and constrained to the interface
where possible.

The Browser implementation just defers to the existing HashDispenser rather
than do anything novel.

The HashProviderCng is somewhat specialized in its ability to reset. It did
up-front check to determine if the platform supported reusable hash providers,
and further had a single implementation for HMAC and Digests. The current
Lite hash design requires that they remain separate types.

* Title and message resources should be enforced to exist to prevent printing empty messages (#64151)

Sync ILLink.Shared folder with the latest version in dotnet/linker main branch

List of changes include:
- Enforce title and message resources to exist to prevent printing empty messages
- All diagnostics produced by linker now have a DiagnosticId, a title and a message
- Schema for xml link attributes file

- Added a readme file to the ILLink.Shared project to keep track of the commit is being used from dotnet/linker

* Allow generating Dwarf version 5 (#63988)

Contributes to https://github.com/dotnet/runtimelab/issues/1738.

* Re-enable failing long path test (#64113)

* Port MD4 managed implementation from mono/mono (#62074)

Porting MD4 managed implementation from mono/mono (MD4.cs and MD4Managed.cs).

It adds:
- an internal class in the System.Net.Security with a single HashData method for now;
- a set of related MD 4 unit tests to System.Net.Security.Unit.Tests project.

* Fix one source of perf regression in GCHeap::Alloc. This impacts the System.Collections.CtorFromCollectionNonGeneric<Int32> family of benchmarks. (#64091)

These benchmarks manage to make GCHeap::Alloc into a hotspot, so the call to IsHeapPointer() at the end matters for performance.

* Add blsr (#63545)

* Fix FileSystemAclExtensions.Create when passing a null FileSecurity (#61297)

* Make FileSecurity parameter nullable.

* Add missing ArgumentException message for FileMode.Append.

* Refactor tests to ensure FileSecurity is tested with all FileMode and FileSystemRights combinations. Separate special cases.

* Remove exception that throws when FileSecurity is null.
Ensure we have logic that can create a FileHandle when FileSecurity is null.
Fix bug where FileShare.Inheritable causes IOException because it is being unexpectedly passed to the P/Invoke (it should just be saved in the SECURITY_ATTRIBUTES struct).
Add documentation to mention this parameter as optional.
Ensure all exceptions match exactly what we have in .NET Framework, with simpler logic.

* Address suggestions

Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
* Tune FP CSEs live across a call better (#63903)

The problem was that the comparison of a weighted refcount,
which usually has the order of hundreds or tens, with a small
digit like "4" was too weak and missed some cases where we
were still trying to CSE cheaps floats across calls and ending
up with lots of stack shuffling.

Fix this by using different tuning parameters, namely the costs
estimated for the uses and defs (increase them to account for
the spills and reloads).

* [main] Update dependencies from dotnet/arcade dotnet/icu dotnet/xharness dotnet/emsdk (#64098)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Update zip extraction to never throw any exceptions when the LastWriteTime update fails (#63912)

* Use kebab-case in FB automation labels (#64048)

* Onboard new Triage & PR Boards (#64198)

* Exclusively use GitHub teams for Libraries area mentions (#64199)

* Reduce buffer size used in XmlReader when using Async mode (#63459)

The current choice of AsyncBufferSize resulted in the character buffer in the XmlTextReader being allocated on the Large Object Heap (LOH)

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

* Ignoring leading dot when comparing cookie domains (#64038)

* ignoring leading dot when comparin cookie domain

* Simplify cookie comparing logic to equality and moving it to CookieComparer to fix the build

* Domain comparing optimizarion and more unit tests

* small check optimization

* Renaming method

* Add missing handle function enter/return macros (#64061)

The mono_field_static_get_value method uses a handle, but did not set up
enter/exit macros properly, so this handle was leaked.

Some code in Unity calls this embedding API method pretty often, which
can lead to the mark stack overflowing in the GC code.

* Drop support for .NET 5 SDK (#64186)

We had to duplicate a lot of Microsoft.NET.ILLink.targets logic.

* Implement IEquatable<T> on value types overriding Equals (and enable CA1066/1077) (#63690)

* [mono] Temporarily disable two tests that fail on arm64 LLVM FullAOT. (#64180)

* Delete stale reference in System.Drawing.Primitives (#64202)

* Respond to feedback in GenerateMultiTargetRoslynComponentTargetsFile (#63943)

* Respond to feedback in GenerateMultiTargetRoslynComponentTargetsFile

Two small follow up changes from #58446

- Fix a type-o that breaks incremental build. Forgot to use MSBuild property syntax
- Instead of having the infrastructure hard-code removing 'Abstractions', packages can set their own Disable source gen property name.

* PR feedback

* Use the static HashData(Stream) method in more places

* Add executable bit to tizen sh files (#64216)

* Bump Intellisensense package version to latest from `dotnet7-transport` (#63352)

* Ensure that we aren't accidentally generating instructions for unsupported ISAs (#64140)

* Assert that the ISA of the set intrinsic ID is supported

* Ensure gtNewSimdCmpOpAllNode and gtNewSimdCmpOpAnyNode don't generate AVX2 instructions when not supported

* Ensure codegen for Vector128.Dot when SSSE3 is disabled is correct

* Update src/coreclr/jit/hwintrinsiccodegenarm64.cpp

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Ensure Vector256.Sum has a check for AVX2

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Don't reference .NETFramework shims in libraries product or test composition (#64193)

* Don't reference .NETFramework shims

Stop referencing .NETFramework shims in libraries ref or source projects as those are supplementary and shouldn't impact the product composition.

* [Android][libs] Enable Internal.Console.Write in System.Private.CoreLib (#63949)

* [Android][libs] Enable Internal.Console.Write in System.Private.CoreLib

* [docs] Add debugging System.Private.CoreLib Internal.Console.Write

* Elaborate on debugging corelib log

* Address feedback

* Install v8 and Prebuild wasm (#64100)

* Port Mono to Raspberry Pi, ship as new linux-armv6 RID (#62594)

* Initial ARMv6 arch addition. Builds mono runtime, not CoreCLR (Mono already supports the CPU arch subset used by Raspberry Pi, whilst porting CoreCLR to e.g. VFPv2 would be major work)
* Build small clr subset on ARMv6, it's needed for SDK and we want to check it works

* Fix remote unwind (#64220)

The _OOP_find_proc_info was setting only a couple of members of the
unw_dyn_info_t instance on stack. So the remaining ones had random
values. The load_offset was a recently added member to the struct.
When we have updated libunwind, this change came in. The load_offset was
random and that has broken unwindign as this offset is subtracted from
the IP when looking up unwind info.

The fix clears the whole struct. I have verified that the issue we had no
longer happens with the fix.

* Put back FindCaseSensitivePrefix regex alternation support (#64204)

* Put back FindCaseSensitivePrefix alternation support

* Fix the bug from the initial version, and add more comments

* Update tests to expect RemoteExecutor to check exit code (#64133)

* update generation_allocation_size correctly for SIP regions (#64176)

SIP regions need to update the corresponding generation's generation_allocation_size and since this can be more than 1 gen older than the region's gen, we need to make all generation's alloc size get updated.

* Android remove backward timezones (#64028)

Fixes #63693

It was discovered that Android produces duplicate TimeZone DisplayNames among all timezone IDs in GetSystemTimeZones. These duplicate DisplayNames occur across TimeZone IDs that are aliases, where all except one are backward timezone IDs.

If a name is changed, put its old spelling in the 'backward' file

From the Android TimeZone data file tzdata, it isn't obvious which TimeZone IDs are backward (I find it strange that they're included in the first place), however we discovered that on some versions of Android, there is an adjacent file tzlookup.xml that can aid us in determining which TimeZone IDs are "current" (not backward).

This PR aims to utilize tzlookup.xml when it exists and post-filter's the Populated TimeZone IDs in the AndroidTzData instance by removing IDs and their associated information (byteoffset and length) from the AndroidTzData instance if it is not found in tzlookup.xml. This is using the assumption that all non-backward TimeZone IDs make it to the tzlookup.xml file.

This PR also adds a new TimeZoneInfo Test to check whether or not there are duplicate DisplayNames in GetSystemTimeZones

* Update main branding to preview2 (#64219)

* Catch UnicodeEncodeErrors (#64251)

* Make XmlSerializer.Generator targets incremental (#64191)

* Make XmlSerializer.Generator targets incremental

Adding inputs and outputs to make XmlSerializer.Generator incremental

* Make sure that shared memory object name meets the length requirements (#64099)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Fix PAL_wprintf for wide characters (#64181)

* [main] Update dependencies from dotnet/runtime dotnet/llvm-project (#64205)

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

Microsoft.NETCore.ILAsm , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.App.Runtime.win-x64 , System.Runtime.CompilerServices.Unsafe , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Text.Json
 From Version 7.0.0-alpha.1.22066.4 -> To Version 7.0.0-alpha.1.22073.5

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

runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.11.0-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 1.0.0-alpha.1.22070.1 -> To Version 1.0.0-alpha.1.22073.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Delete unused ApiCompat baseline files (#64190)

* Delete unused ApiCompat baseline files

* Delete ApiCompatBaseline.netfx.netstandardOnly.txt

* Remove manual .NETFramework baseline validation

* Delete ApiCompatBaseline.netcoreapp.netfx461.ignore.txt

* Delete ApiCompatBaseline.netcoreapp.netfx461.txt

* Improve Regex handling of anchors (#64177)

* Improve Regex handling of anchors

- Extend search for leading anchor to support alternations.  This means that an expression like `^abc|^def` will now observe the leading `^` whereas previously it didn't.
- Add a FindFirstChar optimization that jumps to the right position for a pattern that matches a computeable max length and ends with an end anchor.

* Address PR feedback

* Add the exception set for `ObjGetType` (#64106)

* Model NRE for ObjGetType

* Add tests

* [ILVerify] Fix casting check for arrays of generic parameters with class constraints (#64259)

Fixes #63999

* Use lower call count threshold for tiering in debug builds (#60945)

* Use lower call count threshold for tiering in debug builds

To exercise more paths during tests, see https://github.com/dotnet/runtime/pull/60886

* Skip tests using AsyncIO in FileSystemAclExtensionsTests where it's not supported (#64212)

The mono runtime does not yet support AsyncIO on Windows and there were some tests failing on CI because of it.
Fixes #64221

* Correct JsonNode.Root doc (#64238)

* Take ARMv6 out of PlatformGroup All (#64267)

* Take ARMv6 out of PlatformGroup All, CoreCLR assumes this means full support

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
* Only send to Helix for rolling build, due to small Helix queue (#64274)

* Add ref field runtime feature indication (#64167)

* Add ref field runtime feature indication

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Faster IndexOf for substrings (#63285)

* Improve "lastChar == firstChar" case, also, use IndexOf directly if value.Length == 1

* Try plain IndexOf first, to optimize cases where even first char of value is never met

* add 1-byte implementation

* copyrights

* fix copy-paste mistake

* Initial LastIndexOf impl

* More efficient LastIndexOf

* fix bug in Char version (we need two clear two lowest bits in the mask) & temporarily remove AdvSimd impl

* use ResetLowestSetBit

* Fix bug

* Add two-byte LastIndexOf

* Fix build

* Minor optimizations

* optimize cases with two-byte/two-char values

* Remove gotos, fix build

* fix bug in LastIndexOf

* Make sure String.LastIndexOf is optimized

* Use xplat simd helpers - implicit ARM support

* fix arm

* Delete \

* Use Vector128.IsHardwareAccelerated

* Fix build

* Use IsAllZero

* Address feedback

* Address feedback

* micro-optimization, do-while is better here since mask is guaranteed to be non-zero

* Address feedabc

* Use clever trick I borrowed from IndexOfAny for trailing elements

* give up on +1 bump for SequenceCompare

* Clean up

* Clean up

* fix build

* Add debug asserts

* Clean up: give up on the unrolled trick - too little value from code bloat

* Add a test

* Fix build

* Add byte-specific test

* Fix build

* Update IndexOfSequence.byte.cs

* [main] Update dependencies from dotnet/arcade dotnet/xharness dotnet/icu dotnet/hotreload-utils dotnet/llvm-project (#64265)

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

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

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22071.1 -> To Version 1.0.0-prerelease.22074.1

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 7.0.0-preview.2.22071.2 -> To Version 7.0.0-preview.2.22074.5

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.2-alpha.0.22069.1 -> To Version 1.0.2-alpha.0.22074.1

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

runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
 From Version 11.1.0-alpha.1.22067.2 -> To Version 11.1.0-alpha.1.22074.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Add CancellationToken to TextReader.ReadXAsync (#61898)

Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Restrict parallelism in LLVM FullAOT compile, to prevent OOM (#63800)

* Restrict parallelism in FullAOT compile, to prevent OOM

* Reduce parallelism further, due to more OOM

* Moved AssemblyName helpers to managed (#62866)

* Moved ComputePublicKeyToken to managed

* Managed assembly name parsing (adapted from nativeaot)

* Fix for HostActivation failures.

* PR feedback (RuntimeAssemblyName is back to CoreRT + other comments)

* remove AssemblyNameNative::Init form the .hpp

* remove AppX compat ifdef

* renamed instance fields to convention used in C#

* `Argument_InvalidAssemblyName`   should be   `InvalidAssemblyName`. Majority of use is `FileLoadException`.

* remove `this.`

* PR feedback (assign to fileds, bypass properties)

* missed this change in the rebase

* "low-hanging fruit" perf tweaks.

* move one-user helpers to where they are used.

* removed ActiveIssue for #45032

* remove AssemblyNameHelpers.cs form corelib

* Remove the List when detecting duplicates. Support PublicKey.

* whitespace

* Fix managed implementation to match the new tests.

* Some minor cleanup.

* Do not validate culture too early

* PR feedback

* use SR.InvalidAssemblyName

* Report the input string when throwing FileLoadException

* tweaked couple comments

* Disable RegexReductionTests tests on browser

* Fix formatting of resource string where excess arguments are passed (#63824)

* Fix formatting of resource string where excess arguments are passed. #63607

* Fix BuildCharExceptionArgs and ECCurve.Validate

* Fix CA2208

* Fix CA2208. Remove paramName becaus it is in error message

* Code review fixes

* Code review fixes

* Add Regex.Count string overloads (#64289)

* Clarify purpose of PDB Document hashing (#64306)

Fixes #63505

* Fix arm64/PInvoke so that NESTED_ENTRY/NESTED_END labels match. (#64296)

This was exposed by building on arm64 with gcc-12,
wherein the assembler complained about not being able
to evaluate the constant expression for .size for the symbol
on NESTED_END.  Since the symbol on NESTED_END is not
referenced anywhere else in the code base,
I concluded that it was wrong, and NESTED_ENTRY was right.

I have not tested this on anything but arm64 + gcc-12

* When decommitting, leaving one instead of two pages in regions case. (#64243)

* Ensure that canceled Task.Delays invoke continuations asynchronously from Cancel (#64217)

* Add gen folder moving gen projects from src folder (#64231)

* Fix minor typos in GC documentation. (#64298)

* Explicitly specify four subdirectories to use as part of the paths for -pmi_path arguments and expand the paths on a remote machine in src/coreclr/scripts/superpmi-collect.proj (#64308)

* Disable RegexReductionTests on browser (#64312)

* Add UnreachableException (#63922)

* [mono] Recognize new names for Xamarin.iOS etc assemblies (#64278)

They are being renamed in https://github.com/xamarin/xamarin-macios/pull/13847

* Remove usage of codecvt from corerun (#64157)

* Remove usage of codecvt from corerun

* Update src/coreclr/hosts/corerun/corerun.cpp

Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
* Refactor FileStatus.Unix. (#62721)

* Refactor FileStatus.Unix.

- Moves InitiallyDirectory out of FileStatus into FileSystemInfo.
In FileSystemInfo it can be a readonly field making its usage clearer.
And FileStatus can then directly be used to implement some FileSystem methods
without allocating an intermediate FileInfo/DirectoryInfo.

- Treat not exists/exist as initialized states to avoid wrongly assuming
initialized means the file cache is valid, which isn't so when the file does
not exist.

- Use 0 for tracking uninitialized to make default(FileStatus) uninitialized.

* Fix unique VNs for `ADDR`s (#64230)

* Add the test

* Fix unique VNs for ADDRs

They need to keep the exception sets.

* Implemented hierarchy of attributes. (#64201)

* Implemented hierarchy of attributes.

* Shortened.

* Fixed overlooked test naming and simplified.

* Partial refactor.

* Update the managed type system to more gracefully fail when calling a varargs method. (#64286)

* Update the managed type system to more gracefully fail when calling a varargs method.

* Use ThrowHelper instead of manually throwing the exception.

* Update src/coreclr/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* [mono] Add some missing Internal.Runtime.CompilerServices.Unsafe intrinsics. (#64314)

* Remove usage of FEATURE_CORESYSTEM (#63850)

* Remove usage of FEATURE_CORESYSTEM from coreclr.

* [main] Update dependencies from dotnet/arcade dotnet/runtime-assets (#64331)

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

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

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

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.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 7.0.0-beta.22060.1 -> To Version 7.0.0-beta.22075.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Fixes bad log method generation in certain cases. (#64311)

In certain cases when developer by mistake places ILogger, Exception, or LogLevel in the message template,  the code generator will produce the expected warning and makes sure the code will indeed compile and run correctly.

Prior to this fix, the code generator would fail to compile with when either of ILogger, Exception or LogLevel were placed in message template incorrectly.

Fixes #64310

* Fix IsMutuallyAuthenticated on Linux and OSX (#63945)

* WIP - prepared a failing test

* Fix IsMutuallyAuthenticated on Linux

* Fix failing unit tests

* Minor cleanup

* Port changes to OSX

* Fix comment

* Invoke cert selection inline, don't allocate new credentials on Linux/OSX

* Fix tests on OSX

* Code review feedback

* Move tests to separate file

* Fix build

* Fix Failing tests

* Support {Last}IndexOfAny with sets after {lazy} loops (#64254)

When emitting backtracking loops, the loop consumes as much and then backtracks through the consumed input.  Rather than doing this one character by one character, we previously added use of LastIndexOf to search for the next place the literal after the loop matches.  We can also augment that to use IndexOfAny to search for a small set that comes after a loop instead of a literal.

Similarly when emitting backtracking lazy loops, rather than consuming one character and trying the rest of the expression and then consuming another character and trying the rest of the expression, we previously added an optimization to use IndexOf{Any} to find the next possible location of a match based on the literal that comes after the lazy loop.  And we can similarly augment that to support a small set after the lazy loop.

This is particularly helpful for IgnoreCase, as we're on a path to replacing literals with sets that contain all equivalent casings of that character.

* Fix race conditions in SystemEvents shutdown logic (#62773)

* Fix race conditions in SystemEvents shutdown logic

When the application is terminated through Restart Manager the event broadcasting window will get the `WM_CLOSE` message. The message gets handled by passing it to `DefWndProc` which calls `DestroyWindow` on the window itself thus making the window handle invalid. The `Shutdown` method expects the window handle to be valid to post `WM_QUIT` message to terminate the thread running the message loop but that's no longer possible under these conditions.

Additionally there's second race condition with the `s_eventThreadTerminated` event that is created during shutdown and set conditionally. A race condition between the threads could cause it to be created when the window message thread is already shutting down and thus it would never be set. Waiting for it in the `Shutdown` method would be cause a deadlock. This thread is also completely unnecessary since a `Join` is performed on the thread itself.

The fix has several changes that act together:
- `s_eventThreadTerminated` event is removed completely in favor of only relying on `Thread.Join`
- `WM_DESTROY` message is detected (which happens as a result of WM_CLOSE calling `DefWndProc` which in turn calls `DestroyWindow`) and handled by shutting down the message loop thread
- The message loop itself is rewritten to use standard `GetMessageW` loop. The reasoning on why it was not used seems not to be valid anymore since AppDomain shutdowns are performed differently

* Add unit test.

* Add braces

* Add marshaller for TypeLoad failure cases (#64317)

This is marshaller used when there incorrect configuration of marshaller applied to fields mostly

* Add additional loop table asserts (#64126)

1. Assert that top-level loops are basic block disjoint
2. Assert LPFLG_ITER related flags are legal

In addition:
1. Create a `optClearLoopIterInfo` phase to clear various bits in the loop
table that are known to no longer be valid, to prevent bad asserts or JitDump
output on their values.
2. Move the EndPhase call in Phase::PostPhase happens early, not late.
This causes any subsequent asserts due to post-phase checking to be
marked with the correct phase, in cases where there was a nested phase
executed (such as liveness re-computation).
3. Convert PHASE_INSERT_GC_POLLS to use EndPhase checking
4. Convert fgDetermineFirstCodeBlock to return a PhaseStatus
5. Some minor cleanup in optUpdateLoopsBeforeRemoveBlock()
(this was extracted from some bigger changes)

* Moved AssemblyName helpers to managed (part 2) (#63915)

* implement GetAssemblyName via dynamic call to MetadataReader

* A few more file-locking tests.

* fix #28153

* no need for version when getting MetadataReader

* rename the argument to match AssemblyName

* perf tweaks

* use memory-mapped file to read metadata

* adjust tests for the new implementation

* use "bufferSize: 1" when stream is going to be mapped.

* null-conditional operator.

* do Dispose before re-throwing

* get rid of the platform-specific/native stuff

* remove assemblyname.hpp

* remove `VerifyIsAssembly()`

* PR feedback

* put back gStdMngIEnumerableFuncs and the others

* Fix several bugs in NullabilityInfoContext. (#64143)

* Fix several bugs in NullabilityInfoContext.

* Reverse ASG(CLS_VAR, ...) (#63957)

This helps with register allocation. Consider:
```
***** BB01
STMT00001 ( 0x000[E-] ... ??? )
N003 ( 18, 10) [000003] -ACXG-------              *  ASG       ref    $c0
N001 (  3,  4) [000002] ----G--N----              +--*  CLS_VAR   ref    Hnd=0x8fec230 Fseq[hackishFieldName]
N002 ( 14,  5) [000000] --CXG-------              \--*  CALL      ref    CscBench.GetMscorlibPathCore $c0
```
The rationalizer will rewrite it to what is effectively:
```
***** BB01
STMT00001 ( 0x000[E-] ... ??? )
N004 ( 18, 12) [000003] -ACXG---R---              *  ASG       ref
N003 (  3,  6) [000002] n---G--N----              +--*  IND       ref
N002 (  1,  4) [000006] H-----------              |  \--*  CLS_VAR_ADDR byref  Hnd=0x8fec230
N001 ( 14,  5) [000000] --CXG-------              \--*  CALL      ref    CscBench.GetMscorlibPathCore
```
And the final LIR will look like:
```
               [000006] ------------                 IL_OFFSET void   INLRT @ 0x000[E-]
N001 (  3,  4) [000002] ----G--N----         t2 =    CLS_VAR_ADDR byref  Hnd=0x8fec230
N002 ( 14,  5) [000000] --CXG-------         t0 =    CALL      ref    CscBench.GetMscorlibPathCore $c0
                                                  /--*  t2     byref
                                                  +--*  t0     ref
N003 ( 18, 10) [000003] -A-XG-------              *  STOREIND  ref
               [000007] ------------                 IL_OFFSET void   INLRT @ 0x00A[E-]
N001 (  0,  0) [000004] ------------                 RETURN    void   $180
```
Since this store must use a barrier, `CLS_VAR_ADDR` won't be contained and will have to be evaludated
separately. Because its value is live across a call, it'll get spilled and reloaded. Reversing the ASG
fixes the problem:
```
------------ BB01 [000..00B) (return), preds={} succs={}
               [000006] ------------                 IL_OFFSET void   INLRT @ 0x000[E-]
N001 ( 14,  5) [000000] --CXG-------         t0 =    CALL      ref    CscBench.GetMscorlibPathCore $c0
N002 (  3,  4) [000002] ----G--N----         t2 =    CLS_VAR_ADDR byref  Hnd=0x8fec230
                                                  /--*  t2     byref
                                                  +--*  t0     ref
N003 ( 18, 10) [000003] -A-XG-------              *  STOREIND  ref
               [000007] ------------                 IL_OFFSET void   INLRT @ 0x00A[E-]
N001 (  0,  0) [000004] ------------                 RETURN    void   $180
```

* Fixes a few issues for dprintf on OSX (#64076)

* [Codespaces] Make it possible to run wasm samples in the browser (#64277)

With these changes, running the following in the Codespace will open the local browser to a page served from the codespace hosting the WASM sample:

```console
cd src/mono/sample/wasm/browser
make
make run-browser
```

* Set EMSDK_PATH in .devcontainer.json

   We provision Emscripten as part of the devcontainer prebuild.

   Set EMSDK_PATH to allow rebuilding the wasm runtime to work without any additional ceremony

* Install dotnet-serve into .dotnet-tools-global

* [wasm] Don't try to open browser if running in Codespaces

* .devcontainer: add global tools dir to PATH

* .devcontainer: forward port 8000

   This enables running the mono wasm samples in the local browser:

* [wasm] samples: also check for dotnet-serve on the path

   On Codespaces we install dotnet-se…

* Revert "`SafeFileHandle` `FileStatus` (#4)" (#5)

This reverts commit 6a3e1317c75af02e6a4d3d1cb336ed79b86e59df.

* Usage of `GetHandlePath`

Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
* Usage of `CULong`

Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
* Usage of `CULong`

Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
* Add SystemNative_FChflags

* Fix `OpenHandle` calls in test

* Add symlink resolving in `TimeFunctions` tests

* Use `futimes` fallback for `futimens`

* Use right preprocessor var

* Add new line at EOF in `Interop.BY_HANDLE_FILE_INFORMATION`

* Remove `FileOptions.DeleteOnClose` in Test cases for post-disposal tests

* Add non linux condition to `SetDateTimeMax_SafeFileHandle` test

* Exclude pagefile.sys tests for `SafeFileHandle`

* Fix `BaseGetSetTimes` tests

* Use `GeneratedDllImport` over `DllImport`

* Remove redundant charset spec. from `Interop.UTimensat`

* Remove extra line

* Add explicit parameter names

Co-Authored-By: Dan Moseley <danmose@microsoft.com>
* Add explanatory comment to `TimeFunctions`

* Improve test cases

* Remove more redundant charset specifications

* Refactoring Tests

* Refactor Tests

* Fix tests

* Improve test structure

* Remove `ExactSpelling`

* Rename `GeneratedDllImportAttribute` to `LibraryImportAttribute`

See PR #66307

/cc @elinor-fung

* Apply suggestions

Co-Authored-By: Stephen Toub <2642209+stephentoub@users.noreply.github.com>
* Reduce code duplication in `FileSystem.Windows.cs`

* Fix tests

* Address feedback

Co-Authored-By: Stephen Toub <2642209+stephentoub@users.noreply.github.com>
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Address more feedback

Co-Authored-By: Stephen Toub <2642209+stephentoub@users.noreply.github.com>
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Apply suggestions & try to avoid reordering

Co-Authored-By: Dan Moseley <danmose@microsoft.com>
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Fix tests

* Fix tests

* Refactor `BaseGetSetTimes`

Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Merge branch 'main' into issue-20234

* Test style changes

Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Don't try to verify link properties don't change when we can't retrieve them.

* Apply suggestions

Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Regenerate reference source

* Merge branch 'main' into issue-20234

* Apply suggestions

Co-Authored-By: Dan Moseley <danmose@microsoft.com>
* Reorder project items

* Apply suggestions

Co-Authored-By: David Cantú <jozkyy@gmail.com>
* Apply suggestions

Co-Authored-By: David Cantú <jozkyy@gmail.com>
* Apply suggestions

Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Fix `fsetattrlist`

* Apply suggestions

Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Fix error path resolution

* Merge branch 'main' into issue-20234

* (Try to) fix OSX failures

* Fix OSX method signature

* Apply suggestions

Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
* Apply suggestions (using GitHub UI)

Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
* Apply suggestions (using GitHub UI)

Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
* FileStatus: avoid ToString allocation for setattrlist

* Remove unnecessary message

* Apply suggestions

* Merge branch 'main' into issue-20234

* Fix corruption due merge

* Apply suggestions

Co-Authored-By: David Cantú <jozkyy@gmail.com>
* Fix Unix tests

* Merge branch 'main' into issue-20234

* Fix tests

* Update src/libraries/System.Private.CoreLib/src/System/IO/FileStatus.Unix.cs

Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
* Fix Unix test failures.

* Sfh fix tests (#8)

* Use the signature types when building ABI info (#70635)

* Use signature types when building the ABI info

This will allow us to let "mismatched" struct types as call arguments,
which in turn is expected to simplify and de-pessimize much of the code
working around the need to keep precise handles on struct nodes.

Credit to @jakobbotsch for being able to make this change.

* Work around the "InferOpSizeAlign" problem

Handling it generally requires solving a larger problem
of "eeGetArgSizeAlignment" not working well on ARM.

(See also the use of "eeGetArgSizeAlignment" in "lvaInitUserArgs")

* [wasm] Build WasmAppHost with UseAppHost=false (#70606)

* [wasm] Build WasmAppHost with UseAppHost=false

- WasmAppHost is included in the WebAssembly.Sdk pack, and doesn't have a
platform specific package.
- Since, this is being built for x64, the build defaults to using the
app host, which means that we get a single binary file that can be run
directly.
    - But this also means that the binary included in the
    WebAssembly.Sdk platform-agnostic package will target the platform
    where it was built.

- Instead, build with UseAppHost=false, and update the wasm host to use
the managed assembly instead.

And update the RunCommand to use `dotnet exec WasmAppHost.dll`.

* fix

* JIT: Optimize expansion of indir cell addresses for CFG (#70491)

On ARM64 it is expensive to materialize the address of an indirection
cell since that requires multiple instructions. This is particular a
problem when CFG is enabled where validation + call uses the indir cell
twice. This changes the CFG logic to create a local in this case.

We also were forcing the indir cell argument node into the register.
This is not ideal for this particular case, so remove this logic and let
LSRA deal with it. ARM still needs this logic.

Fix #65076

* Handle mis-sized structs in XARCH `PUTARG_STK` codegen (#68611)

* Handle "mis-sized" structs in XARCH PUTARG_STK codegen

Previously, for structs which were not a multiple of TARGET_POINTER_SIZE
in size:

1) On x86, we copied them to a local in morph. This was a small CQ issue.
2) On Unix x64, we didn't handle them at all and could read out of bounds
   in "genStructPutArgUnroll".

This change fixes both issues by properly detecting cases where we need to
be careful and updating codegen to use correct load sizes.

* Add a test

* Improve distribution of CoseHeaderLabel hash codes (#70695)

* Implement digest one shots for browser implementation

* [wasm] Don't use a fixed listening port for the proxy (#70681)

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

* Fix SOS tests on 7.0 (#70677)

The wcscpy_s in ClrDataAccess::GetRegisterName was failing with an invalid parameter exception because
the prefixLen and regLen didn't include the terminating null wchar.

* [wasm] Enable some previously failing WBT/AOT tests on windows (#70595)

* [wasm] Enable some previously failing WBT/AOT tests on windows

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

* [wasm] WBT: Fix a failing satellite assembly test

The test fails because it is trying to find the string `got: こんにちは`
in the app output, but it sees `?????`. This is due to xharness not
setting the console output to UTF8, and then the tests not doing the
same.

Instead of that, we can move the check to be in the app itself, thus
removing the need for any of this.

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

* List other architectures and DOTNET_ROOT environment variables in dotnet --info (#70403)

* [mono] Remove dead code. (#70671)

A variable initialized to false and never modified means we can remove the
variable and any code that depends on that variable not being false.

This is a consequence of 15ab9f985ed45feaa619df70d288fbd0acd5c45f, where code
that assigned the variable was removed.

* Avoid throwing Win32Exception from HTTP authentication (#70474)

* Avoid throwing Win32Exception from HTTP authentication

When server sends malformed NTLM challenge the NT authentication processing
would throw an unexpected Win32Exception from HttpClientHandler.Send[Async]
calls. This aligns the behavior to WinHTTP handler where the Unauthorized
reply with challenge token is returned back to the client.

Similarly, failure to validate the last MIC token in Negotiate scheme could
result in Win32Exception. Handle it by throwing HttpRequestException instead.

* Make the unit test more resilient

* Add trace to Negotiate authentication

* Dispose connection instead of draining the response

* Remove outdated ActiveIssue

* Fix usage of GSS_KRB5_CRED_NO_CI_FLAGS_X (#70447)

* Fix build detection of GSS_KRB5_CRED_NO_CI_FLAGS_X

* Don't use GSS_KRB5_CRED_NO_CI_FLAGS_X on NTLM

* Handle GSS_S_UNAVAILABLE error from gss_set_cred_option (NTLM wrapped in Negotiate)

* Make the GSSAPI shim work with krb5 1.13

* Preserve the gss_acquire_cred minor status

* Use IndexOf in WebUtility (#70700)

The IndexOfHtmlDecodingChars method was iterating character by character looking for either a `&` or a surrogate, but then the slow path if one of those is found doesn't special-case surrogates.  So, we can just collapse this to a vectorized `IndexOf('&')`, which makes the fast path of detecting whether there's anything to decode much faster if there's any meaningful amount of input prior to a `&`. (I experimented with also using `IndexOf('&')` in the main routine, but it made cases with lots of entities slower, and so I'm not including that here.)

* Hoist the invariants out of multi-level nested loops (#68061)

* first working version

* Skip check of VN hoisting

* Account for duplicate blocks

* clean up

* wip

* isCommaTree && hasExcep

* revert lsra changes

* Update hoisting condition

- Only update if node to be hoisted has side-effects and the sibling that is before that throws exception

* Change to BasicBlockList

* organize preheaders

* update hoistedInCurLoop and hoistedInSiblingLoop

* Reverse the loop order

* cleanup and jit-format

* Revert "Minor fix to display IG01 weight correctly"

This reverts commit 757120e863b2da188db2593da1b7142fd1ecf191.

* simplify code

* Remove m_hoistedVNInSiblingLoop

* Add back ResetHoistedInCurLoop

Fix igWeight

* Remove reversal of loop processing order

* jit format

* Experimental: Also generate PerfScore:

* review feedback

* fix the superpmi script

* Revert superpmi asmdiffs change

* Rename method

* Add a comment

* Delete GTF_ASSERTION_PROP_LONG (#70521)

* Convert exception help context parsing to managed (#70251)

* Move help link parsing to managed

* Cleanup wtoi and nativeIsDigit

* Fix metasig declaration

* Guard GetHelpContext under FEATURE_COMINTEROP

* Remove definition of GetHelpLink and guard more methods under cominterop

* DWORD should be uint

* Add help context marshaling test

* Adjust marshaling test

* Fix #ifdef with ILLink

* Fix method signature mismatch

* Specify string marshaling

* Throwing test should not test successful HRESULT

* Implement ISupportErrorInfo

* Test interface in InterfaceSupportsErrorInfo

* Delete tests for .NET Framework Xsltc.exe tool (#70706)

* Use regex matching for Xsltc test baseline files

* Delete xsltc.exe tests entirely

* Reenable C4244 in repo (#70026)

* Reenable 4244 warning for Mono.

* Enable compiler errors for gcc/clang.

* Fix issues enabling -Werror=implicit-int-conversion

* Revert turning on implicit-int-conversion as error.
  This check was triggering failures on parts of the PAL that
  require additional scrutiny beyond the scope of this work.

* Add SlidingWindow and FixedWindow to RateLimitPartition (#68782)

* align GC memory load calculation on Linux with Docker and Kubernetes (#64128)

* align memory load calculation in GC with Docker and Kubernetes

* pass inactive file field name as a parameter

* [wasm] Fix Debug configuration builds (#70683)

* Fix cmake error

   ```
   Manually-specified variables were not used by the project:
   CONFIGURATION_WASM_OPT_FLAGS
   ```

* Build the interpreter with -O1 on Wasm in Debug configs

   Otherwise `interp_exec_method` and `generate_code` can easily overflow the stack in some browsers with even a few recursive calls (for example during .cctor initializaiton)

* [wasm] Make runtime_is_initialized promise callbacks one-shot (#70694)

* [wasm] Make runtime_is_initialized promise callbacks one-shot

Throw if runtime_is_initialized_resolve or runtime_is_initialized_reject is called more than once

* Add a slightly generalized GuardedPromise<T> object

   Protects against multiple-resolve, multiple-reject, reject after resolve and resolve after reject.

  Does not protect against the executor throwing.

* Do not use ExecutableMemoryAllocator on 64 bit platforms if default base address usage is requested (#70563)

* [wasm][debugger] Implement get bytes from loaded_files using debugger protocol. (#69072)

* Implement get bytes from loaded_files using debugger protocol.

* fix pdb size == nul

* Adressing @radical comments.

* Fix build.

* fix compilation

* Addressing @radical comments.

Co-authored-by: Ankit Jain <radical@gmail.com>
* Add doc on Unix temporary file security practice (#70585)

* Add doc on Unix temporary file security practice

* Update unix-tmp.md

* Update unix-tmp.md

* Add example permissions encoding

* Update docs/design/security/unix-tmp.md

Co-authored-by: Dan Moseley <danmose@microsoft.com>
* Update unix-tmp.md

Co-authored-by: Dan Moseley <danmose@microsoft.com>
* ConfigurationBinder.Bind on virtual properties duplicates elements (#70592)

* ConfigurationBinder.Bind on virtual properties duplicates elements

* simplify GetAllProperties

* return array instead of list

* Obsolete AssemblyName.CodeBase, AssemblyName.EscapedCodeBase (#70534)

* JIT: Enable JitConsumeProfileForCasts by default (#69869)

* Fix AttributePresence in composite mode (#70737)

According to my comparative perf measurements composite framework
spends about 5M more instructions in the method

coreclr.dll!CMiniMdTemplate<CMiniMd>::SearchTableForMultipleRows(CMiniColDef sColumn)

I tracked this down to the R2R table AttributePresence which is
used to speed up attribute queries against the ECMA metadata model.
In composite mode we were putting the table in the image header,
not component header, and so the runtime was unable to locate it.
This change fixes generation of the table in Crossgen2; I have
verified that with this change I no longer see the 5M outlier.

Thanks

Tomas

* Handle mis-sized structs in ARM/64 `PUTARG_SPLIT` codegen (#70249)

* Add a test

* Fix out-of-bounds loads in ARM/64's "genPutArgSplit"

* Split the test out

* Refactor how implicit byrefs are morphed (#70243)

* Refactor implicit by-refs morphing

Move it to "fgMorphLocal".

Enabled folding in "LocalAddressVisitor".

* Add FEATURE_IMPLICIT_BYREFS

And use it in all the necessary places.

Resolves the TP regression on Unix x64, turning it into a TP improvement.

* Add a zero-diff quirk

* Do not change `gtRetClsHnd` in `impNormStructVal` (#70699)

* Do not change "gtRetClsHdl" in "impNormStructVal"

Doing so leads breaking the proper ABI handling for the call.

* Add a test

* Support `PUTARG_STK(STRUCT LCL_VAR/LCL_FLD)` on ARM/64 (#70256)

* Separate out LowerPutArgStk

Call it from "LowerArg" instead of "ContainCheckCallOperands",
as it does more than just containment analysis.

* Support "PUTARG_STK(STRUCT LCL_VAR/LCL_FLD)" on ARM/64

To test this, transform "OBJ(LCL_VAR|FLD_ADDR)" to "LCL_FLD" on lowering.

This additionally simplified the codegen code as it doesn't have to support
two representations of the same thing.

* Support `PUTARG_STK(STRUCT LCL_VAR/LCL_FLD)` on x86/Unix x64 (#70702)

* Add GenTree::GetLayout

* x86/Unix x64: lowering

* x86/Unix x64: "genConsumePutStructArgStk"

* x86/Unix x64: "genStructPutArgUnroll"

* x86/Unix x64: codegen asserts

* x86: "genStructPutArgPush"

* Unix x64: "genStructPutArgPartialRepMovs"

* Allow `TYP_STRUCT` `LCL_FLD` on the RHS of block copies (#70633)

* Delete the unused "GTF_USE_FLAGS"

It used to indicate that a branch operation didn't
need to materialize its operand and could just "use
flags" instead, but that purpose has long been lost
now that we have explicit SETCC nodes in lowering.

* Make GTF_DONT_EXTEND a shared flag

So that it can be used for "LCL_FLD" as well as "GT_IND".

No diffs.

* Enable TYP_STRUCT on the RHS

* fgMorphBlockOperand

* Tweak TYP_STRUCT LCL_FLD costs

Model it as two load, like OBJ.

Note we could be more precise here, by using the
register type of the layout. For now, we defer.

* Block CSE

Preserve previous behavior to avoid diffs.

* Revert "Fix usage of GSS_KRB5_CRED_NO_CI_FLAGS_X (#70447)" (#70747)

This reverts commit 84f7cad00ad834c365b5cd1297e1166525146b50.

* Add note about backward branch constraints to ECMA-335 augments (#70760)

* [NativeAOT] Enabling return address hijacking on ARM64 Windows (#70740)

* Enabling return address hijacking on ARM64 Windows

* pass right flags to the GcInfoDecoder

* Fix value numbering of HWI loads (#70621)

* Fix numbering of HWI loads

Take into account all operands and describe the exception sets precisely.

* Add a test

* Recast the check

* Small MsQuicStream refactorings (#70433)

* Inline state transition helpers

Fixes #55437

* Add high level comments for HandleEventReceive and ReadAsync

* Updating HWIntrinsicInfo::lookupId to not accelerate Vector256 APIs when AVX2 is unsupported (#70686)

* Updating HWIntrinsicINfo::lookupId to not accelerate Vector256 APIs when AVX2 is unsupported

* Fixing a check in lookupId to properly negate the condition

* Ensure the special-cased EA_32BYTE constants only happen when AVX/AVX2 are supported

* Fixing a bad assert in morph

* Dsiable CertificateValidationRemoteServer.ConnectWithRevocation_WithCallback on Android (#70768)

* NativeAOT Unlock assignability comparison in reflection-free (#70726)

* NativeAOT Unlock assignability comparison in reflection-free
Closes #69960

* Document support for `IsAssignableFrom`

* Document support for `IsInstanceOfType`

* Document `IsAssignableTo`

* Add suggestion from Michal

* Update src/coreclr/nativeaot/System.Private.DisabledReflection/src/Internal/Reflection/RuntimeTypeInfo.cs

Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
* Remove whitespaces

Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
* [Mono] Fix C4018 round I (#70417)

* First round of change of fixing C4018

* Address part of review feedback

* Change the type of idx to unsigned for `effective_table_slow`

* Add idx range check after the type was changed

* Address review feedback for `class-init.c`

* Change the return type of `*table_num_rows*` to `guint32`. Deal with the consequence of return type change of `table_info_get_rows`. Correct the type of a few local variables which store the return of `mono_metadata_token_index`.

* Update return type

* Address review feedbacks of metadata.c

* Fix native crash

* Make counter private to for-loop

* Address review feedbacks

* Address review feedbacks

* Fix race condition in LoaderAllocator::CompareExchangeValueInHandle (#70765)

The method was not actually using interlocked operation. It made it possible for multiple different values to win.

Fixes #70742

* Enable redirection on arm64 (#70769)

* Handle HW exceptions on Windows without redirection (#70428)

This change modifies the way hardware exceptions are propagated from the
vectored exception handler. Until now, runtime was returning from the
vectored exception handler with instruction pointer in the context set
to an asm helper. That redirected the thread to that helper and we have
raised an exception from its call chain.
While working on CET support, it was found that propagating exceptions
from the vectored exception handler directly works just fine. So this
change makes it work that way for all Windows targets.

* Predicate for valid Tracker Reference is inverted (#70709)

* Predicate for valid Tracker Reference is inverted

* Fix test to not inline wrapper creation function.

* JIT: Enable addressing modes for gc types (#70749)

* JIT: Faster long->int overflow checks (#69865)

* Update .net version for asp.net spmi collection script (#70778)

* Enable IlcTrimMetadata by default (#70201)

Enables more aggressive metadata stripping by default. In this mode, the AOT compiler only generates reflection metadata for artifacts that were deemed reflection-visible by either dataflow analysis, or user inputs. Previously we would consider everything that got generated reflection-visible.

* Change the defaults within the compiler (making the conservative mode opt-in).
* Add tests for scenarios in https://github.com/dotnet/runtimelab/issues/656 (resolves dotnet/runtimelab#656).
* Update tests
* Do more marking where it was necessary

* Remove GSS_KRB5_CRED_NO_CI_FLAGS_X code (#70772)

The support for building with GSS_KRB5_CRED_NO_CI_FLAGS_X was broken for quite some time. Attempts to reenable it failed due to bug in the krb5 GSSAPI implementation resulting in invalid memory accesses.

* Make ConnectWithRevocation_StapledOcsp more resilient to being slow

* Upgrade SDK to Preview 5 (#70117)

Upgrade to released Preview 5 build

* Find&replace FastInterlock* with Interlocked* (#70784)

FastInterlock* operations were #defined as aliases to regular Interlock* operations. Deleted the FastInterlock* aliases and replaced usage with Interlocked* operations.

* JIT: rework optCanonicalizeLoop (#70792)

Rework loop canonicalization in anticipation of extending it to handle
non-loop edges like those seen in #70802 (details in #70569).

The code to fix up flow out of `h` was not needed and has been removed.
We now assert upstream that no such fix up will be needed.

* Avoid infinite loop in case of heap corruption (#70759)

Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
* [wasm][debugger] Remove workaround to get pauseOnExceptions setting (#70748)

* Add SubstitutionParser that uses XPath Navigator into NativeAOT (#64671)

* Add end-to-end test for NTLM/Negotiate authentication against fake server (#70630)

* Add end-to-end test for NTLM/Negotiate authentication against fake server

* Simplify the test since HttpClientHandler is always SocketsHttpHandler for the test environment

* Fix test condition

* Remove extra comment

* Enable ThreadAbort with CET enabled via the QueueUserAPC2 (#70803)

This change makes ThreadAbort work when CET is enabled. Instead of
thread redirection, it uses the new user mode APC mechanism to get a
thread to a handler and then throws the ThreadAbortException from there
if the thread was interrupted at a safe location.

I have verified it works using mdbg tests and also by manual testing in
the Visual Studio 2022 using a test app that creates an instance of
classes with properties containing infinite loop, wait on a lock, wait
on a handle, infinite loop inside of a lock and infinite loop in
finally.
For the testing, I've enabled this separately from the CET so that the
missing support for CET in the debugger code doesn't cause troubles.

So we could enable this without CET enabled too, but I'd prefer doing
that separately.

* Test additional NativeAOT Lib testing (#70212)

* Test additional NativeAOT Lib testing

* more libraries to un nativeaot rolling build

* FB

* FB2

* only write results file if specified in args

* excluding failing tests

* oops, missed pull before a forced push

* excluding some recently added tests that fail

* fix typo with end element

* FB

* Fix emitDispJumpList for Arm64 (#70542)

* fix jitdump

* Fix arm build

* Another format

* Fix regression in runtime-jit-experimental (#70797)

The newly-introduced `emitRemoveJumpToNextInst` optimization caused
a regression when hot/cold-splitting, where jumps from the last hot
instruction to the first cold instruction were erroneously removed.
This is fixed by disabling the `isRemovableJmpCandidate` flag for
branches between hot/cold sections.

On an unrelated note, a JIT dump message has been added to indicate
stress-splitting is occurring.

* JIT: relax fwd sub restriction on changing class handle (#70587)

For HW SIMD types, at least.

Fixes #64879.

* Use LastIndexOf in ZipArchiveEntry.GetFileName_Unix (#70701)

There's not particularly good reason to open-code the loop here.

* Update dogfooding instructions (#70833)

- Delete note about multilevel lookup. It is not relevant anymore.
- Fix nightly feed url to net7
- Replace .NET Core with just .NET

* Add icon to dotnet.exe on Windows (#70578)

* Add two new stages to prepare for our new custom type marshalling design. (#70598)

* Simplify `Environment.IsWindows8OrAbove`. (#70818)

* Simplify Environment.IsWindows8OrAbove.
Since .NET 5, the regular Windows version detecton code always returns the correct version.

* Remove two unused interop files.

* Delete redundant aliases for primitive types (#70805)

* Add limited support for LocalCertificateSelectionCallback for QUIC (#70716)

* Inline state transition helpers

Fixes #55437

* Add high level comments for HandleEventReceive and ReadAsync

* [QUIC] Call `LocalCertificateSelectionCallback` to get client certificate

* Code review feedback

* JIT: Optimize range checks for X >> CNS and for short/byte indices  (#67141)

Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
* Tighten checks in `areArgumentsContiguous` (#70829)

* Tighten checks in "areArgumentsContiguous"

* Add a test

* Narrow cast fix (#70518)

* Added genActualTypeSize. Remove narrow cast if the actual type sizes are the same

* Trying to fix build

* Fixing build

* Removed genActualTypeSize. Using genActualType instead

* Added helper function

* Comments

* Moving back to morph

* Removing part of the test

* Added fgOptimizeCastOnAssignment

* Fixing build

* Removing extra bits

* Removed fgIsSafeToRemoveIntToIntCastOnAssignment, inlining the implementation, adding extra logic when actual types are not the same

* [wasm] Disable WBT test failing on windows (#70808)

Issue: https://github.com/dotnet/runtime/issues/70675

* Enable IDE1005 (Delegate invocation can be simplified) (#70522)

* Disable long running test (#70843)

* [wasm] Enabled WriteToReadOnly tests - emscripten bug got fixed (#70814)

Fixes #53021.

Enabled tests from #53021 - they are passing now because issue reported by @radekdoulik got fixed: https://github.com/emscripten-core/emscripten/issues/14299.

* Use IndexOf{Any} in a few more places (#70176)

* Use IndexOf{Any} in a few more places

* Address PR feedback

* Fix corerun for assemblies with mismatched filename (#70800)

corerun gracefully handled filename not matching the assembly name. Handling of this case regressed in #68186. This change is fixing the regression.

Fixes #68455

* Fix a few Stream-related issues in System.Net.Http (#70731)

* Fix a few Stream-related issues in System.Net.Http

* Put back WriteTimeout

* Fix tests

* Catch (more) mismatched args in `fgMorphArgs` (#70846)

* Catch (more) mismatched args in "fgMorphArgs"

* Add a test

* [coop] fix coop suspend timeout cue card (#70828)

the BLOCKING_SUSPEND_REQUESTED state is treated as suspend in full
coop mode (the thread keeps running, but by definition it's not
allowed to access managed resources and it will self-suspend if it
tries to enter GC Unsafe mode by calling a runtime API or managed
code).
It is bad in hybrid suspend mode (the thread should be preemptively
suspended, but we timed out before the signal handler had a chance to
run).

The corresponding suspension logic in the code is:

https://github.com/dotnet/runtime/blob/3fc61ebb562afc327a8fc6de5c82d76e86bf6f5d/src/mono/mono/utils/mono-threads.c#L1149-L1158

* Fixing the handling of Positive NaN in Math.Min for float/double (#70795)

* Adding tests validating Positive NaN for Max, MaxMagnitude, Min, and MinMagnitude

* Fixing the handling of Positive NaN in Math.Min for float/double

* Fixing the Max/Min code comments to use greater and lesser

* Adding a code comment clarifying the sign toggling behavior

* JIT: break loop canonicalization into two stages (#70809)

For a given loop, we need to separate out the true backedge, any
non-loop backedges, and any inner loop backedges so that they all
target distinct blocks.

Otherwise, we may violate assumptions that the loop entry dominates
all blocks in the loop and that all backedges that reach top come
from within the loop.

This seems simplest to do with two rounds of canonicalization, one
that moves the non-loop edges, and another that moves the true backedge.

Fixes #70802.

* Use `Array.Empty()` in `System.Reflection.Metadata`. (#70862)

It is now available in all frameworks it targets.

* Delete StaticallyLinked property from Microsoft.NETCore.Native.Unix.props (#70854)

This option has many issues. Anybody trying to experiment with static linking can add `<LinkerArg Include="-static" />` into the local file.

* Restore ArchivingUtils.AttemptSetLastWriteTime (#70617)

* Fix GC stress failure in LoaderAllocator::CompareExchangeValueInHandle (#70832)

InterlockedCompareExchangeT has to be called on a raw Object* to make the GC stress infrastructure happy.

* Small performance cleanups in S.S.Cryptography

* ARM64 - Optimize `i % 2` (#70599)

* Assign proper VNs to "shared constant" CSE defs (#70852)

* Assign proper VNs to shared CSE defs

They must be those of the original expression, not the "base" constant CSE creates.

* Add a test

* Enable IDE0054 (Use compound assignment) (#70564)

* Enable IDE0054 (Use compound assignment)

* Update src/libraries/System.Data.Common/src/System/Data/Common/StringStorage.cs

Co-authored-by: Tanner Gooding <tagoo@outlook.com>
Co-authored-by: Tanner Gooding <tagoo@outlook.com>
* Use new byte[] span optimization in a few more places (#70665)

* Use new byte[] span optimization in a few more places

Separated out of larger change to use CreateSpan (these don't rely on that).

* Address PR feedback

* Improve TLS1.3 detection in registry for QUIC (#70730)

* Improve TLS1.3 detection in registry for QUIC

* Split client and server detection

* Code review feedback

* Generate method bodies for delegate Invoke methods (#70883)

There is a dataflow warning suppression in System.Linq.Expressions that assumes we'll always have an invocable method body for delegate Invoke method. We need one in IL. We don't in native code.

Emulate what IL Linker does and generate a method body. This is a size regression.

Suppression: https://github.com/dotnet/runtime/blob/3b2883b097a773715ca84056885e0ca1488da36e/src/libraries/System.Linq.Expressions/src/System/Dynamic/Utils/TypeUtils.cs#L906-L912

Fixes #70880.

* Avoid crashing on unresolved dependencies (#70871)

Fixes #70815.

* Enable IDE0020 (Use pattern matching) (#70523)

* Enable IDE0020 (Use pattern matching)

* Update src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriter.cs

Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com>
* Update variable naming

Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com>
* Fix failure building two libraries tests (#70881)

Microsoft.CSharp was hitting an issue due to a vararg constructor. We don't support varargs. They shouldn't make it into the dependency graph. We are already checking in many places. We were erroneously thinking a vararg constructor with no mandatory arguments is a default constructor.

Runtime.InteropServices were crashing because we got a MulticastDelegate type into a codepath that expects a MulticastDelegate descendant.

* Use hash/hmac one shots in NTLM (#70857)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Unpin locals, attempt 2 (#70655)

Contributes to #40553

* Replace a few instances of PtrToStructure with more efficient marshalling (#70866)

* Fix for timer scheduling happening on the incorrect thread when wasm threading is enabled (#70863)

* Add event to capture min/max threads (#70063)

Event ThreadPoolMinMaxThreads added.

Parameters are:
            ushort MinWorkerThreads
            ushort MaxWorkerThreads
            ushort MinIOCompletionThreads
            ushort MaxIOCompletionThreads
            ushort ClrInstanceID

It is fired in the ThreadPool constructor and in the SetMinThreads/SetMaxThreads functions.

* [wasm] Add support for per-project customization of helix work items (#70461)

* [wasm] Add support for per-project customization of helix work items

Currently, for sending tests to helix:
1. the project binaries are zipped, as part of the project build
2. then separate helix targets files build that adds helix items for
   those zip files.
    - for wasm, we test with multiple 'scenarios' - like v8, browser, and
    nodejs.
    - so, 3 helix work items are submitted per zip file

- If a test project needs to have any customizations, for example, for
  testing crypto with a managed implementation, and subtlecrypto, which
  would require:
  - passing different arguments to xharness, in case of managed, and
    subtlecrypto
  - and this should be done only for the browser case
  - Currently, this would need this would need to be done in
  `sendtohelix-wasm.targets` special casing for the test project, and
  scenario.

- We add support for importing `$(ProjectName).helix.targets`, and
  calling a special target in that to add helix items, as needed.

- This targets file can be set in the test project like:
```xml
<HelixTargetsFile Condition="'$(TargetOS)' == 'Browser'">wasm.helix.targets</HelixTargetsFile>
```
  - it will get deployed next to the zip file, and picked up automatically

```xml
<Project>
  <PropertyGroup>
    <_CryptoProjectName>System.Security.Cryptography.Tests</_CryptoProjectName>
    <System_Security_Cryptography_Tests_TargetName Condition="'$(Scenario))' == 'WasmTestOnBrowser'">System_Security_Cryptography_Tests_Targ
et</System_Security_Cryptography_Tests_TargetName>
  </PropertyGroup>

  <Target Name="System_Security_Cryptography_Tests_Target">
    <ItemGroup>
      <HelixWorkItem Include="$(Scenario)-managed-$(_CryptoProjectName)">
        <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
      </HelixWorkItem>

      <HelixWorkItem Include="$(Scenario)-subtlecrypto-System.Security.Cryptography.Tests">
        <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>

        <PreCommands Condition="'$(OS)' == 'Windows_NT'">set &quot;WasmXHarnessArgs=--web-server-use-cors&quot;</PreCommands>
        <PreCommands Condition="'$(OS)' != 'Windows_NT'">export &quot;WasmXHarnessArgs=--web-server-use-cors&quot;</PreCommands>
      </HelixWorkItem>
    </ItemGroup>
  </Target>
```

- The targets file *must* have these:
    - a property named like `System_Security_Cryptography_Tests_TargetName`, for a
      test project named `System.Security.Cryptography.Tests`
    - if this property is not set, then the default behavior of adding
      work items will run
    - The target should add any items it needs to to `@(HelixWorkItem)`.
      - Examples of adding these can be seen in `sendtohelix*` project files

- Remember that all these properties, and targets get imported into the
  msbuild *global* namespace, so make sure to use unique names to avoid
  conflicts with other test projects.

Future work: this commit only enables it for wasm/library tests, but it should
be easy to extract it out, but needs some testing.

* [wasm] Helix: test with, and without subtle crypto

* disable non-wasm builds

* address review feedback

* Address review feedback

* Fix typo

* Revert "disable non-wasm builds"

This reverts commit 7ef99e81f82200189dd3f61eeaf00d6ca4ced6d4.

* Update src/libraries/System.Security.Cryptography/tests/wasm.helix.targets

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
* Address review feedback

* remove debug spew

* Change the way helix extension targets are discovered.

The new approach:

To run a custom project specific target for adding/editing @(HelixWorkItem):

- In the project add:
    `<HelixTargetsFile Condition="'$(TargetOS)' == 'Browser'">wasm.helix.targets</HelixTargetsFile>`

    - This file gets copied next to the test archive as $(MSBuildProjectName).helix.targets

- In this `wasm.helix.targets` file, add to $(HelixExtensionTargets) to run your custom target

```xml
  <PropertyGroup Condition="'$(IsRunningLibraryTests)' == 'true' and '$(Scenario)' == 'WasmTestOnBrowser'">
    <HelixExtensionTargets>$(HelixExtensionTargets);_AddHelixCrypoItems</HelixExtensionTargets>
```

- The extension target will be called after the default items are added
  to `@(HelixWorkItem)`.
- Useful properties to condition on: $(Scenario), $(IsRunningLibraryTests)
- And add to, change, or remove from @(HelixWorkItem)

Example:
```xml
  <Target Name="_AddHelixCrypoItems">
    <ItemGroup>
      <!-- remove the existing item -->
      <HelixWorkItem Remove="@(HelixWorkItem)" Condition="'%(OriginalFileName)' == '$(_CryptoProjectName)'" />

        <!-- add two new ones - managed, and subtylecrypto -->
      <HelixWorkItem Include="$(WorkItemPrefix)managed-$(_CryptoProjectName)">
        <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
        <OriginalFileName>$(_CryptoProjectName)</OriginalFileName>
      </HelixWorkItem>

      <HelixWorkItem Include="$(WorkItemPrefix)subtlecrypto-$(_CryptoProjectName)">
        <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
        <OriginalFileName>$(_CryptoProjectName)</OriginalFileName>

        <PreCommands Condition="'$(OS)' == 'Windows_NT'">set &quot;WasmXHarnessArgs=%WasmXHarnessArgs% --web-server-use-cop&quot;</PreCommands>
        <PreCommands Condition="'$(OS)' != 'Windows_NT'">export &quot;WasmXHarnessArgs=$WasmXHarnessArgs --web-server-use-cop&quot;</PreCommands>
      </HelixWorkItem>

      <_CryptoHelixItem Include="@(HelixWorkItem)"
                        Condition="$([System.String]::new('%(HelixWorkItem.Identity)').EndsWith('-$(_CryptoProjectName)'))" />
    </ItemGroup>

    <Error Text="Something went wrong. Expected to have only two work items for $(_CryptoProjectName). But got @(_CryptoHelixItem)"
           Condition="@(_CryptoHelixItem->Count()) != 2" />
  </Target>
```

* cleanup

* Move WBT specific stuff into the target too. This will make it simpler to move it off into a targets file later

* fix build

* fix libtests

* fix wbt

* [wasm] Bump helix timeout to 90mins for debugger tests on windows

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
* Fix bug in Tar preventing extraction of hardlinks or entries starting with `.\` (#70853)

* Add PlatformDetection.SupportsHardLinkCreation property.

* Fix how paths are combined/joined and sanitized on extraction, to ensure paths with redundant segments get properly handled.

* Add tests that verify archives with entries whose paths start with .\, including the root folder itself.

* Re-enable the hardlink test, condition it to not run if platform does not support extraction of hardlinks.

* Remove unnecessary test - This same code is already being tested by TarReader_ExtractToFile_Tests.ExtractEntriesWithSlashDotPrefix

* Reuse test code that retrieves memory stream.

* Bump test data package version

* Add missing typeof(PlatformDetection) in ConditionalFact

Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
* Remove #define Sleep (#70868)

* Remove #define Sleep

* Fix ICorDebugFunction2::GetVersionNumber for arm32. (#69901)

* Replace the remaining uses of Marshal.PtrToStructure in core networking (#70900)

* Rename ICMP interop to match Windows SDK names

* Add support for delegate GDV and method-based vtable GDV (#68703)

Add support for instrumenting delegate calls and vtable calls into method handle histograms. Use these histograms to do GDV for delegate calls and also support method-based GDV for vtable calls.

For instrumentation we now support class probes at interface call sites, method probes at delegate call sites and both class probes and method probes at vtable call sites. For vtable calls, when turned on, instrumentation produces both histograms as PGO data so that the JIT can later make the choice about what is the best form of guard to use at that site.

For guarding, there are some things to take into account. Delegate calls currently (practically) always point to precode, so this PR is just guarding on getFunctionFixedEntryPoint which returns the precode address, and this is generally quite cheap (same cost as class-based GDV). That's the case for delegates pointing to instance methods anyway, this PR does not support static methods yet -- those will be more expensive.

For vtable calls the runtime will backpatch the slots when tiering, so the JIT guards the address retrieved from the vtable against an indirection of the slot, which is slightly more expensive than a class-based guard.

Currently the instrumentation is enabled conditionally with COMPlus_JitDelegateProfiling=1 (for delegates) and COMPlus_JitVTableProfiling=1 (for vtable calls). Currently delegate profiling is turned on by default while vtable profiling is off by default.

* Use ArgumentNullException.ThrowIfNull in a few more places (#70897)

* Append the function pointer type (#70923)

The issue here was the recursion into PrettyPrintSigWorkerInternal
that would reset the buffer. Now, we pass in a new buffer and append
it when we return.

* [main] Update dependencies from dotnet/runtime dotnet/icu dotnet/xharness dotnet/runtime-assets dotnet/emsdk dotnet/roslyn-analyzers (#70476)

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

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.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 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22308.1

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

Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
 From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22308.2

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22305.1 -> To Version 1.0.0-prerelease.22310.1

* Revert "Update dependencies from https://github.com/dotnet/emsdk build 20220608.2"

This reverts commit bbb4e156ddbad8a2cb7b604246214272085b6622.

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 7.0.0-preview.6.22306.1 -> To Version 7.0.0-preview.6.22309.1

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

Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
 From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22308.2

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

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.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 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22310.1

* Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20220610.1

Microsoft.CodeAnalysis.NetAnalyzers
 From Version 7.0.0-preview1.22302.1 -> To Version 7.0.0-preview1.22310.1

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

Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json
 From Version 7.0.0-preview.6.22305.4 -> To Version 7.0.0-preview.6.22312.5

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 7.0.0-preview.6.22306.1 -> To Version 7.0.0-preview.6.22313.1

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22310.1 -> To Version 1.0.0-prerelease.22313.1

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

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.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 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22313.1

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

Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
 From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22313.1

* [wasm] Wasm.Build.Tests: Disable strict version checks for emcc

Due to the way we have to update `dotnet/emsdk`, and get the update PRs
in `runtime`, the emsdk version can be mismatched. For example, if
`dotnet/emsdk` has already updated to `3.1.12`, but `dotnet/runtime` is
still on `3.1.7`. This is an expected scenario while working on updating
to a newer emscripten.

The version mismatch will still show up, but as a warning now.

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22310.1 -> To Version 1.0.0-prerelease.22314.1

* [wasm] Wasm.Build.Tests: Update Skiasharp reference

The skiasharp dependent tests fail with:
`error : undefined symbol: _ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv`.

Update the reference to the latest package which added a binary compiled
for `3.1.7`.

* [wasm] Workaround a test failure in WBT

Currently, there is a mismatch between emsdk versions with the workload
emscripten packs using `3.1.12`, and the runtime being built with
`3.1.7`. And that is causing
`Wasm.Build.Tests.NativeLibraryTests.ProjectUsingSkiaSharp` to fail with:

```
EXEC : error : undefined symbol: _ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv (referenced by top-level compiled C/C++ code) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
EXEC : warning : Link with `-sLLD_REPORT_UNDEFINED` to get more information on undefined symbols [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
EXEC : warning : To disable errors for undefined symbols use `-sERROR_ON_UNDEFINED_SYMBOLS=0` [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
EXEC : warning : __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
EXEC : error : undefined symbol: _ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv (referenced by top-level compiled C/C++ code) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
EXEC : warning : __ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
EXEC : error : Aborting compilation due to previous errors [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
emcc : error : '/datadisks/disk1/work/B1420981/w/ACC90933/e/dotnet-workload/packs/Microsoft.NET.Runtime.Emscripten.3.1.12.Node.linux-x64/7.0.0-preview.6.22313.1/tools/bin/node /datadisks/disk1/work/B1420981/w/ACC90933/e/dotnet-workload/packs/Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.linux-x64/7.0.0-preview.6.22313.1/tools/emscripten/src/compiler.js /datadisks/disk1/work/B1420981/t/tmp44tn7y2d.json' failed (returned 1) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj]
```

This commit adds a temporary workaround to ignore the undefined symbols
for this specific test. And this should be removed when runtime is
updated to `3.1.12` .

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
* Harden for null byrefs (#70317)

* Remove enum_flag_Unrestored usage in boxing stubs.

* Add AND instruction (21h) to x86 decoder.

* Update mono for null ref in interpreter paths.

* Disable test on llvmfullaot and wasm

* Handle null destination for intrinsics.

* Use u8 in a few more places (#70894)

* Use u8 in a few more places

* A few more u8s

* Enable lib tests that used to fail with GC issues (#70831)

* enable lib tests that used to fail with GC issues

* excluding linq parallel test since that doesn't build

* Threading.Thread tests have issues

* Excluding new test failures

* Remove some dead code / branches (#70146)

* Remove some dead code / branches

Some signal amidst the noise in an lgtm.com report.

* Address PR feedback

* superpmi.py: Add `-jitoption` for asmdiffs (#70939)

The new `-jitoption` option passes the argument options to both baseline and diff
compilers. This is a convenience option: there already is `-base_jit_option` and
`-diff_jit_option` to specify passing options to either baseline or diff.

The name of the option is the same as that used for `replay`.

* EventLogException is missing the original win32 error code (#70629)

* Enable IDE0071 (Simplify interpolation) (#70918)

* Enable IDE0100 (Remove redundant equality) (#70896)

* Enable IDE0065 (Misplaced using directive) (#70919)

* Optimization for full range checks (#70145) (#70222)

* Update C# compiler (#70947)

Brings in support for required members

* Allow ValueListBuilder to work with empty scratch spans (#70917)

* Enable IDE0030 (Use coalesce expression) (#70948)

* Do not reuse implicit byrefs for by-value args (#70955)

* Do not reuse implicit byrefs for by-value args

* Add a test

* Enable `TYP_STRUCT` `LCL_VAR/LCL_FLD` call args on Windows x64 (#70777)

* Fix forward sub

* Enable folding in local morph

* Morph: TYP_STRUCT LCL_FLD

* Make SuperPMI more explicit about JIT in error messages (#70938)

This makes it easier to figure out which JIT failed in asmdiffs scenarios.

e.g.,
```
[10:40:50] ERROR: Method 3673 of size 3107 failed to load and compile correctly by JIT2 (C:\gh\runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\clrjit_universal_arm64_x64.dll).
[10:40:50] ERROR: Method 3673 of size 3107 failed to load and compile correctly by JIT1 (C:\gh\runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\clrjit_universal_arm64_x64.dll).
```

* Fix illumos-x64 build (#70956)

* Disable W^X on macOS under Rosetta emulation (#70912)

* Disable W^X on macOS under Rosetta emulation

Apple has informed us that double mapping doesn't work properly
on Rosetta emulation. This change disables W^X if Rosetta is detected.

* Reflect PR feedback

* Add support for randomized guard stack cookies (#70806)

The compiler was generating GS cookies, but the cookie was always an ASCII encoding of "Hi, mom!".

Make the cookie properly per-process randomized.

The randomization algorithm is same as in the CoreCLR VM.

Fixes #70071.

* Fixes #64159 - JsonSerializerContext source generation fails with keyword identifiers (#66876)

* Fixes #64159 - initial implementation

* Tidy up, and add test for ignored reserved-keyword-named property

* PR feedback - use same approach as logging generator

* PR feedback

* Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
* PR feedback - rename ExactNameSpecifiedInSourceCode

* PR feedback - use extracted (and renamed) local variable

* Remove commented code

* Added `IsVerbatimName` as extension method

* Support fields with verbatim names (@)

* Use alternative method for checking for verbatim names

* Uses `SyntaxFacts` to determine if escaping is needed

* Remove extension method

* Modified source generator test to include a verbatim field

* Minor typo

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
* [main] Update dependencies from dotnet/arcade (#70662)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Enable IDE0031 (Use null propagation) (#70965)

* Fix nullable annotations on MailAddress.TryCreate (#70943)

* [QUIC] Removes abstract providers and mock from S.N.Quic (#70421)

* Removed abstract providers and mock from S.N.Quic

* Removed provider and replaced with statics on Listener and Connection

* Added assert

* Stop wrapping SIMD nodes in OBJs (#70888)

* Upstream coreclr and pal changes to support powerpc (ppc64le) architecture  (#69105)

* coreclr pal layer chanegs.

* Updated the system arch for power architecture.

* Fixed the failing PAL SXS exception_handling test case

* replaced gint with gint64 to avoid overflow and this has fixed the segmentation fault issue.

* coreclr pal layer chanegs.

* Fixed the failing PAL SXS exception_handling test case

* coreclr pal layer chanegs.

* Updated the system arch for power architecture.

* Fixed the failing PAL SXS exception_handling test case

* replaced gint with gint64 to avoid overflow and this has fixed the segmentation fault issue.

* coreclr pal layer chanegs.

* Fixed the failing PAL SXS exception_handling test case

* Removing intsafe.h file as main does not have this file now.(Already removed in commit 27195f670937c7e21ab68a806396f9d17c57231a)

Co-authored-by: Alhad Deshpande <Alhad.Deshpande1@ibm.com>
* Collections contain stale object IDs (#70924)

It looks like the collections contain stale
ObjectID values. These collection should
be purged between GCs.

* Minor refactoring for `UpgradeToRegexGeneratorAnalyzer` (#70767)

* Fix arm64 funclet frame type 5 (#70922)

* Fix arm64 funclet frame type 5

* Add code to stress arm64 funclet frame type 5

This can be forced using `COMPlus_JitSaveFpLrWithCalleeSavedRegisters=3`,
or will be enabled under stress.

* Add a regression test

* Fix funclet frame type 5 alignment calculation

* Fix a couple bugs; improve documentation

1. Improve the frame shape pictures, especially for arm64 funclet frames. Include the
MonitorAcquired element and OSR pad.
2. Fix bug for `SP_to_PSP_slot_delta` for funclet frame type 4 for OSR: don't include osrPad.
3. Fix bug with funclet frame type 5 for `SP_to_FPLR_save_delta` using wrong aligned func size;
would be incorrect if one and two SP adjustment full frame aligned sizes are different (e.g.,
if two SP adjustment required two alignment slots and one SP adjustment thus required none).

* Fix default log color behavior when console is redirected (#70504)

* JIT: Model string literal objects as invariant and non-GLOB_REF (#70986)

* Model string literals as invariant/non GLOB_REF

* String literals are never null

* Add support for cross module inlining and cross module generic compilation to Crossgen2 (#68919)

* Add support for cross module inlining and cross module generic compilation to Crossgen2
- Refactor Module into ModuleBase and Module
  - The goal is to have allow a subset version of Module which can only hold refs, this is to be used by the manifest module in an R2R image to allow for version resilient cross module references.
  - Update handling of ModuleBase so that its used everywhere that tokens are parsed from R2R
  - Remove ENCODE_MODULE_ID_FOR_STATICS and ENCODE_ACTIVE_DEPENDENCY
    - These were only used for NGEN, and conflict with easy impelmentation for the ModuleBase concept
  - Remove locking in ENCODE_STRING_HANDLE processing, and tweak comments. Comments applied to the removed ngen based code, and the lock was only necessary for the old ngen thing.
  - Adjust ComputeLoaderModuleWorker for locating loader module
    - Follow comment more accurately, to avoid putting every generic into its definition module. This will make R2R function lookup able to find compiled instantiations in some cases. This may be what we want long term, it may not.
  - Remove MemberRefToDesc map and replace with LookupMap like the other token types. We no longer make use of the hot table, so this is more efficient
    - Also reduces complexity of implementation of ModuleBase

- Build fixup to describe a single method as a standalone blob of data
  - There are parallel implementations in Crossgen2 and in the runtime
  - They produce binary identical output
  - Basic R2RDump support for new fixup

- Adjust module indices used within the R2R format to support a module index which refers to the R2R manifest metadata. This requires bumping the R2R version to 6.2
  - Add a module index between the set of assembly refs in the index 0 module and the set of assembly refs in the R2R manifest metadata

- Adjust compilation dependency rules to include a few critical AsyncStateMachineBox methods

- Remove PEImage handling of native metadata which was duplicative

- Do not enable any more devirtualization than was already in use, even in the cross module compilation scenario. In particular, do not enable devirtualization of methods where the decl method isn't within the version bubble, even if the decl method could be represented with a cross-module reference token. (This could be fixed, but is out of scope for this initial investigation)

Make the compilation deterministic in this new model, even though we are generating new tokens on demand
  - Implement this by detecting when we need new tokens during a compile, and recompiling with new tokens when necessary
  - This may result in compiling the same code as much as twice

Compile the right set of methods with cross module inlining enabled
- Add support for compiling the called virtual methods on generic types
  - This catches the List<T> and Dictionary<TKey,TValue> scenarios

- Add command line switches to enable/disable the new behavior
  - By default the new behavior is not enabled

* Implement Vector128 version of System.Buffers.Text.Base64 DecodeFromUtf8 and EncodeToUtf8 (#70654)

* Implement Vector128 version of System.Buffers.Text.Base64.DecodeFromUtf8

Rework the SS3 into a Vector128 version, and add Arm64 support.

* SSE3 improvements

* Remove superfluous bitwise And

* Add comment to SimdShuffle

* Inline SimdShuffle

* Implement Vector128 version of System.Buffers.Text.Base64.EncodeToUtf8

* Ensure masking on SSE3

Change-Id: I319f94cfc51d0542ae4eb11a8d48b3eb8180553f
CustomizedGitHooks: yes

* Restore asserts and move zero inside the loop

* Neater C# code

Change-Id: I2cbe14f4228f8035e7d213b5b58815c4eee35563
CustomizedGitHooks: yes

* Make SimdShuffle consistent across X64 and Arm64

* Better looking multiply

* Use `gtEffectiveVal` for `GT_ADD` op1 in `optCreateAssertion` (#70228)

* Initial work for comma hoisting in cse

* Formatting

* Adding more ops to comma hoisting

* Set regnum

* Update optcse.cpp

* Using effectiveval instead

* Convert fallback path of GetCommandLineArgs to managed (#70608)

* P/Invoke definition

* Use P/Invoke in managed code

* Update managed call site

* Add test using private reflection

* Native command line should be superset of managed

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* [wasm] Enabled WasmTestOnBrowser run on Windows for Browser. (#70890)

* Enabled tests - no timeout with new ems. Keeping disabled tests failing from other reasons.

* Added @radical's suggestion.

* Test CI- enable test that are throwing in Debug.

* [wasm][debugger] Fix side effect on Firefox of getting bytes from loaded_files using debugger protocol (#70990)

* Fix 70983

* fix typo

* Fix compilation

* Add AddSystemd() and AddWindowsService() IServiceCollection extension methods (#68580)

* Add AddSystemd() IServiceCollection extension method

* Add AddWindowsService() IServiceCollection extension method

* Don't default to CWD if in C:\Windows\system32
- instead, when CWD is C:\Windows\system32 Hosting will use AppContext.BaseDirectory. This way Windows apps and services that are launched will work by default. HostApplicationBuilder.ContentRootPath can't be changed after construction, so setting it to a workable default for Windows apps.

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Martin Costello <martin@martincostello.com>
* Use RemoteExecutor

* Update src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostTests.cs

* Skip test on Windows nano server

* Respond to PR feedback

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Martin Costello <martin@martincostello.com>
* [main] Update dependencies from dotnet/runtime dotnet/xharness dotnet/icu dotnet/emsdk (#70991)

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

Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json
 From Version 7.0.0-preview.6.22312.5 -> To Version 7.0.0-preview.6.22319.5

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22314.1 -> To Version 1.0.0-prerelease.22320.1

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 7.0.0-preview.6.22313.1 -> To Version 7.0.0-preview.6.22320.2

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

Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
 From Version 7.0.0-preview.6.22313.1 -> To Version 7.0.0-preview.6.22320.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Windows/Arm64: Use 8.1 atomic instructions if they are available (#70921)

* Use Fast compareexchange, acquire/release

* working windows version

* remove printf

* some more #ifdef

* fix some #ifdef

* optimize EnterObjMonitorHelperSpin

* Remove FastInterlockedCompareExchange64 for now

* Add ZipArchiveEntry.IsEncrypted for password-protection detection (#70036)

* Add ZipArchiveEntry.IsEncrypted for password-protection detection

* Apply suggestions from code review

Co-authored-by: David Cantú <dacantu@microsoft.com>
* Run GenerateReferenceAssemblySource for System.IO.Compression

* Revert WriteAsync default parameter value removal

* Update DeflateStream.WriteAsync to include the default param value

* Revert unrelated change from GenerateReferenceAssemblySource

* Revert unrelated change after syncing with GenerateReferenceAssemblySource

Co-authored-by: David Cantú <dacantu@microsoft.com>
* Exposing IRootFunctions.Hypot and IRootFunctions.Root (#71010)

* Exposing IRootFunctions.Hypot and IRootFunctions.Root

* Adding tests for IRootFunctions.Hypot and IRootFunctions.Root

* Add TarEntry conversion constructors (#70325)

* ref: Conversion constructors

* src: Conversion constructors

* tests: Conversion constructors

* [wasm] Wasm.Build.Tests: disable tests failing on CI (#71020)

* [wasm] Wasm.Build.Tests: disable tests failing on CI

.. due to being oomkill'ed.

* [wasm] Don't fail the job when firefox tests fail, as they are known to be unstable

* Remove allocation in ImmutableArray Builder Sort (#70850)

* Remove allocation in ImmutableArray Builder Sort

`ImmutableArray<T>.Builder.Sort(Comparison<T> comparison)` allocates a new instance of `Comparer<T>` using `comparison`. Then `ArraySort` allocates a new delegate from `comparer.Compare`. Both allocations can be eliminated by calling `Array.Sort<T>(T[] array, Comparison<T> comparison)` directly.

* Sort only valid range of array

* Use MemoryExtensions.Sort where available.

* Update src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Builder.cs

Fix spelling mistake.

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
* [Android] Make sure AdditionalTimeZoneChecks trait is added to xunit-excludes (#70974)

The trait is supposed to be included in System.Runtime tests by default, but wasn't because the _withoutCategories property was in tests.props. As a result, the property was resolved before the .csproj properties. This fix moves the property definition to tests.targets.

Fixes #70482

* Use LastIndexOfAny in GetFileName_Windows (#71032)

* Avoid unnecessary allocations in SanitizeEntryFilePath (#71034)

* Fix Ordinal Ignore Case string compare (#71022)

* Move allocation of command line argument array to C# (#71021)

Also, avoid redundant allocation of managed string for each command line argument.

* Add markdown readme for System.Reflection.MetadataLoadContext (#70610)

* Create README.md

* set red zone size 512 for powerpc64. (#70885)

* Ensure consistent reflectability for generic methods (#70977)

If we have a method body for `SomeMethod<Foo>` and `SomeMethod<T>` was decided to be reflection-visible, ensure `SomeMethod<Foo>` is also reflection-visible.

* Implement NegotiateAuthentication API (#70720)

* WIP: Add implementation of NegotiateAuthentication

Switch System.Net.Http to use NegotiateAuthentication
Fix IsCompleted in managed NTLM implementation

* WIP: Update error code mapping

* Spanify input of GetOutgoingBlob

* Update comments

* Move NegotiateStreamPal.Encrypt/Decrypt to shared sources. Unix implementation already had them and they get trimmed anyway.

* Revert accidental change

* Build fixes.

* Fix error handling condition

* Update error mapping based on HttpListener usage.

* WIP: HttpListener test

* Move workaround from HttpListener to low-level SSPI code

* Fix build

* Clean up

* Revert "WIP: HttpListener test"

This…

* Revert "Sfh fix tests (#8)" (#9)

This reverts commit 5776aad0f1b35b6fdce1bca9407bcda4ed73e17f.

* Apply interop suggestions

* Verify non-nullability either of handle or path

* Small syntax fix

* Add null-validation

* Move population into private helper method

See comment by @stephentoub

* Fix null-handling

* Add more debug assertions

Co-Authored-By: David Cantú <jozkyy@gmail.com>
* Add code documentation

Adapted from MSDN

* Address documentation feedback

Co-Authored-By: David Cantú <jozkyy@gmail.com>
* Update src/libraries/System.Private.CoreLib/src/System/IO/File.cs

Co-authored-by: David Cantú <dacantu@microsoft.com>
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Co-authored-by: Brennan <brecon@microsoft.com>
Co-authored-by: Egor Bogatov <egorbo@gmail.com>
Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Co-authored-by: Pavel Savara <pavelsavara@microsoft.com>
Co-authored-by: Egor Chesakov <Egor.Chesakov@microsoft.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Co-authored-by: Andy Ayers <andya@microsoft.com>
Co-authored-by: Tomáš Rylek <trylek@microsoft.com>
Co-authored-by: Andrew Au <andrewau@microsoft.com>
Co-authored-by: Will Smith <lol.tihan@gmail.com>
Co-authored-by: Tlakaelel Axayakatl Ceja <tlakaelel.ceja@microsoft.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Co-authored-by: Peter Sollich <petersol@microsoft.com>
Co-authored-by: Ilona Tomkowicz <32700855+ilonatommy@users.noreply.github.com>
Co-authored-by: Maxim Lipnin <v-maxlip@microsoft.com>
Co-authored-by: Marek Fišera <mara@neptuo.com>
Co-authored-by: Pavel Savara <pavel.savara@gmail.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
Co-authored-by: yowl <scott.waye@hubse.com>
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Parker Bibus <parkerbibus@microsoft.com>
Co-authored-by: Jan Vorlicek <jan.vorlicek@volny.cz>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: JamesNK <JamesNK@users.noreply.github.com>
Co-authored-by: Tanner Gooding <tagoo@outlook.com>
Co-authored-by: Wrzucher <maarraa@mail.ru>
Co-authored-by: Kevin Jones <kevin@vcsjones.com>
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Johan Lorensson <lateralusx.github@gmail.com>
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Přemek Vysoký <premek.vysoky@microsoft.com>
Co-authored-by: Mike McLaughlin <mikem@microsoft.com>
Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Co-authored-by: Thays Grazia <thaystg@gmail.com>
Co-authored-by: Andy Gocke <angocke@microsoft.com>
Co-authored-by: Maksym Koshovyi <maximkoshevoi61@gmail.com>
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Co-authored-by: Pavel Ivanov <ivanovpavelalex45@gmail.com>
Co-authored-by: Floris Westerman <me@floriswesterman.nl>
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Co-authored-by: Vladimir Sadov <vsadov@microsoft.com>
Co-authored-by: Julius Hardt <julius@postfach-hardt.de>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: David Wrighton <davidwr@microsoft.com>
Co-authored-by: Wraith <wraith2@gmail.com>
Co-authored-by: Carlos Sanchez <1175054+carlossanlop@users.noreply.github.com>
Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
Co-authored-by: Eaton Zveare <eaton@eaton-works.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Co-authored-by: Christopher Moore <chrisdcmoore@users.noreply.github.com>
Co-authored-by: Katya Sokolova <esokolov@microsoft.com>
Co-authored-by: Joshua Peterson <joshuap@unity3d.com>
Co-authored-by: imhameed <imhameed@microsoft.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Gleb Balykov <g.balykov@samsung.com>
Co-authored-by: Mitchell Hwang <16830051+mdh1418@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: Jo Shields <directhex@apebox.org>
Co-authored-by: Maoni Stephens <Maoni0@users.noreply.github.com>
Co-authored-by: Kunal Pathak <Kunal.Pathak@microsoft.com>
Co-authored-by: Koundinya Veluri <kouvel@users.noreply.github.com>
Co-authored-by: Steve Pfister <steveisok@users.noreply.github.com>
Co-authored-by: Steve Harter <steveharter@users.noreply.github.com>
Co-authored-by: Bradley Grainger <bgrainger@gmail.com>
Co-authored-by: Roman Marusyk <Marusyk@users.noreply.github.com>
Co-authored-by: Robert Henry <robhenry@microsoft.com>
Co-authored-by: Maryam Ariyan <maryam.ariyan@microsoft.com>
Co-authored-by: Bar Arnon <i3arnon@gmail.com>
Co-authored-by: Radek Zikmund <32671551+rzikm@users.noreply.github.com>
Co-authored-by: Filip Navara <filip.navara@gmail.com>
Co-authored-by: Andrii Kurdiumov <kant2002@gmail.com>
Co-authored-by: madelson <1269046+madelson@users.noreply.github.com>
Co-authored-by: Aleksey Kliger (λgeek) <alklig@microsoft.com>
Co-authored-by: Vladimir Djurić <vladimir@djuric.si>
Co-authored-by: vdjuric <vladimir@LEGION21.localdomain>
Co-authored-by: Marie Píchová <11718369+ManickaP@users.noreply.github.com>
Co-authored-by: Meri Khamoyan <96171496+mkhamoyan@users.noreply.github.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Fred Silberberg <frsilb@microsoft.com>
Co-authored-by: Tarek Mahmoud Sayed <tarekms@microsoft.com>
Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
Co-authored-by: Tomas Weinfurt <tweinfurt@yahoo.com>
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Katelyn Gadd <kg@luminance.org>
Co-authored-by: Shubhanshu Saxena <54344426+shubhanshu02@users.noreply.github.com>
Co-authored-by: Stephen Toub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: David Cantú <jozkyy@gmail.com>
Co-authored-by: Levi Broderick <GrabYourPitchforks@users.noreply.github.com>
Co-authored-by: Filip Navara <navara@emclient.com>
Co-authored-by: Huo Yaoyuan <huoyaoyuan@hotmail.com>
Co-authored-by: Dennis Yemelyanov <10681271+dennis-yemelyanov@users.noreply.github.com>
Co-authored-by: Badre BSAILA <54767641+pedrobsaila@users.noreply.github.com>
Co-authored-by: Buyaa Namnan <bunamnan@microsoft.com>
Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
Co-authored-by: Tlakaelel Axayakatl Ceja <tlakaelel_axayakatl@outlook.com>
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
Co-authored-by: Lakshan Fernando <lakshanf@hotmail.com>
Co-authored-by: Aman Khalid <t-amankhalid@microsoft.com>
Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com>
Co-authored-by: Joni Aromaa <me@joniaromaa.fi>
Co-authored-by: Eduardo Velarde <32459232+eduardo-vp@users.noreply.github.com>
Co-authored-by: Mikhail Kurinnoi <m.kurinnoi@samsung.com>
Co-authored-by: Sychev Vadim <svd-main@outlook.com>
Co-authored-by: Steve Dunn <steve@dunnhq.com>
Co-authored-by: Vikas Gupta <93921236+vikasgupta8@users.noreply.github.com>
Co-authored-by: Alhad Deshpande <Alhad.Deshpande1@ibm.com>
Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
Co-authored-by: Alan Hayward <a74nh@users.noreply.github.com>
Co-authored-by: Stephen Halter <halter73@gmail.com>
Co-authored-by: Martin Costello <martin@martincostello.com>
Co-authored-by: Gregory Bell <65985703+grbell-ms@users.noreply.github.com>
Co-authored-by: MSDN.WhiteKnight <35516665+MSDN-WhiteKnight@users.noreply.github.com>
Co-authored-by: Anton Firszov <antonfir@gmail.com>
Co-authored-by: Ivan Povazan <55002338+ivanpovazan@users.noreply.github.com>
Co-authored-by: Jérôme Laban <jerome.laban@nventive.com>
Co-authored-by: Hyungju Lee <leee.lee@samsung.com>
Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>
Co-authored-by: panguye <105525993+panguye@users.noreply.github.com>
Co-authored-by: William Godbe <wigodbe@microsoft.com>
2 years agoUpdate dependencies from https://github.com/dotnet/linker build 20220712.1 (#72013)
dotnet-maestro[bot] [Tue, 12 Jul 2022 21:19:07 +0000 (16:19 -0500)]
Update dependencies from https://github.com/dotnet/linker build 20220712.1 (#72013)

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22359.1 -> To Version 7.0.100-1.22362.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoRegression test for GitHub issue #71319 (#71461)
Tomáš Rylek [Tue, 12 Jul 2022 21:03:01 +0000 (23:03 +0200)]
Regression test for GitHub issue #71319 (#71461)

* Regression test for GitHub issue #71319

* Fix runtime assertion failure due to wrong GC mode

* Disable the new regression test on Mono with issue #71910

2 years agoImplement new QuicException proposal (#71432)
Radek Zikmund [Tue, 12 Jul 2022 20:46:54 +0000 (22:46 +0200)]
Implement new QuicException proposal (#71432)

* Add QuicException as in proposal

* Map other MsQuic errors to QuicException

* Fix System.Net.Http

* Always set HResult in QUIC-related exception

* Fix possible incorrect exception when writing into aborted stream

* Code review feedback

* Fix ref files

* Use latest generated interop

* Remove MsQuicException

* Code review feedback

* Remove TODO

* move ThrowHelper to Internal

* Code review changes

* Minor change

2 years agofixes #71295 (#71924)
Tamás Turnyánszki [Tue, 12 Jul 2022 20:44:17 +0000 (22:44 +0200)]
fixes #71295 (#71924)

2 years agoOverride ReadAsync and WriteAsync methods on ConsoleStream. (#71971)
Eric Erhardt [Tue, 12 Jul 2022 20:04:25 +0000 (14:04 -0600)]
Override ReadAsync and WriteAsync methods on ConsoleStream. (#71971)

* Override ReadAsync and WriteAsync methods on ConsoleStream.

The base Stream class implements these overloads by renting a buffer,
creating a ReadWriteTask, and copying data as necessary.

Instead, ConsoleStreams can just override these Async methods and synchronously
call the underlying OS API.

Add tests to verify that input and output console streams behave correctly.

* Fix stdin tests to only run on supported platforms.

2 years agoAdd clrgc to sharedFx (#72032)
Manish Godse [Tue, 12 Jul 2022 19:47:24 +0000 (12:47 -0700)]
Add clrgc to sharedFx (#72032)

2 years agoImplement HTTP/2 WebSockets (#70895)
Katya Sokolova [Tue, 12 Jul 2022 19:31:59 +0000 (21:31 +0200)]
Implement HTTP/2 WebSockets (#70895)

* downgrade proposal for HttpClient

* HttpClient to handle ws over h2

* ClientWebSocket to handle ws over h2

* Add property for protocol header and remove it from known headers

* Update src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs

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

* Rename HttpVersion and HttpVersionPolicy

* Apply suggestions from code review

Co-authored-by: Chris Ross <Tratcher@Outlook.com>
* address review feedback

* address review feedback

* address review feedback

* Apply suggestions from code review

Co-authored-by: Chris Ross <Tratcher@Outlook.com>
* fix race condition on setting enable connect

* inherit h2 read and writes streams

* Apply suggestions from code review

Co-authored-by: Chris Ross <Tratcher@Outlook.com>
* fix H2PACK encoding issue

* add timeout for waiting settings task

* generalized settings received task

* Update src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs

Co-authored-by: Chris Ross <Tratcher@Outlook.com>
* Fixing HttpStream tests

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Adapt test to ValueTask.FromException

* Apply suggestions from code review

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Adding connect tests

* Apply suggestions from code review

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
* feedback + skip tests on browser

* Feedback + test for websocket stream

* Update src/libraries/System.Net.Http/src/Resources/Strings.resx

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

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Chris Ross <Tratcher@Outlook.com>
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
2 years ago[wasm] Add new `wasm-experimental` workload (#71974)
Ankit Jain [Tue, 12 Jul 2022 19:22:49 +0000 (15:22 -0400)]
[wasm] Add new `wasm-experimental` workload (#71974)

* InstallWorkloadFromArtifact: Support multiple workloads

* [wasm] Move the templates pack to a new workload - wasm-experimental

2 years agoDelete unrelated test file from System.Console.Tests (#72033)
Stephen Toub [Tue, 12 Jul 2022 19:19:25 +0000 (15:19 -0400)]
Delete unrelated test file from System.Console.Tests (#72033)

2 years agoDisable FSW test on OSX (#72029)
David Cantú [Tue, 12 Jul 2022 18:51:49 +0000 (13:51 -0500)]
Disable FSW test on OSX (#72029)

2 years agoAvoid OOM in very large functions when checking LIR (#71066)
SingleAccretion [Tue, 12 Jul 2022 18:07:59 +0000 (21:07 +0300)]
Avoid OOM in very large functions when checking LIR (#71066)

Reuse lists (now hashtables) of outstanding reads in "CheckLclVarSemanticsHelper".

2 years ago[Android] Port getifaddrs implementation from Xamarin.Android (#71943)
Simon Rozsival [Tue, 12 Jul 2022 17:57:52 +0000 (19:57 +0200)]
[Android] Port getifaddrs implementation from Xamarin.Android (#71943)

In recent Android versions the data returned by getifaddrs is invalid and doesn't allow us to implement System.Net.NetworkInformation.GetAllNetworkInterfaces(). It's possible to reimplement getifaddrs using Netlink and there's already an existing implementation in Xamarin.Android.

Fixes xamarin/xamarin-android#6973
Ref #62780
Ref #51303

2 years agoRemoved JIT (uint) cast workaround to elide bound-checks in CoreLib (#67448)
Günther Foidl [Tue, 12 Jul 2022 17:54:20 +0000 (19:54 +0200)]
Removed JIT (uint) cast workaround to elide bound-checks in CoreLib (#67448)

* Removed (uint) cast workaround in CoreLib, annotated missing places with TODOs

* Fixed the bug I introduced in TimeSpanParse.TimeSpanTokenizer

* Use uint-cast on both sided for clarity

Cf. https://github.com/dotnet/runtime/pull/67448#discussion_r841082992

* Use uint-division in BitHelper as the JIT can produce more efficient code

Cf. https://github.com/dotnet/runtime/pull/67448#discussion_r841239729

* Don't have struct local in ValueStringBuilder due to hitting JIT optimization limits

Cf. https://github.com/dotnet/runtime/pull/67448#discussion_r841129465

* BitHelper with uint division and without Math.DivRem for even better codegen

AggressiveInlining isn't needed anymore, also the JIT recognizes the _span field, so no local Span is needed here.

* BitHelper needs local Span due to regression in jit-diff otherwise

* Added Debug.Asserts to BitHelper's method that take bitPosition

* BitHelper: comment for workaround to tracking issue

2 years agoAdd logic for selecting the right version of pgort140 (#71968)
Drew Scoggins [Tue, 12 Jul 2022 17:33:08 +0000 (10:33 -0700)]
Add logic for selecting the right version of pgort140 (#71968)

* Add logic for selecting the right version of pgort140

* Address PR feedback

* Add logic for x86 pgort

* Remove dead code

2 years agoJIT: Disallow pushing narrowing casts into GC operands (#72003)
Jakob Botsch Nielsen [Tue, 12 Jul 2022 17:11:34 +0000 (19:11 +0200)]
JIT: Disallow pushing narrowing casts into GC operands (#72003)

Fix #71987

2 years agoExpect UnauthorizedAccessException in tvOS if extracting fifo from tar without elevat...
Carlos Sanchez [Tue, 12 Jul 2022 17:10:26 +0000 (10:10 -0700)]
Expect UnauthorizedAccessException in tvOS if extracting fifo from tar without elevation (#71175)

* Add ConditionalFact to 'unelevated' tests to ensure they are not executed in elevated mode.

* Fix test that was incorrectly executed async

2 years agoAdd TAR tests that verify ExtractToFile works with special files. (#71988)
Carlos Sanchez [Tue, 12 Jul 2022 17:06:22 +0000 (10:06 -0700)]
Add TAR tests that verify ExtractToFile works with special files. (#71988)

2 years agoFix leaks caused by mismatch of CFRelease/CFRetain with SecItemCopyMatching
Marius Ungureanu [Tue, 12 Jul 2022 16:57:24 +0000 (19:57 +0300)]
Fix leaks caused by mismatch of CFRelease/CFRetain with SecItemCopyMatching