platform/upstream/dotnet/runtime.git
16 months agoEnable ExtendedProtectionPolicy in generic System.Net.Security build (#88871)
Filip Navara [Mon, 17 Jul 2023 17:18:28 +0000 (19:18 +0200)]
Enable ExtendedProtectionPolicy in generic System.Net.Security build (#88871)

* Enable ExtendedProtectionPolicy in generic System.Net.Security build (used on browser)

* Update tests

16 months agoRevert "[wasm][debugger] Remove usage of GeneratedRegex (#86911)" (#89022)
Thays Grazia [Mon, 17 Jul 2023 17:09:57 +0000 (14:09 -0300)]
Revert "[wasm][debugger] Remove usage of GeneratedRegex (#86911)" (#89022)

This reverts commit 3fc0f5fd610f73f0397cf40f68bf6e13787a8f2c.

16 months agoUpdate dependencies from https://github.com/dotnet/runtime build 20230714.11 (#88997)
dotnet-maestro[bot] [Mon, 17 Jul 2023 16:34:00 +0000 (11:34 -0500)]
Update dependencies from https://github.com/dotnet/runtime build 20230714.11 (#88997)

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

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
16 months agoFix naming conflict resolution algorithm for linear interface hierarchies. (#88916)
Eirik Tsarpalis [Mon, 17 Jul 2023 16:12:07 +0000 (17:12 +0100)]
Fix naming conflict resolution algorithm for linear interface hierarchies. (#88916)

16 months agoAscii.Equals: remove redundant OR (#88993)
Adam Sitnik [Mon, 17 Jul 2023 16:07:27 +0000 (18:07 +0200)]
Ascii.Equals: remove redundant OR (#88993)

both inputs are equal here so if one of them is non ASCII, then the other one is too

16 months agoSimplify KeyAnalyzer (#88709)
Marc Brooks [Mon, 17 Jul 2023 15:14:13 +0000 (10:14 -0500)]
Simplify KeyAnalyzer (#88709)

The assignment `bool canSwitchIgnoreCaseToCaseSensitive = ignoreCase;` can just be `bool canSwitchIgnoreCaseToCaseSensitive = true;` since we're just tested that value a couple lines up

16 months agoRemove runtime-ioslike-mono and runtime-ioslike-coreclr pipelines (#88999)
Milos Kotlar [Mon, 17 Jul 2023 14:36:48 +0000 (16:36 +0200)]
Remove runtime-ioslike-mono and runtime-ioslike-coreclr pipelines (#88999)

16 months agoAdded QuicException.TransportErrorCode (#88550)
Alexander Radchenko [Mon, 17 Jul 2023 14:21:36 +0000 (20:21 +0600)]
Added QuicException.TransportErrorCode (#88550)

* Added QuicException.TransportErrorCode

* Code review by Tomas Weinfurt @wfurt

* @ManickaP Marie Píchová code review

* @ManickaP Marie Píchová code review

* @ManickaP Marie Píchová code review

* Feedback about error code casts

---------

Co-authored-by: ManickaP <mapichov@microsoft.com>
16 months agoRemove extra checks for known types in log formatter (#89000)
David Fowler [Mon, 17 Jul 2023 14:21:20 +0000 (10:21 -0400)]
Remove extra checks for known types in log formatter (#89000)

Turns out the JIT will not box in tier 1, this was trying to optimize tier 0 code.

16 months agoFix HTTP/1.1 concurrent request content read race condition (#86715)
Miha Zupan [Mon, 17 Jul 2023 14:11:14 +0000 (16:11 +0200)]
Fix HTTP/1.1 concurrent request content read race condition (#86715)

16 months agoAdd support for tvOS in os detection (#88988)
Milos Kotlar [Mon, 17 Jul 2023 14:05:35 +0000 (16:05 +0200)]
Add support for tvOS in os detection (#88988)

16 months agoConfigure SocketsHttpHandler for HttpClientFactory with IConfiguration (#88864)
Natalia Kondratyeva [Mon, 17 Jul 2023 13:33:18 +0000 (15:33 +0200)]
Configure SocketsHttpHandler for HttpClientFactory with IConfiguration (#88864)

Adds UseSocketsHttpHandler extension method for IHttpClientBuilder to set SocketsHttpHandler as a primary handler for a named HttpClient. Adds ISocketsHttpHandlerBuilder to configure the handler from IConfiguration and/or via a callback.

The API is .NET 5.0+ only.

Fixes #84075

16 months agoJIT: Optimize logical right shifts for byte values on XArch (#86841)
Miha Zupan [Mon, 17 Jul 2023 13:22:53 +0000 (15:22 +0200)]
JIT: Optimize logical right shifts for byte values on XArch (#86841)

16 months agousing the same configuration used by BlazorDevServer (#88919)
Thays Grazia [Mon, 17 Jul 2023 13:12:55 +0000 (10:12 -0300)]
using the same configuration used by BlazorDevServer (#88919)

16 months ago[wasm] Move code around in WBT in preparation for fixes, and cleanups (#88980)
Ankit Jain [Mon, 17 Jul 2023 12:29:31 +0000 (08:29 -0400)]
[wasm] Move code around in WBT in preparation for fixes, and cleanups (#88980)

* WBT: Move some common methods to TestUtils.cs

* WBT: Add new project type specific base classes for the tests

.. derived from `BuildTestBase.

* WBT: Move blazor specific code from BuildTestBase into

.. BlazorWasmProjectProvider, and BlazorWasmTestBase. This commit avoids
doing any cleanup, and just moves code around.

* WBT: Move more code from BuildTestBase to the respective provider, and test classes

* WBT: use field for buildenvironment

* Move blazor files to Blazor/

* move WasmTemplateTests.cs

* fix build

* Move StatFiles to provider

* Fix build

* fix build

* Fix wasi build

* WBT: Update list of tests

* Fix UnixFilePermissions test to account for the emscripten cache package

16 months agoPoolable / Resettable CBOR Readers (#88104)
Alexander Radchenko [Mon, 17 Jul 2023 09:09:32 +0000 (15:09 +0600)]
Poolable / Resettable CBOR Readers (#88104)

Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
16 months agoDon't crash the trim analyzer if it finds unrecognized nodes in the input (#88836)
Vitek Karas [Mon, 17 Jul 2023 09:06:05 +0000 (02:06 -0700)]
Don't crash the trim analyzer if it finds unrecognized nodes in the input (#88836)

New versions of the compiler will introduce new nodes and values. The analyzer can never be 100% in sycn with the compiler, so it needs to be able to gracefully handle nodes it doesn't know anything about.

Change the several throws to just Debug.Fail. For end-users if we hit unrecognized node, we will effectively ignore that part of the code. So not 100% precise, but the analyzer will never be 100% regardles.

This is in response to #88684, but we can't add tests for it yet because the necessary compiler changes are in Preview 6, the repo is still on Preview 5.

16 months ago[mono][tests] Add support for mobile devices in processinfo3 test (#88655)
Milos Kotlar [Mon, 17 Jul 2023 08:56:35 +0000 (10:56 +0200)]
[mono][tests] Add support for mobile devices in processinfo3 test (#88655)

* Add support for devices in processinfo3 test

* Add support for android portable RID OS

16 months agoRun NativeAOT tests when ILLink changes (#88934)
Vitek Karas [Mon, 17 Jul 2023 08:06:52 +0000 (01:06 -0700)]
Run NativeAOT tests when ILLink changes (#88934)

NativeAOT uses code from ILLinker - specifically we share lot of tests. So if these change we want to make sure it didn't break their usage in NativeAOT.

The comment change in the tests is to trigger this new rule in the CI - but we can keep the comment regardless.

16 months ago[NativeAOT] Fix GCDesc computation (#88927)
SingleAccretion [Mon, 17 Jul 2023 07:04:13 +0000 (10:04 +0300)]
[NativeAOT] Fix GCDesc computation (#88927)

* Fix GCDesc computation

https://github.com/dotnet/runtime/pull/86877 appears to have introduced a bug in the GCDesc computation.

Consider the following structure layout (we are on 32 bit):

 struct {
     int X1;
     int X2;
     Object Obj;
     int X3;
 }

Crucially, the object reference in this struct is placed at a non-zero offset, which means that in an
array GCDesc, sizeof(X1 + X2) aka 8 will be added to the "base size" of the object. Since we have one
and only series (of GC pointers), it will also be the last. Its "skip" was computed as:

 bitfield.Count (4) - last (3) = 1

Which is clearly incorrect, as we need to skip 3 pointers when considering the shifted array layout:

 <Obj, X3][X1, X2, Obj, X3][X1, X2, Obj, X3]...
     |            |
     [Correct skip]

In effect, for the last series, we must consider the skip to include the delta we have included into
the base size, which code before #86877 did, although wrongly - for MD arrays - as well. This change
restores a fixed version of it.

* Add a test

Verified to fail (hit a GC assert) before and pass after.

* (actually make it compile)

16 months agoUse optimized GetOffset in Range GetOffsetAndLength (#87317)
Jesper Meyer [Mon, 17 Jul 2023 03:39:54 +0000 (05:39 +0200)]
Use optimized GetOffset in Range GetOffsetAndLength (#87317)

16 months agoUpdate dependencies from https://github.com/dotnet/arcade build 20230714.2 (#88947)
dotnet-maestro[bot] [Mon, 17 Jul 2023 02:41:17 +0000 (21:41 -0500)]
Update dependencies from https://github.com/dotnet/arcade build 20230714.2 (#88947)

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

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
16 months ago[main] Update dependencies from dotnet/roslyn (#88188)
dotnet-maestro[bot] [Mon, 17 Jul 2023 02:40:24 +0000 (21:40 -0500)]
[main] Update dependencies from dotnet/roslyn (#88188)

* Update dependencies from https://github.com/dotnet/roslyn build 20230629.1

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

* Update dependencies from https://github.com/dotnet/roslyn build 20230710.7

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

* Update dependencies from https://github.com/dotnet/roslyn build 20230711.9

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

* Disable InlineArrayInvalid due to https://github.com/dotnet/runtime/issues/88861

* Disable InlineArrayValid also due to

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

```
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(184,28): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(185,28): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(201,20): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(202,20): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(209,36): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(210,40): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(232,40): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(233,44): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(245,20): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(246,20): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(253,36): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(254,40): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(259,20): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(260,20): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(294,29): error CS0306: The type 'Span<object>' may not be used as a type argument [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(294,29): error CS0193: The * or -> operator must be applied to a pointer [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(295,31): error CS0306: The type 'Span<object>' may not be used as a type argument [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(295,30): error CS0193: The * or -> operator must be applied to a pointer [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(309,14): error CS0306: The type 'Span<object>' may not be used as a type argument [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(309,13): error CS0193: The * or -> operator must be applied to a pointer [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(429,43): error CS1061: '(object, short)' does not contain a definition for 'o' and no accessible extension method 'o' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.cs(430,47): error CS1061: '(object, short)' does not contain a definition for 's' and no accessible extension method 's' accepting a first argument of type '(object, short)' could be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/InlineArray/InlineArrayValid.csproj] [/__w/1/s/src/tests/build.proj]
/__w/1/s/src/tests/Common/dir.traversal.targets(25,5): error : (No message specified) [/__w/1/s/src/tests/build.proj] [/__w/1/s/src/tests/build.proj]
```

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
16 months ago[mono] Some UnsafeAccessorAttribute support for methods and constructors (#88925)
Aleksey Kliger (λgeek) [Mon, 17 Jul 2023 00:25:35 +0000 (20:25 -0400)]
[mono] Some UnsafeAccessorAttribute support for methods and constructors (#88925)

* first cut at UnsafeAccessorKind.Constructor

* Implement UnsafeAccessorKind.Method and StaticMethod

* remove debug output

* change some asserts to BadImageFormatException

* enable some tests

* move CallAmbiguousMethod to a separate test case

* Fixup error checking; forbid generics

* match CoreCLR: callvirt for instance methods call for static

* fixups to pass new tests from https://github.com/dotnet/runtime/pull/88268

* Make CallCtorAsMethod tests work

Co-authored-by: Aaron Robinson <arobins@microsoft.com>
16 months agoFix behavior of default interfaces interacting with constraints (#88932)
David Wrighton [Sun, 16 Jul 2023 22:10:55 +0000 (15:10 -0700)]
Fix behavior of default interfaces interacting with constraints (#88932)

* Fix stack overflow caused by incorrect handling of class load levels

* Address code review feedback on the test

16 months agoFix `TimeZoneInfo.Equals` and `TimeZoneInfo.HasSameRules` (#88869)
Michael Render [Sun, 16 Jul 2023 21:42:23 +0000 (17:42 -0400)]
Fix `TimeZoneInfo.Equals` and `TimeZoneInfo.HasSameRules` (#88869)

16 months ago[RISC-V] Fix GitHub_* tests (#88640)
Dong-Heon Jung [Sun, 16 Jul 2023 20:17:24 +0000 (05:17 +0900)]
[RISC-V] Fix GitHub_* tests (#88640)

* [RISC-V] Fix GitHub_17585 test failure

* [RISC-V] Fix GitHub_23147 test failure

* [RISC-V] Remove lvIsHfaRegArg assertion

* [RISC-V] Update

16 months agoImprove StringValues, StringSegment and IChangeToken debugging (#88960)
James Newton-King [Sun, 16 Jul 2023 18:42:08 +0000 (02:42 +0800)]
Improve StringValues, StringSegment and IChangeToken debugging (#88960)

16 months agoImprove Logger<T> debugging (#88959)
James Newton-King [Sun, 16 Jul 2023 18:35:48 +0000 (02:35 +0800)]
Improve Logger<T> debugging (#88959)

16 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 222242...
dotnet bot [Sun, 16 Jul 2023 14:42:13 +0000 (16:42 +0200)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2222423 (#88935)

16 months agoOptimize scalar conversions with AVX512 (#84384)
Khushal Modi [Sun, 16 Jul 2023 13:55:27 +0000 (06:55 -0700)]
Optimize scalar conversions with AVX512 (#84384)

* fixing the JITDbl2Ulng helper function. The new AVX512 instruction vcvtsd2usi uses ulong.max_value to show FPE for negative, NAN and ulong_max + 1 values.

* Making changes to the library test case expected output based on the architecture. This is because we have changed the JITDbl2Ulng helper function to mimic the new IEEE compliant AVX512 instruction vcvtsd2usi. In the process, we needed to update the library test case because the default Floating Point Error (FPE) value for the new instruction is different from the default MSVC FPE value i.e. 0.

* Fixing the JITDbl2Ulng helper function. Also making sure that we are not changing the library test case but the API to make sure NaN cases are handled.

* reverting jitformat

* Adding a truncate function to the Dbl2Ulng helper to make sure we avoid handling edge cases (-1,0) separately inside the helper.

* Adding code to handle vectorized conversion for float/double to/from ulong/uint

* reverting changes for float to ulong

* enabling float to ulong conversion

* Making change to set w1 bit for evex

* merging with main. Picking up hwintrinsiclistxarh from main
trying to return EA_4BYTE for INS_vcvttss2usi to make sure that we read dword and not qword for float to ulong

* jit format

* Splitting vcvttss2usi to vcvttss2usi32 and vcvttss2usi64. Also adding a special handling for vcvttss2usi64 to make sure we read only dword instead of qword for float to ulong conversion

* undoing jitformat changes due to merge error

* removing unused code and correcting throughput and latency information for vcvttsd2usi, vcvttusi2sd32/64

* correcting throughput and latency for vcvttss2usi32 and placing it with other similar instructions

* formatting

* formatting

* updating comments

* updating code for github comments. Using compIsaSupportedDebugOnly for nowayasserts and also checking for float and doubel both in lowercast for overflow and conversion to ulong

* reverting to original checks for ISA supported Debug only because they are not available in release mode

* running jitformat

* running jitformat

* combine the 2 nodes GT_CAST(GT_CAST(TYP_ULONG, TYP_DOUBLE), TYP_FLOAT) into a single node i.e. GT_CAST(TYP_ULONG, TYP_FLOAT)

* merging with main and updating hwintrinsiclistxarch to take into consideration 32bit and 64 bit version of vcvttss2usi.

* Changing noway_assert to assert to make sure compOpportunisticallyDependsOn only runs in debug mode.

* running jitformat

* Changing compOpportunisticallyDependsOn to compIsaSupportedDebugOnly in asserts aka code review changes

* Making code review changes. Moving around the comOpportunisticallyDependsOn checks to make sure they are ran only if we need AVX512. These checks being costly, moving them to the innermost checks in nested if checks.

* FCALL_CONTRACT should be only used on FCalls itself

* Making paralle changes to JITHelper in MathHelper for native AOT

* resolving regression issues

* Rolling back changes for double/float -> ulong

* Rolling back changes for double/float -> ulong

* Reverting ouf_or_range_fp_conversion to original version

* Reverting ouf_or_range_fp_conversion to original version

* Reverting jithelpers.cpp to original versino

* Reverting jithelpers.cpp to original version

* Changind comments, reverting asserts, skipping to change node for cast

* addressing review comments

* Update src/coreclr/jit/morph.cpp

---------

Co-authored-by: Tanner Gooding <tagoo@outlook.com>
16 months ago[Mono]: Add dotnet-gcdump support. (#88634)
Johan Lorensson [Sun, 16 Jul 2023 10:50:44 +0000 (12:50 +0200)]
[Mono]: Add dotnet-gcdump support. (#88634)

Add support for dotnet-gcdump on Mono.

New GC events consumed by dotnet-gcdump has been added to the new ep-rt-mono-runtime-provider.c source file.

Disable experimental EventPipe mono profiler provider by default to preserve resources. It is possible to re-enable it by setting the following env variable, MONO_DIAGNOSTICS=--diagnostic-mono-profiler=enable.

16 months agoFix SelectLocalIndirTransform to take offset into account (#88951)
Egor Bogatov [Sun, 16 Jul 2023 09:50:14 +0000 (11:50 +0200)]
Fix SelectLocalIndirTransform to take offset into account (#88951)

16 months agoFix genPutArgStkFieldList for SIMD12 (#88920)
Egor Bogatov [Sat, 15 Jul 2023 19:26:43 +0000 (21:26 +0200)]
Fix genPutArgStkFieldList for SIMD12 (#88920)

16 months agoAdd System.Net.NameResolution metrics (#88773)
Miha Zupan [Sat, 15 Jul 2023 18:37:53 +0000 (20:37 +0200)]
Add System.Net.NameResolution metrics (#88773)

* Add System.Net.NameResolution metrics

* Avoid potential race condition in test

* Fix metrics counter firing twice when called from RunAsync without telemetry

* Add an extra assert

* More RemoteExecutor

16 months ago[browser] mono_exit improvements (#88387)
Pavel Savara [Sat, 15 Jul 2023 05:22:09 +0000 (07:22 +0200)]
[browser] mono_exit improvements (#88387)

16 months agoExclude unnecessary artifacts from the Native AOT sample app bundle (#88931)
Milos Kotlar [Sat, 15 Jul 2023 03:06:38 +0000 (05:06 +0200)]
Exclude unnecessary artifacts from the Native AOT sample app bundle (#88931)

16 months agoFix use-out-of-scope in signature comparison (#88928)
Jeremy Koritzinsky [Sat, 15 Jul 2023 02:05:45 +0000 (19:05 -0700)]
Fix use-out-of-scope in signature comparison (#88928)

* Propagate token list to callers by copying instead of passing an out-of-scope address

* Create a temp token list when we create a temp compare state.

* Update the default constructor of CompareState to set a more useful empty state that won't segfault.

* Revert "Update the default constructor of CompareState to set a more useful empty state that won't segfault."

This reverts commit 28b3fd5dbd66acb9f524d87758fc8efef78cb17d.

* Fix last case of using the default constructor in prestub.cpp

16 months agoAdd public MethodInvoker and ConstructorInvoker classes (#88415)
Steve Harter [Sat, 15 Jul 2023 01:35:47 +0000 (20:35 -0500)]
Add public MethodInvoker and ConstructorInvoker classes (#88415)

16 months agoTotal time in GC counter (#88699)
Andrew Au [Fri, 14 Jul 2023 23:35:08 +0000 (16:35 -0700)]
Total time in GC counter (#88699)

Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
16 months agoAdd SocketsHttpHandler connection metrics (#88893)
Miha Zupan [Fri, 14 Jul 2023 23:14:20 +0000 (01:14 +0200)]
Add SocketsHttpHandler connection metrics (#88893)

* Add SocketsHttpHandler connection metrics

* PR feedback

* Improve assert around _originAuthority

* Typo

16 months agoMake firing of ETW events in nativeaot opt-in via the enabled/disabled lib (#88800)
Elinor Fung [Fri, 14 Jul 2023 20:58:24 +0000 (13:58 -0700)]
Make firing of ETW events in nativeaot opt-in via the enabled/disabled lib (#88800)

16 months ago[wasm] Re-enable JSON tests (#88883)
Katelyn Gadd [Fri, 14 Jul 2023 20:24:21 +0000 (13:24 -0700)]
[wasm] Re-enable JSON tests (#88883)

Should be fine to do this since #88876 was merged.

16 months agoJIT: Enabled embedded broadcast for binary ops (#87946)
Ruihan-Yin [Fri, 14 Jul 2023 20:20:26 +0000 (13:20 -0700)]
JIT: Enabled embedded broadcast for binary ops (#87946)

* Enabled embedded broadcast for the following ops:
and, andn, or, xor,
min, max,
div, mul, mull, sub,
variable shiftleftlogical/rightarithmetic/rightlogical

* Bug fix:
 JIT used to use a uniform intrinsic for bitwise operations with all data
 types, embedded broadcast is sensitive to input size in this case,
 adding a helper to let emitter aware when input size is long/ulong.

* reset the instruction in the later phase
when embedded broadcast is actually enabled

* filter irrelevant data type in embedded broadcast
There are cases when broadcast node are falsely contained by a embedded
broadcast compatible node, while the data type is actually not supported
Adding extra logics to avoid this situation.

* update the condition on instruction reset:
instructions with either long or ulong as basetype should be reset to
qword instructions.

* Apply format patch

* Resolve reviews:
make the typecheck based on broadcast node it self.

* Resolve review:
use `varTypeIsSmall` type check to cover all the unsupported data type
in embedded broadcast.

* Resolve reviews:
1. put the IsBitwiseInstruction to a proper place.
2. nit: restored unnecessary line delete.

16 months agoUpdate dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimizati...
dotnet-maestro[bot] [Fri, 14 Jul 2023 19:13:27 +0000 (14:13 -0500)]
Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230712.5 (#88826)

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

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
16 months ago[main] Update dependencies from dotnet/roslyn-analyzers (#88829)
dotnet-maestro[bot] [Fri, 14 Jul 2023 19:07:49 +0000 (14:07 -0500)]
[main] Update dependencies from dotnet/roslyn-analyzers (#88829)

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23360.1 -> To Version 3.11.0-beta1.23362.3

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23360.1 -> To Version 3.11.0-beta1.23363.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
16 months ago[main] Update dependencies from dotnet/arcade dotnet/xharness dotnet/emsdk (#88827)
dotnet-maestro[bot] [Fri, 14 Jul 2023 19:03:28 +0000 (14:03 -0500)]
[main] Update dependencies from dotnet/arcade dotnet/xharness dotnet/emsdk (#88827)

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

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

Dependency coherency updates

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

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

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

* Update Tools.props

* Update Version.Details.xml

* Suppress warning in test

* Workaround for https://github.com/dotnet/sdk/issues/34003

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

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

* Add reference to NETStandard.Library

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
16 months agoEnsure that IsSupported being false disables the tracked hierachy in our tests (...
Tanner Gooding [Fri, 14 Jul 2023 18:10:53 +0000 (11:10 -0700)]
Ensure that IsSupported being false disables the tracked hierachy in our tests (#88848)

16 months ago[wasm] Use latest chrome for testing (#88505)
Ankit Jain [Fri, 14 Jul 2023 17:54:29 +0000 (13:54 -0400)]
[wasm] Use latest chrome for testing (#88505)

This was fixed to a specific version (`113.0.5672.63`) because of
https://github.com/dotnet/runtime/issues/86919 . But trying to use
latest again now.

16 months agoFix missing using statement (#88906)
Vitek Karas [Fri, 14 Jul 2023 17:30:37 +0000 (10:30 -0700)]
Fix missing using statement (#88906)

Add a using which was incorrectly removed because it's only necessary in NativeAOT configuration

16 months agoRemove handwritten binding logic from Logging.Console; use generator instead (#88067)
Layomi Akinrinade [Fri, 14 Jul 2023 17:16:27 +0000 (10:16 -0700)]
Remove handwritten binding logic from Logging.Console; use generator instead (#88067)

* Remove handwritten binding logic from Logging.Console; use generator instead

* Address feedback

* Update test

* Revert "Update test"

This reverts commit fa73b4edcd4a67ad195ab30a405e7f316ae34e5e.

* Remove NoWarn for obsolete members; handled by emitted code

* Address feedback

* Apply suggestions from code review

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
---------

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
16 months agoUTFn->UTF-n (#88913)
Dan Moseley [Fri, 14 Jul 2023 16:57:03 +0000 (11:57 -0500)]
UTFn->UTF-n (#88913)

* resx

* cs comments

* oops

16 months agoExtend JsonSourceGenerationOptionsAttribute to have feature parity with JsonSerialize...
Eirik Tsarpalis [Fri, 14 Jul 2023 16:37:45 +0000 (17:37 +0100)]
Extend JsonSourceGenerationOptionsAttribute to have feature parity with JsonSerializerOptions. (#88753)

16 months agoFix TimeZoneInfoTests.cs on iOS/tvOS (#88909)
Alexander Köplinger [Fri, 14 Jul 2023 15:55:56 +0000 (17:55 +0200)]
Fix TimeZoneInfoTests.cs on iOS/tvOS (#88909)

16 months agoHttpClientFactory logging configuration (#88706)
Natalia Kondratyeva [Fri, 14 Jul 2023 15:30:01 +0000 (17:30 +0200)]
HttpClientFactory logging configuration (#88706)

Add 2 interfaces for custom sync and async HttpClient loggers, and extension methods to add or remove HttpClient loggers in AddHttpClient configuration.

Fixes #77312

16 months agoEventPipe support for ProcessInfo (#87562)
Lakshan Fernando [Fri, 14 Jul 2023 15:24:12 +0000 (08:24 -0700)]
EventPipe support for ProcessInfo (#87562)

* initial changes for process name

* add support to get managedEntrypointAssemblyName

* FB

* FB2

* fix main merge issues

* Using assembly location for coreclr per FB

* FB

* FB

* FB

16 months ago[browser] bump npm packages + fix webpack sample (#88907)
Pavel Savara [Fri, 14 Jul 2023 15:04:13 +0000 (17:04 +0200)]
[browser] bump npm packages + fix webpack sample (#88907)

16 months ago[nativeaot][tests] Add smoke unit runtime tests for Native AOT on iOS platforms ...
Milos Kotlar [Fri, 14 Jul 2023 14:26:40 +0000 (16:26 +0200)]
[nativeaot][tests] Add smoke unit runtime tests for Native AOT on iOS platforms (#87260)

* Initial commit

* Add runtime-ioslike-coreclr and runtime-ioslike-mono azp runs

* Add support for stripping debug symbols and enabling IL stripping during AOT compilation on iOS

* Use the _AppleGenerateAppBundle target from AppleBuild.targets to build the app bundle

* Update the CI to use cross-build

* Update the sample app to use the cross-build

* Disable failing tests with OperatingSystem.Is...().

* Update perf build command for Native AOT

* Update IlcToolsPath to use cross-build ilc path

* Use /p:BuildNativeAOTRuntimePack=true to pick up NativeAOT assets instead of CoreCLR

16 months agoEnable StressLogAnalyzer to read stress logs from old coreclr running with a new...
Jeremy Koritzinsky [Fri, 14 Jul 2023 14:08:56 +0000 (07:08 -0700)]
Enable StressLogAnalyzer to read stress logs from old coreclr running with a new clrgc. (#88852)

16 months ago[NativeAOT] Support variable page size on Linux Arm64 (#88710)
Vladimir Sadov [Fri, 14 Jul 2023 13:54:23 +0000 (06:54 -0700)]
[NativeAOT] Support variable page size on Linux Arm64 (#88710)

* stack probe

* probe size on x86

* OS_PAGE_SIZE

* call sysconf(_SC_PAGESIZE)  unconditionally

* initialize OS page in PalInit

Co-authored-by: Filip Navara <filip.navara@gmail.com>
16 months ago[wasm][debugger] Improve debugger performance based on JMC (#86982)
Thays Grazia [Fri, 14 Jul 2023 13:46:00 +0000 (10:46 -0300)]
[wasm][debugger] Improve debugger performance based on JMC (#86982)

* Improve debugger performance.

* Loading assembly bytes if JMC is disabled after the debugger session is started.

* Fix CI.

* Load symbols on demand if JMC is enabled, we don't need to spend a lot of time loading information from 149 assemblies if we will probably not need all of them.

* Impriving the performance sending only metadata and not the full assembly.

* Fixing compilation error on tvos

* Apply suggestions from code review

Co-authored-by: Ankit Jain <radical@gmail.com>
* Apply suggestions from code review

Co-authored-by: Ankit Jain <radical@gmail.com>
* fix changes from code review

* addressing @radical comments

* addressing @radical and @lewing comments

---------

Co-authored-by: Ankit Jain <radical@gmail.com>
16 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 222189...
dotnet bot [Fri, 14 Jul 2023 13:16:32 +0000 (15:16 +0200)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2221896 (#88636)

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
16 months ago[browser] detect and assert engine features (#88846)
Pavel Savara [Fri, 14 Jul 2023 13:03:32 +0000 (15:03 +0200)]
[browser] detect and assert engine features (#88846)

16 months agoPresize dictionary in regex interpreter (#88558)
Dan Moseley [Fri, 14 Jul 2023 12:28:12 +0000 (07:28 -0500)]
Presize dictionary in regex interpreter (#88558)

16 months agoAdd AddHttpClientDefaults (#87953)
James Newton-King [Fri, 14 Jul 2023 11:25:09 +0000 (19:25 +0800)]
Add AddHttpClientDefaults (#87953)

The AddHttpClientDefaults method supports adding configuration to all created HttpClients.

The method:

- Creates a builder with a null name. Microsoft.Extensions.Configuration automatically applies configuration with a null name to all named configuration.
- Ensures that default configuration is added before named configuration in the IServiceCollection. This is to make it so the order of AddHttpClientDefaults and AddHttpClient doesn't matter. Default config is always applied first, then named config is applied after. This is done by wrapping the IServiceCollection in an implementation that modifies the order that IConfigureOptions<HttpClientFactoryOptions> values are added.

Fixes #87914

---------

Co-authored-by: Natalia Kondratyeva <knatalia@microsoft.com>
16 months agoSimplify condition to detect recursive inlining (#88849)
Jan Kotas [Fri, 14 Jul 2023 09:57:11 +0000 (11:57 +0200)]
Simplify condition to detect recursive inlining (#88849)

This change simplifies the conditon and also makes it more robust. There
are situation where the IL code pointer can differ for the same method.

16 months agoEnable dynamic linking for maccatalyst in sandbox environment (#88847)
Milos Kotlar [Fri, 14 Jul 2023 08:09:31 +0000 (10:09 +0200)]
Enable dynamic linking for maccatalyst in sandbox environment (#88847)

16 months agoSkip internal tool restore on mac (#88877)
Andy Gocke [Fri, 14 Jul 2023 07:06:07 +0000 (00:06 -0700)]
Skip internal tool restore on mac (#88877)

16 months agoExpose the DegreesToRadians and RadiansToDegrees APIs (#88866)
Tanner Gooding [Fri, 14 Jul 2023 05:51:57 +0000 (22:51 -0700)]
Expose the DegreesToRadians and RadiansToDegrees APIs (#88866)

* Expose the DegreesToRadians and RadiansToDegrees APIs

* Adding some comments elaborating on the Degrees/Radians conversion APIs

* Update src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs

Co-authored-by: Joe4evr <jii.geugten@gmail.com>
* Fix a copy/paste error for the Half degree to radians tests

---------

Co-authored-by: Joe4evr <jii.geugten@gmail.com>
16 months agoEnsure that INumberBase implements IUtf8SpanFormattable (#88840)
Tanner Gooding [Fri, 14 Jul 2023 05:06:07 +0000 (22:06 -0700)]
Ensure that INumberBase implements IUtf8SpanFormattable (#88840)

* Ensure that INumberBase implements IUtf8SpanFormattable

* Ensure we return the rented buffers in the IUtf8SpanFormattable.TryFormat DIM

* Remember to slice the utf16Destination buffer and ensure we throw if we couldn't transcode back to valid UTF-8 in the DIM

* Update src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
* Update src/libraries/System.Private.CoreLib/src/Resources/Strings.resx

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

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
16 months agoSimplify ldftn reverse lookups (#88719)
Michal Strehovský [Fri, 14 Jul 2023 04:33:11 +0000 (13:33 +0900)]
Simplify ldftn reverse lookups (#88719)

This used a delegate because in the past we had multiple possible callbacks. Now the delegate callback is unnecessary. Saves 12 kB on Hello World with stack traces disabled (the delegate was the only thing keeping the `GetLdFtnReverseLookups_InvokeMap` method alive).

16 months agoFix alloc-dealloc mismatch (#88875)
Jeremy Koritzinsky [Fri, 14 Jul 2023 04:25:23 +0000 (21:25 -0700)]
Fix alloc-dealloc mismatch (#88875)

This only started showing up in the ASAN PR once we had larger runtime tests after test consolidation.

16 months agoEnable new analyzers CA1862, CA1864 in runtime and fix findings. (#88700)
Buyaa Namnan [Fri, 14 Jul 2023 02:57:02 +0000 (19:57 -0700)]
Enable new analyzers CA1862, CA1864 in runtime and fix findings. (#88700)

* Enable new analyzers CA1862, CA1864 in runtime and fix findings

16 months agoFeature to be able to selectively deoptimize methods (#88797)
David Mason [Fri, 14 Jul 2023 02:42:52 +0000 (19:42 -0700)]
Feature to be able to selectively deoptimize methods (#88797)

Add ICorDebugFunction5::DisableOpimizations with support for inliners in r2r and jit methods.

Co-authored-by: Mikelle <mirogers@microsoft.com>
Co-authored-by: Juan Sebastian Hoyos Ayala <juan.hoyos@microsoft.com>
16 months ago[wasm] Stop importing function table when compiling wasm modules in jiterp (#88876)
Katelyn Gadd [Fri, 14 Jul 2023 02:14:06 +0000 (19:14 -0700)]
[wasm] Stop importing function table when compiling wasm modules in jiterp (#88876)

Importing the runtime's function table into compiled traces/helpers causes v8 to allocate a bunch of memory.

16 months agoStrip trivia from tokens. (#88856)
Jeremy Koritzinsky [Fri, 14 Jul 2023 02:10:18 +0000 (19:10 -0700)]
Strip trivia from tokens. (#88856)

* Strip trivia from tokens.

Fixes #88798

* Move the trivia stripping into ContainingSyntax record constructor

* Make ContainingSyntax a regular struct with a primary constructor instead of a record struct.

* Fix #88867

* Suppress compiler diagnostics based on the linked issue.

16 months ago[Mono] UnsafeAccessorAttribute non-generic support for field (#88626)
Fan Yang [Fri, 14 Jul 2023 01:34:07 +0000 (21:34 -0400)]
[Mono] UnsafeAccessorAttribute non-generic support for field (#88626)

* Detect an UnsafeAccessorAttribute for method with interpreter

* Change field to property

* Get Kind from typed_args

* define MonoUnsafeAccessorKind enum

* Add the frontend for JIT

* Add mono_marshal_get_unsafe_accessor_wrapper and WRAPPER_SUBTYPE_UNSAFE_ACCESSOR

And the associated AOT compiler/runtime and marshaling caching boilerplate.

* [interp] get the unsafe accessor wrapper

* fix: skip visibility in unsafe accessor wrappers

that is the whole point of them

* fix: decode the length and copy the name from UnsafeAccessorAttribute

The name has a length as a prefix and doesn not have a null terminator

* [mini] compile wrapper

* [aot] Emit unsafe accessor wrappers to the AOT image

* Add the method to emit wrapper for field

* Fix typo

* Remove assertion for interpreter

* Fix format and replace assertion with proper exception

* Free the memory and throw proper NotImplementedException

* Enable StaticField and Field tests

Co-authored-by: Aleksey Kliger <alklig@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
16 months ago[wasm][debugger] Fix reading metadata info after applying changes (#88685)
Thays Grazia [Fri, 14 Jul 2023 01:02:10 +0000 (22:02 -0300)]
[wasm][debugger] Fix reading metadata info after applying changes (#88685)

* fix reading metadata info

* remove unused comment

* Adding test and fixing behavior

* improve performance

* addressing @radical suggestions

* addressing @radical comments

* addressing @radical comments

16 months agoImplement reabstraction in CoreCLR for Static Virtual Methods (#88711)
David Wrighton [Fri, 14 Jul 2023 00:43:28 +0000 (17:43 -0700)]
Implement reabstraction in CoreCLR for Static Virtual Methods (#88711)

- Add a new helper for the re-abstraction case when the JIT detects an issue
- In the late bound case, instead of producing an error directly, produce an IL stub and have it make the virtual stub dispatch call itself, this will fall back to the JIT implementation for re-abstraction
- Tweak the late bound case to also actively detect the AmbiguousMatchException case as well and use the same helper there as well.

Fixes #71414

16 months agoClean up the optimizing.md document (#88816)
Michal Strehovský [Fri, 14 Jul 2023 00:41:41 +0000 (09:41 +0900)]
Clean up the optimizing.md document (#88816)

Most of this is duplicated with the official docs. Point to the official docs.

`IlcTrimMetadata`/`IlcGenerateCompleteMetadata` are not optimization options anymore - they aid in getting apps that have trimming warnings to work. We don't intend to support them. The rest is all documented.

16 months agoEnsure that IsPow2 for floating-point numbers correctly take subnormal values into...
Tanner Gooding [Fri, 14 Jul 2023 00:28:00 +0000 (17:28 -0700)]
Ensure that IsPow2 for floating-point numbers correctly take subnormal values into account (#88839)

16 months agoRespect CopyOutputSymbolsToPublishDirectory in PublishAot (#88815)
Michal Strehovský [Thu, 13 Jul 2023 23:58:28 +0000 (08:58 +0900)]
Respect CopyOutputSymbolsToPublishDirectory in PublishAot (#88815)

Fixes dotnet/sdk#33476.

16 months agoEnsure GCHeap related debugging still works even when we use newer CLRGC to target...
Andrew Au [Thu, 13 Jul 2023 23:03:29 +0000 (16:03 -0700)]
Ensure GCHeap related debugging still works even when we use newer CLRGC to target older runtimes (#88457)

Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
16 months agoAvoid leaking committed bytes for large pages (#87977)
Andrew Au [Thu, 13 Jul 2023 23:02:13 +0000 (16:02 -0700)]
Avoid leaking committed bytes for large pages (#87977)

16 months agoSuppress Obsolete warnings in the ComInterfaceGenerator (#88859)
Jeremy Koritzinsky [Thu, 13 Jul 2023 22:13:04 +0000 (15:13 -0700)]
Suppress Obsolete warnings in the ComInterfaceGenerator (#88859)

16 months agoJIT: Mark replacements as dirty after setting GTF_VAR_DEATH (#88669)
Jakob Botsch Nielsen [Thu, 13 Jul 2023 20:36:41 +0000 (22:36 +0200)]
JIT: Mark replacements as dirty after setting GTF_VAR_DEATH (#88669)

Physically promoted struct locals are marked as dying when their
remainder dies since all other state is stored in other locals. However,
when we do this we must also mark all replacements as stale; otherwise
a future struct use could skip writebacks and effectively introduce new
uses, invalidating the previously marked last use bit.

Fix #88616

16 months ago[mono][tests] Fix deadlock in pinvoke detach test (#88855)
Vlad Brezae [Thu, 13 Jul 2023 20:30:27 +0000 (23:30 +0300)]
[mono][tests] Fix deadlock in pinvoke detach test (#88855)

Without holding the condition mutex, the test is starting a new thread that is signaling us back. This means that the new thread could fail to signal us back, because there could be no waiters and the test would deadlock.

16 months ago[JIT] Added BEGIN and END anchors for disasm output (#88782)
Will Smith [Thu, 13 Jul 2023 19:08:40 +0000 (12:08 -0700)]
[JIT] Added BEGIN and END anchors for disasm output (#88782)

* Added BEGIN and END anchors for disasm output

* Fixing build

* Feedback

16 months agoAdd missing sections in implicit machine.config (#88553)
Mario Pistrich [Thu, 13 Jul 2023 18:38:13 +0000 (20:38 +0200)]
Add missing sections in implicit machine.config (#88553)

This will add the missing sections of type IgnoreSection to the
implicitly generated machine.config.

Fix #930

16 months agoHttpClientHandler request metrics (#87319)
Anton Firszov [Thu, 13 Jul 2023 18:05:39 +0000 (20:05 +0200)]
HttpClientHandler request metrics (#87319)

duration, current requests, failed requests

16 months ago[libs][Unix] Fix UTC alias lookup (#88641)
Michael Render [Thu, 13 Jul 2023 17:33:09 +0000 (13:33 -0400)]
[libs][Unix] Fix UTC alias lookup (#88641)

16 months agoAdd EnumBuilder implementation and other changes (#88503)
Buyaa Namnan [Thu, 13 Jul 2023 17:27:09 +0000 (10:27 -0700)]
Add EnumBuilder implementation and other changes (#88503)

* Add EnumBuilder implementation and other changes

* Update src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/EnumBuilderImpl.cs

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Apply feedback

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
16 months agoUpdate enum value and assert (#88830)
Aaron Robinson [Thu, 13 Jul 2023 16:38:43 +0000 (09:38 -0700)]
Update enum value and assert (#88830)

16 months ago[PERF] Explicitly set dotnet root when building tools (#88801)
Parker Bibus [Thu, 13 Jul 2023 16:31:53 +0000 (09:31 -0700)]
[PERF] Explicitly set dotnet root when building tools (#88801)

Explicitly set DOTNET_ROOT for building performance tools.

16 months agoDo not say the wrong default behavior for blittable arrays in ComInterfaceGenerator...
Jackson Schuster [Thu, 13 Jul 2023 16:16:13 +0000 (09:16 -0700)]
Do not say the wrong default behavior for blittable arrays in ComInterfaceGenerator warning (#88212)

The warning used to say the default is [In] for blittable arrays, when the default is [In, Out].

Reworks how Unnecessary / Not supported / supported [In, Out] diagnostic reporting is implemented. Each marshaller will decide which details are provided with the diagnostic and which attributes are unnecessary.

Shares a single Strings.resx with all projects. "Com" or "LibraryImport" suffixes were added to string names that conflicted.

Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
16 months agoEnsure Vector256.Dot produces a V256 result (#88712)
Tanner Gooding [Thu, 13 Jul 2023 16:11:59 +0000 (09:11 -0700)]
Ensure Vector256.Dot produces a V256 result (#88712)

* Ensure Vector256.Dot produces a V256 result

* Apply formatting patch

16 months agoDon't generate Unmanaged-to-Managed stubs with diagnostics (#88679)
Jeremy Koritzinsky [Thu, 13 Jul 2023 16:10:31 +0000 (09:10 -0700)]
Don't generate Unmanaged-to-Managed stubs with diagnostics (#88679)

16 months agoDeduplicate diagnostics emitted for managed->unmanaged and unmanaged->managed stubs...
Jeremy Koritzinsky [Thu, 13 Jul 2023 16:08:56 +0000 (09:08 -0700)]
Deduplicate diagnostics emitted for managed->unmanaged and unmanaged->managed stubs (#88803)

16 months agoAdd Keyed Services Support to Dependency Injection (#87183)
Benjamin Petit [Thu, 13 Jul 2023 15:58:48 +0000 (17:58 +0200)]
Add Keyed Services Support to Dependency Injection (#87183)

16 months agoEnsure DOTNET_MaxVectorTBitwidth is interpreted as a decimal based input, not hexadec...
Tanner Gooding [Thu, 13 Jul 2023 15:58:25 +0000 (08:58 -0700)]
Ensure DOTNET_MaxVectorTBitwidth is interpreted as a decimal based input, not hexadecimal (#88761)

* Ensure DOTNET_MaxVectorTBitwidth is interpreted as a decimal based input, not hexadecimal

* Use CLRConfig::LookupOptions::ParseIntegerAsBase10 instead