platform/upstream/dotnet/runtime.git
14 months agoFix marking of saved assemblies (#86474)
Sven Boemer [Fri, 19 May 2023 20:41:26 +0000 (13:41 -0700)]
Fix marking of saved assemblies (#86474)

This ensures the fix from
https://github.com/dotnet/runtime/pull/82197 works also for
assemblies which get the `save` action (which isn't supported
from the command-line, but may happen in custom steps).

It also ensures that `save` assemblies get fully marked
regardless of `DisableMarkingOfCopyAssemblies`.

---------

Co-authored-by: Jackson Schuster <36744439+jtschuster@users.noreply.github.com>
14 months agoRemove fgMorphCastedBitwiseOp (#86491)
Egor Bogatov [Fri, 19 May 2023 20:38:33 +0000 (22:38 +0200)]
Remove fgMorphCastedBitwiseOp (#86491)

14 months ago[wasm] CI: Fix firefox debugger tests failure (#86476)
Ankit Jain [Fri, 19 May 2023 20:36:54 +0000 (16:36 -0400)]
[wasm] CI: Fix firefox debugger tests failure (#86476)

Tests are failing with:

```
  Failed DebuggerTests.ArrayTests.InspectGenericValueTypeArrayLocals(line: 89, col: 8, method_name: "DebuggerTests.ArrayTestsClass.GenericValueTypeLoca"..., test_prev_frame: False, frame_idx: 0, use_cfo: True) [>
  Error Message:
   System.InvalidCastException : Cannot cast Newtonsoft.Json.Linq.JObject to Newtonsoft.Json.Linq.JToken.
  Stack Trace:
     at Newtonsoft.Json.Linq.Extensions.Convert[T,U](T token)
   at DebuggerTests.FirefoxInspectorClient.HandleMessage(String msg, CancellationToken token) in /_/src/mono/wasm/debugger/DebuggerTestSuite/FirefoxInspectorClient.cs:line 184
   at Microsoft.WebAssembly.Diagnostics.RunLoop.RunActualAsync(CancellationTokenSource x) in /_/src/mono/wasm/debugger/BrowserDebugProxy/Common/RunLoop.cs:line 142
   at Microsoft.WebAssembly.Diagnostics.RunLoop.<>c__DisplayClass20_0.<<RunAsync>b__0>d.MoveNext() in /_/src/mono/wasm/debugger/BrowserDebugProxy/Common/RunLoop.cs:line 54
--- End of stack trace from previous location ---
   at System.Threading.Channels.AsyncOperation`1.GetResult(Int16 token)
   at System.Threading.Tasks.ValueTask`1.ValueTaskSourceAsTask.<>c.<.cctor>b__4_0(Object state)
```

One of the arguments of the message is a `JObject`, and thus fails with
`.Value<string>()`.

The full message:
```json
{
   "from" : "server1.conn0.windowGlobal10737418242/windowGlobalTarget2",
   "resources" : [
      {
         "message" : {
            "arguments" : [
               "mono_wasm_debug_event_raised:aef14bca-5519-4dfe-b35a-f867abc123ae",
               {
                  "actor" : "server1.conn0.windowGlobal10737418242/longstractor35",
                  "initial" : "{\"eventName\":\"AssemblyLoaded\",\"assembly_name\":\"System.Private.CoreLib.dll\",\"assembly_b64\":\"V2JJTAAAAAADAAAACCAAAEgAAACYYj4AVAAAAPRDPgAAIAAAAEQ+AEwAAABMBAAAAIA+AAAGAABMRD4ADAAAAACgPgAAAgAATEo+ANBjPgAAAAAASAAAAAIABQDQ4RkAyIAkAAkAAAAAAAAAsFMUADjSAwBQ4RkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgIoJAIABipeAigkAgAGAheNogAAAiUWA5x9AQAABCo6AigkAgAGAgN9AQAABCo6AigkAgAGAgN9AgAABCo6AigkAgAGAgN9AwAABCoeAigDMAUAjQAAAAEAABEgAAIAAOD+DyAAAQAAcwEAAAoMCAoCBgMEBW8CAAAKCwctIg4EEgAWBhYoAQAAKygDAAAKDBIC/hYBAAAbb3cDAAZRFyoHGDM+IAAFAACNpAAAAigEAAAKCgIGAwQFbwIAAAotIg4EEgAWBhYoAQAAKygDAAAKDBIC/hYBAAAbb3cDAAZRFyoOBBRRFiomAgMEKA8AAAZ6RgIsDQIo6gAABgMEKAkAAAYqTgIWai8MKFcAAAYDBCgJAAAGAio2KFcAAAYUFigJAAAGKjICagMEKAsAAAYmAioDMAIAsgEAAAIAABEPAChSAAAGCwcgFAABADBJByAGAAEAMBsHIAIAAQA7zQAAAAcgBgABADsUAQAAOHcBAAAHIAgAAQA7sgAAAAcgCwABADsrAQAAByAUAAEAOzYBAAA4UQEAAAcgJQABADAbByAWAAEAOw4BAAAHICUAAQA7pwAAADguAQAAByAtAAEALhUHIDkAAQAuQAcgQgABAC5cOBEBAAAELTADLAgDKBMAAAYsJQMozwUABiwLKLsdAAZzUmwABioovB0ABgMo0RoABgNzVGwABioDK",
                  "length" : 7737462,
                  "type" : "longString"
               },
               "{}"
            ],
            "columnNumber" : 12734,
            "filename" : "http://localhost:9400/dotnet.runtime.js",
            "innerWindowID" : 10737418242,
            "level" : "debug",
            "lineNumber" : 3,
            "private" : true,
            "sourceId" : null,
            "timeStamp" : 1684452298362.82
         },
         "resourceType" : "console-message"
      }
   ],
   "type" : "resource-available-form"
}
```

14 months agoWe should not establish a heap hard limit for 32 bit platforms (#85844)
Andrew Au [Fri, 19 May 2023 20:34:06 +0000 (13:34 -0700)]
We should not establish a heap hard limit for 32 bit platforms (#85844)

14 months agoUpgrade gcc CI to use gcc13 (#86051)
Adeel Mujahid [Fri, 19 May 2023 20:24:48 +0000 (23:24 +0300)]
Upgrade gcc CI to use gcc13 (#86051)

* Upgrade gcc CI to use gcc13

* Fix a Wstrict-prototypes

14 months agoJIT: Add a pass of liveness for the new locals inside physical promotion (#86043)
Jakob Botsch Nielsen [Fri, 19 May 2023 20:07:48 +0000 (22:07 +0200)]
JIT: Add a pass of liveness for the new locals inside physical promotion (#86043)

Used when decomposing stores to skip the fields that are dying and the remainder if it is dying. Also allows forward sub to kick in for the inserted replacement locals.

14 months agoFix async XsdValidatingReader to not use synchronious IO (#84888)
Morten Larsen [Fri, 19 May 2023 19:32:43 +0000 (21:32 +0200)]
Fix async XsdValidatingReader to not use synchronious IO (#84888)

* Fix async XsdValidatingReader to use GetValueAsync

* Remove async on ProcessReaderEventAsync

* Change to local static functions

14 months ago[wasm] Jiterpreter v128 misc optimizations (#86506)
Katelyn Gadd [Fri, 19 May 2023 18:41:46 +0000 (11:41 -0700)]
[wasm] Jiterpreter v128 misc optimizations (#86506)

* Use v128 opcodes when unrolling memsets/memmoves
* Introduce builder v128_const method
* v8 doesn't optimize splats so use the enormous encoding for v128 zero
* Fix fast memset for nonzero values

14 months agoUpgrade build to use .NET 8 Preview 4 SDK (#86408)
Jeremy Koritzinsky [Fri, 19 May 2023 17:48:28 +0000 (10:48 -0700)]
Upgrade build to use .NET 8 Preview 4 SDK (#86408)

14 months agoFix mapping of redeclared type parameters (#86353)
Sven Boemer [Fri, 19 May 2023 17:25:45 +0000 (10:25 -0700)]
Fix mapping of redeclared type parameters (#86353)

We were skipping the type parameter mapping of compiler-generated
types whose only generic parameters were those implicitly created
for the declaring type's type parameters.

For the testcase in question, the nested state machine inherited
a generic parameter from the display class. This was causing
unnecessary warnings in a field assignment that assigned
`this` (an instance of the display class) to a field on the state
machine. In IL, that assignment references a field type like
`DisplayClass<T>` where `T` is the generic parameter on the state
machine. Here we were properly mapping type parameters of the
display class back to the annotated enclosing method's type
parameters, so we could tell that the "target" required
`PublicMethods`. But the substituted `T` from the state machine
was not mapped, causing the mismatch.

14 months agoRemove invalid assert in EvpPKeyDuplicate
Kevin Jones [Fri, 19 May 2023 17:25:05 +0000 (13:25 -0400)]
Remove invalid assert in EvpPKeyDuplicate

EvpPKeyDuplicate has an invalid assert in it where it asserts that the handle it was passed is not IsInvalid. This may not be true in a multi-threaded scenario where an object is disposed by one thread while another thread is trying to use the resource.

Since we are marshaling the handle as a SafeHandle, just let it do the right thing of throwing an ObjectDisposedException when the marshaller attempts to add a reference to the handle.

14 months agoEnable event pipe tests in NativeAOT CI run (#86389)
Lakshan Fernando [Fri, 19 May 2023 16:33:25 +0000 (09:33 -0700)]
Enable event pipe tests in NativeAOT CI run (#86389)

* Test check on EventPipe NativeAOT

* exclude more tracing tests

* FB

14 months agoUse net6.0 SqlClient TFM under source-build (#84782)
Viktor Hofer [Fri, 19 May 2023 15:56:23 +0000 (17:56 +0200)]
Use net6.0 SqlClient TFM under source-build (#84782)

See discussion in https://github.com/dotnet/source-build-reference-packages/pull/633 for more context.

14 months ago[mono][debugger][docs] How we run debugger tests (#86495)
Ilona Tomkowicz [Fri, 19 May 2023 15:32:16 +0000 (17:32 +0200)]
[mono][debugger][docs] How we run debugger tests (#86495)

* Small fix.

14 months ago[mono][jit] Enable Vector64 support on arm64 in jit mode. (#86188)
Zoltan Varga [Fri, 19 May 2023 15:30:42 +0000 (08:30 -0700)]
[mono][jit] Enable Vector64 support on arm64 in jit mode. (#86188)

Vector64 is handled the same as the other SIMD types, only loads and stores
need to special case it.

14 months ago[browser] Update Wasm SDK pack version in workload manifest (#86382)
Marek Fišera [Fri, 19 May 2023 14:49:23 +0000 (16:49 +0200)]
[browser] Update Wasm SDK pack version in workload manifest (#86382)

14 months agoAdd ProcessStartInfo constructor that accepts IEnumerable<string> arguments (#86346)
Blake Hensley [Fri, 19 May 2023 14:36:59 +0000 (07:36 -0700)]
Add ProcessStartInfo constructor that accepts IEnumerable<string> arguments (#86346)

14 months agoenable TieredPGO by default (#86225)
Andy Ayers [Fri, 19 May 2023 13:23:34 +0000 (06:23 -0700)]
enable TieredPGO by default (#86225)

14 months ago[wasm] Generate jiterp feature detect modules dynamically (#86401)
Katelyn Gadd [Fri, 19 May 2023 13:21:00 +0000 (06:21 -0700)]
[wasm] Generate jiterp feature detect modules dynamically (#86401)

Fixes dotnet/source-build#3442

14 months agoremove [DebuggerDisplayAttribute] from ref assemblies (#86443)
Adam Sitnik [Fri, 19 May 2023 10:30:38 +0000 (12:30 +0200)]
remove [DebuggerDisplayAttribute] from ref assemblies (#86443)

14 months agoFileConfigurationProvider.Dispose should dispose FileProvider when it ows it (#86455)
Adam Sitnik [Fri, 19 May 2023 09:59:10 +0000 (11:59 +0200)]
FileConfigurationProvider.Dispose should dispose FileProvider when it ows it (#86455)

fixes #86146

14 months agoEnable runtime tests on the Interpreter (#86375)
Milos Kotlar [Fri, 19 May 2023 09:14:16 +0000 (11:14 +0200)]
Enable runtime tests on the Interpreter (#86375)

14 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 218385...
dotnet bot [Fri, 19 May 2023 09:03:59 +0000 (02:03 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2183857 (#86468)

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

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

14 months agoRemove getMaxIntrinsicSIMDVectorLength from the JIT/EE interface (#86479)
Tanner Gooding [Fri, 19 May 2023 04:22:12 +0000 (21:22 -0700)]
Remove getMaxIntrinsicSIMDVectorLength from the JIT/EE interface (#86479)

* Fixing a couple small typos

* Remove getMaxIntrinsicSIMDVectorLength from the JIT/EE interface

* Update src/coreclr/vm/methodtablebuilder.cpp

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
14 months ago[interp] Undo damage to the simd methods bsearch list; support vectors of char (...
Katelyn Gadd [Fri, 19 May 2023 01:52:25 +0000 (18:52 -0700)]
[interp] Undo damage to the simd methods bsearch list; support vectors of char (#86475)

While inspecting the performance of some vectorized BCL code, I noticed that I accidentally damaged one of the binary search lists.
There also appear to be some cases where vectors of char are used, so I touched up the code to make sure that we will select the right intrinsic in that case if we already supported U2.

14 months agoMove the GCC and CLR Tools Unit Tests legs to use the global build template (#86411)
Jeremy Koritzinsky [Fri, 19 May 2023 01:48:30 +0000 (18:48 -0700)]
Move the GCC and CLR Tools Unit Tests legs to use the global build template (#86411)

* Move the GCC validation leg to use the global build job template instead of the CoreCLR build template.

* Move CLR Tools Unit Tests leg to use the global build job template instead of the CoreCLR build job template

* Add iltools for the CoreCLR tools unit tests job

* Pass -gcc flag to test build in GCC job.

* Update eng/pipelines/coreclr/templates/build-job.yml

14 months agoAdd debugging attributes to System.Security.Claims types (#86424)
James Newton-King [Fri, 19 May 2023 00:51:11 +0000 (08:51 +0800)]
Add debugging attributes to System.Security.Claims types (#86424)

* Add debugging attributes to System.Security.Claims types

* Update

* Update ref, add type proxies

* PR feedback

* PR feedback

14 months ago[wasm] Implement I2 and I4 shuffles in the jiterpreter (#86469)
Katelyn Gadd [Fri, 19 May 2023 00:30:22 +0000 (17:30 -0700)]
[wasm] Implement I2 and I4 shuffles in the jiterpreter (#86469)

Implement a wasm lowering for V128_I2_SHUFFLE and V128_I4_SHUFFLE in the jiterpreter so BCL char operations won't be terribly slow

14 months agoExclude System.* reference assemblies in ILCompiler.Build.Tasks (#86423)
Jan Kotas [Thu, 18 May 2023 22:59:52 +0000 (15:59 -0700)]
Exclude System.* reference assemblies in ILCompiler.Build.Tasks (#86423)

* Exclude System.* reference assemblies in ILCompiler.Build.Tasks

We expect the implementation of these assemblies to come as part of msbuild.

Fixes #83695

* Do not include any System.* assemblies as part of the task

* Delete custom resolver

14 months agoSwitch RhConfig from TCHAR to char (#86393)
Elinor Fung [Thu, 18 May 2023 22:35:07 +0000 (00:35 +0200)]
Switch RhConfig from TCHAR to char (#86393)

- Hide away the details of reading the environment variable as `wchar` vs `char`
- Keep embedded variables as as ASCII (they are embedded as such already)
- Stop using `TCHAR` for the `RhConfig` APIs, which seemed to just be more confusing to consume

14 months ago[wasm] Enable v128 and PackedSimd in the interpreter (#85920)
Katelyn Gadd [Thu, 18 May 2023 22:28:09 +0000 (15:28 -0700)]
[wasm] Enable v128 and PackedSimd in the interpreter (#85920)

Fix the create scalar intrinsics in the jiterpreter
Fix trimming removing SIMD even if SIMD was enabled
Add wasm opcode mapping for extract msb
Fix some SN_ lists in transform-simd being ordered incorrectly
Due to mixed mode it is not possible to control interp SIMD with a runtime option, so remove the options
Disable linker substitutions for SIMD unless AOT is active, so the interp is responsible for the properties
Generate a MINT_NIY for unimplemented PackedSimd methods

14 months ago[wasm] Update jiterpreter documentation (#86461)
Katelyn Gadd [Thu, 18 May 2023 22:20:58 +0000 (15:20 -0700)]
[wasm] Update jiterpreter documentation (#86461)

* Add missing line breaks

* Update jiterpreter documentation with a sample annotated trace

* I love github flavored markdown

14 months agoMake host look for RID-specific assets via a known list by default (#84100)
Elinor Fung [Thu, 18 May 2023 22:13:59 +0000 (00:13 +0200)]
Make host look for RID-specific assets via a known list by default (#84100)

14 months agoRemove workaround for fixed Roslyn bug (#86464)
Miha Zupan [Thu, 18 May 2023 22:05:17 +0000 (00:05 +0200)]
Remove workaround for fixed Roslyn bug (#86464)

14 months agoAdd an undocumented switch to allow controlling the preferred vector width emitted...
Tanner Gooding [Thu, 18 May 2023 21:25:00 +0000 (14:25 -0700)]
Add an undocumented switch to allow controlling the preferred vector width emitted implicitly by the JIT (#86457)

* Add an undocumented switch to allow controlling the preferred vector width emitted implicitly by the JIT

* Resolving issues and responding to PR feedback

* Simplifying the xarch cpu info check

14 months agoRemove noisy assert from Task (#86445)
Stephen Toub [Thu, 18 May 2023 19:10:13 +0000 (15:10 -0400)]
Remove noisy assert from Task (#86445)

14 months agoRemove call to morph on hoisted trees (#86450)
Bruce Forstall [Thu, 18 May 2023 19:05:56 +0000 (12:05 -0700)]
Remove call to morph on hoisted trees (#86450)

It is unnecessary (this causes no diffs). And theoretically if it
did cause diffs, the morphed tree would then not match the tree
being hoisted, meaning CSE wouldn't "find" it and consider it a CSE.

14 months agoClean various aspects of config binding generator up (#86420)
Layomi Akinrinade [Thu, 18 May 2023 18:20:51 +0000 (11:20 -0700)]
Clean various aspects of config binding generator up (#86420)

14 months agoVectorize the CRC64 implementation (#85221)
Brant Burnett [Thu, 18 May 2023 18:09:37 +0000 (14:09 -0400)]
Vectorize the CRC64 implementation (#85221)

14 months agoFix GCStress timeouts in JIT/jit64 (#85040)
Mark Plesko [Thu, 18 May 2023 18:04:34 +0000 (11:04 -0700)]
Fix GCStress timeouts in JIT/jit64 (#85040)

This includes several changes that seem to help with the timeouts. It might be overkill but seems like a good direction as this has been broken for a while.
- Change the test wrapper logic to only put one test in a TestExecutor so that the callstacks are much simpler.
- Factor the test wrapper logic into some helpers to simplify the main method. I also tried to make the "Full" and "XHarness" code generation very similar but didn't try to factor/unify them.
- Mark several tests as RequiresProcessIsolation so that their gcstress is kept separate from the rest of the tests.  Disables a large test under gcstress.
- Add gcstress striping to some merged groups.

Should fix #85590

14 months ago[mono][interp] Fix alignment problems with calls and simd types in unoptimized method...
Vlad Brezae [Thu, 18 May 2023 17:55:03 +0000 (20:55 +0300)]
[mono][interp] Fix alignment problems with calls and simd types in unoptimized methods (#86433)

* [mono][interp] Make stack moving opcode generic

This opcode will be used to properly align stack in various unoptimized scenarios

* [mono][interp] Move params moving code

We still have the stack contents intact here

* [mono][interp] Account for alignment when computed stack size of the params

* [mono][interp] Fix alignment of simd args

When we align the parameters so the frame stack alignment is satisfied, we break the alignment on all simd arguments (which we previously aligned). We need to do another realignment.

* [mono][interp] Fix args alignment for newobj in unoptimized methods

Get rid of special opcode and do all the arg moving with MINT_MOV_STACK_UNOPT

* [mono][interp] Small cleanup

* Add test

14 months agoZip.Unix: don't hang when creating zip file from directory with named pipe. (#85301)
Tom Deseyn [Thu, 18 May 2023 16:58:31 +0000 (18:58 +0200)]
Zip.Unix: don't hang when creating zip file from directory with named pipe. (#85301)

* Zip.Unix: don't hang when creating zip file from directory with named pipe.

When we open the named pipe for reading, that call will block indefinitely
when there is no writer to provide data.

And if we manage to read data from a pipe, that data was probably meant
for someone else.

Rather than opening named pipes, throw an IOException indicating they
are not supported.

And like the named pipes, this also treat character devices,
block devices, and sockets as unsupported types.

* Skip test on browser.

* Tar,Zip: update unsupported file type error message.

* Skip tests on tvOS/iOS.

14 months agoUpdate dependencies from https://github.com/dotnet/arcade build 20230518.1 (#86437)
dotnet-maestro[bot] [Thu, 18 May 2023 16:41:34 +0000 (11:41 -0500)]
Update dependencies from https://github.com/dotnet/arcade build 20230518.1 (#86437)

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.23267.2 -> To Version 8.0.0-beta.23268.1

Dependency coherency updates

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

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
14 months agoFix issue with hoisting and copy prop interaction (#85493)
Bruce Forstall [Thu, 18 May 2023 16:16:07 +0000 (09:16 -0700)]
Fix issue with hoisting and copy prop interaction (#85493)

* Fix issue with hoisting and copy prop interaction

After hoisting creates a tree copy, it morphs it. That morph might
lose the value numbers on LCL_VAR uses, but leave the SSA numbers.
Copy prop was assuming that such a use had a VN. Instead, check this
dynamically instead of asserting.

Fixes #84619

* Further optimize cast in fgOptimizeCastOnStore()

If we optimize the cast, call `fgOptimizeCast` to see if it can be
optimized further.

* Add regression test

* Feedback

14 months ago[wasm] Set WasmEnableWebcil to true by default (#86330)
Aleksey Kliger (λgeek) [Thu, 18 May 2023 16:13:34 +0000 (12:13 -0400)]
[wasm] Set WasmEnableWebcil to true by default (#86330)

* [wasm] Set WasmEnableWebcil to true by default

* WebcilReader: copy updated struct for BlobReader.ReadUtf8NullTerminated

When using reflection to call a method on BlobReader, make sure to
copy the struct after the call since the internal state is modified

Fixes PdbChecksum extraction from Webcil files

(This was a problem even before webcil-in-wasm)

14 months agoFix scanning synchronized methods (#86427)
Michal Strehovský [Thu, 18 May 2023 13:58:11 +0000 (22:58 +0900)]
Fix scanning synchronized methods (#86427)

After #85810 we need to generate reflection metadata for owning types of static synchronized methods. Before that change, obtaining a RuntimeType for locking would obtain a reflection blocked type. We now need a named type and scanner must predict it.

Found in Pri0 testing.

14 months agoFill out array bounds in metadata transform (#86313)
Michal Strehovský [Thu, 18 May 2023 13:45:22 +0000 (22:45 +0900)]
Fill out array bounds in metadata transform (#86313)

* Fill out array bounds in metadata transform

The metadata writer will nullref if these are not set.

* FB

14 months agoFix Base64 decoding regressions from whitespace handling (#86396)
Stephen Toub [Thu, 18 May 2023 13:21:40 +0000 (09:21 -0400)]
Fix Base64 decoding regressions from whitespace handling (#86396)

* Fix Base64 decoding regressions from whitespace handling

Put the main code paths back to how they were before, with the sole exception being an extra method argument and an extra check in the InvalidData exit section that delegates to a helper if that method argument is true.

* Address PR feedback for pre-existing code

14 months ago[browser] logging cleanup (#86431)
Pavel Savara [Thu, 18 May 2023 13:09:43 +0000 (15:09 +0200)]
[browser] logging cleanup (#86431)

* introduce logging functions

14 months agoRemove System.Reflection wrappers from the STJ source generator. (#86334)
Eirik Tsarpalis [Thu, 18 May 2023 12:44:23 +0000 (13:44 +0100)]
Remove System.Reflection wrappers from the STJ source generator. (#86334)

* Remove System.Reflection wrappers from the STJ source generator.

* Fix linker warning.

* Fix namespace.

* Move ImmutableEquatableArray to Helpers folder.

* Fix build

* Salvage test from TypeWrapperTests

14 months ago[browser][non-icu] `HybridGlobalization` indexing (#85254)
Ilona Tomkowicz [Thu, 18 May 2023 12:39:34 +0000 (14:39 +0200)]
[browser][non-icu] `HybridGlobalization` indexing (#85254)

* A bit faster version of indexing. WIP

* Tiny speedup.

* Fixed IndexOf, ToDo: LastIndexOf.

* All tests pass.

* Updated docs.

* Update docs.

* Slicing + saving previous absolute index instead of pushing the iterator to the start position.

* Refactored.

* Fixed tests on browser.

* Str1 and str2 was confusing.

* Fix CI- correctly trimming Hybrid properties.

* Previous commit should target only Browser.

* Applied @mkhamoyan's suggestion to avoid code duplication.

* Applied @pavelsavara's review.

* Get rid of build errors.

* Revert.

14 months agoFix assertprop assert for missing handle flag (#86409)
Egor Bogatov [Thu, 18 May 2023 11:09:10 +0000 (13:09 +0200)]
Fix assertprop assert for missing handle flag (#86409)

* Number IND<size_t>(obj) as handle

14 months agoFix deadlock in NativeRuntimeEventSourceTest (#86370)
David Mason [Thu, 18 May 2023 09:42:59 +0000 (02:42 -0700)]
Fix deadlock in NativeRuntimeEventSourceTest (#86370)

* Update NativeRuntimeEventSourceTest.cs

* Update NativeRuntimeEventSourceTest.cs

* Update NativeRuntimeEventSourceTest.cs

14 months agoDisable DllImportSearchPathsTest and StartupHookTests on mobile (#86269)
Alexander Köplinger [Thu, 18 May 2023 09:35:46 +0000 (11:35 +0200)]
Disable DllImportSearchPathsTest and StartupHookTests on mobile (#86269)

Also try to fix the StartupHookTests on LLVM FullAOT by making sure we also AOT dlls in subdirectories.

This uncovered an issue in src/tests/Common/external/external.csproj where an old version of Microsoft.CodeAnalysis.Compilers was referenced which made AOT fail, so I upgraded it.
That uncovered a problem AOTing Microsoft.CodeAnalysis.VisualBasic.dll so had to exclude it from AOTing.

14 months agoadd pre-built detection (#86151)
Oleksandr Didyk [Thu, 18 May 2023 08:15:33 +0000 (10:15 +0200)]
add pre-built detection (#86151)

14 months ago[browser] Describe ES6 modules (#86381)
Marek Fišera [Thu, 18 May 2023 07:29:43 +0000 (09:29 +0200)]
[browser] Describe ES6 modules (#86381)

14 months agoConvert JIT/CodeGenBringUpTests to a merged test group (#85847)
Mark Plesko [Thu, 18 May 2023 06:36:40 +0000 (23:36 -0700)]
Convert JIT/CodeGenBringUpTests to a merged test group (#85847)

See https://github.com/markples/utils/tree/for-PR-dotnet-runtime-85847-others for ILTransform tool.  As usual, I recommend viewing the commit list since it partitions the changes in a more readable way and paying more attention to manual changes.

* [ILTransform -public] Make test entrypoints accessible
* [ILTransform -ilfact] Main->TestEntryPoint, [Fact], remove OutputType=Exe
* Manual fixes for xUnit1013 - internal methods
* Add merged group
* Update porting-ryujit.md with info on merged test groups

14 months agoavoid ProtocolToken allocations in TLS handshake (#86163)
Tomas Weinfurt [Thu, 18 May 2023 05:42:35 +0000 (22:42 -0700)]
avoid ProtocolToken allocations in TLS handshake (#86163)

* avoild ProtocolToken allocations in TLS handshake

* cleanup

* UnitTests

* feedback from review

14 months agoAdd natstepfilter to skip over object allocators (#86418)
Michal Strehovský [Thu, 18 May 2023 03:34:22 +0000 (12:34 +0900)]
Add natstepfilter to skip over object allocators (#86418)

VS 17.6 added support for natstepfilter in project files. Take advantage of it to skip over object allocators that we pretty much never want to step into.

I'm following up with some VS debugger people to see if there's any plans to allow embedding this in the PDB like natvis. Having this in the vcxproj helps the repro project, but doesn't help end user scenarios.

14 months agoMake IDerivedTest.CallBaseInterfaceMethod_EnsureQiCalledOnce trim-friendly (#86397)
Jeremy Koritzinsky [Thu, 18 May 2023 03:09:06 +0000 (20:09 -0700)]
Make IDerivedTest.CallBaseInterfaceMethod_EnsureQiCalledOnce trim-friendly (#86397)

Change the reflection usage to be trim friendly.

14 months agoDo not assert RyuJIT if InitializeArray cannot be expanded (#86373)
Michal Strehovský [Thu, 18 May 2023 02:03:54 +0000 (11:03 +0900)]
Do not assert RyuJIT if InitializeArray cannot be expanded (#86373)

Found in Pri0 tests. `RuntimeHelper.InitializeArray(default, default)` would assert RyuJIT. Do not assert.

The tests also have various invalid combinations of the intrinsic that make it difficult to do optimized builds (we don't want the target field to become reflectable in the common cases but also failing to predict when this doesn't expand results in scanning failures due to unmet reflection dependencies).

Give up on trying to predict when intrinsic expansion kicks in and instead lean into RVA statics not being expressible in C# and the fields not being reflection-invokable anyway.

14 months agoRemove extraneous VN code (#86407)
Bruce Forstall [Thu, 18 May 2023 01:12:43 +0000 (18:12 -0700)]
Remove extraneous VN code (#86407)

* Remove extraneous code

This wasn't invoking the JitHashTable destructor as evidently intended,
though the destructor was already being invoked by default.

Fixes #86372

* Feedback: delete entire VNMap dtor

14 months agoDelay reg free for tbx_1reg (#86292)
Kunal Pathak [Thu, 18 May 2023 00:36:05 +0000 (17:36 -0700)]
Delay reg free for tbx_1reg (#86292)

* Delay reg free for tbx_1reg

* remove unused code

* jit format

* Fix WideningLower

* Remove the unnecessary asserT

14 months agoAdd basic support for StringMarshalling in GeneratedComInterface (#86404)
Jackson Schuster [Thu, 18 May 2023 00:09:44 +0000 (17:09 -0700)]
Add basic support for StringMarshalling in GeneratedComInterface (#86404)

14 months agoEnable config binding gen tests that pass (#86406)
Layomi Akinrinade [Wed, 17 May 2023 22:42:31 +0000 (15:42 -0700)]
Enable config binding gen tests that pass (#86406)

14 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 218249...
dotnet bot [Wed, 17 May 2023 22:03:22 +0000 (15:03 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2182497 (#86369)

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

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

14 months agoMake sure not to strip `endfilter` (#86374)
Michal Strehovský [Wed, 17 May 2023 21:53:06 +0000 (06:53 +0900)]
Make sure not to strip `endfilter` (#86374)

Fixes the issue described in #86304 (but doesn't fix the issue because that's for ILLink). Found by Pri0 tests.

14 months ago[MONO] Add JIT_CODE_DEBUG_INFO record functionality for Jitdump (#85107)
Sanjam Panda [Wed, 17 May 2023 21:03:33 +0000 (02:33 +0530)]
[MONO] Add JIT_CODE_DEBUG_INFO record functionality for Jitdump (#85107)

* added support for JITDEBUG_INFO

* added comments

* Update mini-runtime.c

* made changes to coding conventions

* Update mini-runtime.c

* Update mini-runtime.c

* Update mini-runtime.c

* Update mini-runtime.c

14 months agoAdd IPC commands to enable and disable PerfMaps/JitDumps (#85801)
David Mason [Wed, 17 May 2023 20:23:27 +0000 (13:23 -0700)]
Add IPC commands to enable and disable PerfMaps/JitDumps (#85801)

14 months agoDelete the verification type system (#86179)
SingleAccretion [Wed, 17 May 2023 19:47:38 +0000 (22:47 +0300)]
Delete the verification type system (#86179)

* Delete "verIsByRefLike"

* Decouple SIMD class recognition from 'typeInfo'

* Remove struct handles from 'typeInfo'

* Delete the verification type system

* Delete 'verType' comments

14 months ago[mono][jit] Implement JIT support for the arm64 Crc and Dp intrinsics sets. (#86106)
Zoltan Varga [Wed, 17 May 2023 18:28:21 +0000 (11:28 -0700)]
[mono][jit] Implement JIT support for the arm64 Crc and Dp intrinsics sets. (#86106)

Also implement hw capacity detection for apple+arm64 platforms.

14 months agoImprove constant folding for some frozen objects (#86318)
Egor Bogatov [Wed, 17 May 2023 18:00:40 +0000 (20:00 +0200)]
Improve constant folding for some frozen objects (#86318)

14 months agoRevert RequiredAttribute.DisallowAllDefaultValues (#86378)
Eirik Tsarpalis [Wed, 17 May 2023 16:23:45 +0000 (17:23 +0100)]
Revert RequiredAttribute.DisallowAllDefaultValues (#86378)

14 months agoFix DAC syncblk API so the SOS tests stop failing intermittently (#86339)
Mike McLaughlin [Wed, 17 May 2023 16:20:00 +0000 (09:20 -0700)]
Fix DAC syncblk API so the SOS tests stop failing intermittently  (#86339)

Fix DAC syncblk API

Only fill in the syncblk data if there are blocks

Add SBNumber index validation to API

14 months ago[LoongArch64] amend the crossgen2/r2rdump for LA64. (#85038)
Qiao Pengcheng [Wed, 17 May 2023 15:11:06 +0000 (23:11 +0800)]
[LoongArch64] amend the crossgen2/r2rdump for LA64. (#85038)

14 months agoInitial build configuration for Haiku (#86303)
Trung Nguyen [Wed, 17 May 2023 15:10:39 +0000 (01:10 +1000)]
Initial build configuration for Haiku (#86303)

* Haiku: Initial configuration support

Initially recognize Haiku as a supported platform in
Directory.Build.props and all scripts in eng/**.

* Drop some unused configure values

Drop some unused configure values from tryrun.cmake,
configure.cmake and config.h.in.

* Simplify error message in build.sh

Simplified an error message for the `--os` option to avoid maintaining a duplicate list of OSes.

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
14 months agoJIT: Stop specifying general JitStress in OSR/largefuncletframe (#86380)
Jakob Botsch Nielsen [Wed, 17 May 2023 14:58:32 +0000 (16:58 +0200)]
JIT: Stop specifying general JitStress in OSR/largefuncletframe (#86380)

Otherwise new stress modes can change what the test is testing. I
verified that these stress modes reproduced the original issue back when
the test was introduced.

Fix #86185

14 months agoInclude Native AOT pdbs in Helix payload (#86367)
Michal Strehovský [Wed, 17 May 2023 14:50:46 +0000 (23:50 +0900)]
Include Native AOT pdbs in Helix payload (#86367)

14 months agoAdd ToDictionary() overloads for KeyValuePair and ValueTuple kv. (#85811)
LateApexEarlySpeed [Wed, 17 May 2023 14:25:35 +0000 (22:25 +0800)]
Add ToDictionary() overloads for KeyValuePair and ValueTuple kv. (#85811)

* Initial commit to add ToDictionary() overloads for KeyValuePair and ValueTuple kv.

* Add xml doc; add tests.

* Fix comments: use Dictionary's ctor for IEnumerable<KeyValuePair<>> overload; API signature changed to nullable comparer.

* Throw ArgumentNullExp with 'source' parameter name.

14 months agoSpecial-case array/list in Dictionary(IEnumerable, …) ctors (#86254)
Stephen Toub [Wed, 17 May 2023 14:23:45 +0000 (10:23 -0400)]
Special-case array/list in Dictionary(IEnumerable, …) ctors (#86254)

* Special-case array/list in Dictionary(IEnumerable, ...) ctors

It's reasonably common to construct a dictionary from a `KeyValuePair<TKey, TValue>[]` or a `List<KeyValuePair<TKey, TValue>>`, and we can make both cheaper.

14 months ago[RISC-V][JIT] Fix floating-point args passing (#86244)
Dong-Heon Jung [Wed, 17 May 2023 13:09:41 +0000 (22:09 +0900)]
[RISC-V][JIT] Fix floating-point args passing (#86244)

14 months ago[browser] Fix using startupOptions when loadBootResource is not specified (#86371)
Marek Fišera [Wed, 17 May 2023 12:56:00 +0000 (14:56 +0200)]
[browser] Fix using startupOptions when loadBootResource is not specified (#86371)

- Fix passing startupOptions to resourceLoader creation when loadBootResource is not specified
- Fix propagating applicationEnvironment

14 months agoBaseline Native AOT tests (#86366)
Michal Strehovský [Wed, 17 May 2023 12:08:20 +0000 (21:08 +0900)]
Baseline Native AOT tests (#86366)

* Remove NativeAOT test exclusion for issue #83167

Resolves #83167.

* Update tests.proj

* Update tests.proj

14 months agofix the regs conflicts within the `addResolution` for LoongArch64 and RISC-V. (#86294)
Qiao Pengcheng [Wed, 17 May 2023 11:46:10 +0000 (19:46 +0800)]
fix the regs conflicts within the `addResolution` for LoongArch64 and RISC-V. (#86294)

* Fix the regs conflicts within the `addResolution` for LoongArch64/RISC-V.

* amend the code for CR.

* add terminatorNodeLclVarDsc2 for the second op2.

14 months agoProcessTests: allow WorkingSet to be zero just after launching the process. (#85649)
Tom Deseyn [Wed, 17 May 2023 10:06:24 +0000 (12:06 +0200)]
ProcessTests: allow WorkingSet to be zero just after launching the process. (#85649)

* ProcessTests: allow WorkingSet to be zero just after launching the process.

The WorkingSet tests fail on Fedora 38+ because a zero working set value
is observed just after the process start.

14 months agoFix debug compile error in mono mini (#86329)
Tobias Mollstam [Wed, 17 May 2023 08:56:14 +0000 (10:56 +0200)]
Fix debug compile error in mono mini (#86329)

14 months agoRestructure WellKnownOids.cs to reduce binary size (#84921)
Adeel Mujahid [Wed, 17 May 2023 08:52:29 +0000 (11:52 +0300)]
Restructure WellKnownOids.cs  to reduce binary size (#84921)

14 months agoEnable eh runtime tests on Interpreter (#86307)
Milos Kotlar [Wed, 17 May 2023 08:15:53 +0000 (10:15 +0200)]
Enable eh runtime tests on Interpreter (#86307)

14 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 218192...
dotnet bot [Wed, 17 May 2023 06:09:42 +0000 (23:09 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2181920 (#86361)

14 months ago[ComInterfaceGenerator] Add tests for diagnostics, and copy attributes from base...
Jackson Schuster [Wed, 17 May 2023 05:44:07 +0000 (22:44 -0700)]
[ComInterfaceGenerator] Add tests for diagnostics, and copy attributes from base methods to generated shadowing methods (#86344)

Adds tests to ensure expected diagnostics are produced for interfaces with a Guid and generic interfaces.
Copies attributes on methods on base methods to the generated shadowing method definitions.
Adds Test type with a CompilationVerifier field of Action to make it easier to make one-off tests that verify compilations without making a new type.

14 months ago[wasm][node] Disable System.Net.Http.Functional with timeouts (#86321)
Ilona Tomkowicz [Wed, 17 May 2023 03:01:50 +0000 (05:01 +0200)]
[wasm][node] Disable System.Net.Http.Functional with timeouts (#86321)

Disabled tests that are timing out on node 16.19.0. On the newer version, 19.9.0 it's already fine.
Removing timeouts uncovered a bunch of failures that are gone in the newer node as well.

Related issues: https://github.com/dotnet/runtime/issues/86317, and https://github.com/dotnet/runtime/issues/86326

* Active issue.

* Disable failures uncovered when timeouts are gone.

14 months agoExclude profiler/r2r tests from building (#86314)
Michal Strehovský [Wed, 17 May 2023 01:20:42 +0000 (10:20 +0900)]
Exclude profiler/r2r tests from building (#86314)

These are excluded in issues.targets, but we shouldn't even build them.

14 months agoFix incorrect usage of u16_strcmp instead of u16_strncmp (#86356)
David Wrighton [Wed, 17 May 2023 01:02:01 +0000 (18:02 -0700)]
Fix incorrect usage of u16_strcmp instead of u16_strncmp (#86356)

14 months agoSupport remaining collections in config binder generator (#86285)
Layomi Akinrinade [Tue, 16 May 2023 23:15:26 +0000 (16:15 -0700)]
Support remaining collections in config binder generator (#86285)

* Support remaining collections in config binder generator

* Address feedback

* Fix IReadOnlyDictionary net462 issue

14 months agoPooled async value task for HTTP 1 connection (#81426)
Theon [Tue, 16 May 2023 22:01:49 +0000 (05:01 +0700)]
Pooled async value task for HTTP 1 connection (#81426)

Use PoolingAsyncValueTaskMethodBuilder for
System.Net.Http.HttpConnection to improve asynchronous performance.

Fix dotnet#81318

Co-authored-by: Theon McKendry <theon.mckendry@outlook.com>
14 months agoFix be test #2 (#86323)
Egor Bogatov [Tue, 16 May 2023 21:49:18 +0000 (23:49 +0200)]
Fix be test #2 (#86323)

14 months agoClean up some code after the interface inheritance work (#86347)
Jeremy Koritzinsky [Tue, 16 May 2023 21:40:58 +0000 (14:40 -0700)]
Clean up some code after the interface inheritance work (#86347)

14 months agoConstrained mask should take into account busy registers (#85933)
Kunal Pathak [Tue, 16 May 2023 21:04:05 +0000 (14:04 -0700)]
Constrained mask should take into account busy registers (#85933)

* NO MERGE

* Revert "NO MERGE"

This reverts commit 68657c6d26c47fbba5dfddbe0ba8157ed449a71b.

* Make sure constrained regMask doesn't include busy registers

* add the missing parameter

* fix superpmi failure

* fix the release errors

* review comment

* review comment

* use gtSkipReloadOrCopy()

* update the assert

14 months agoClean up dead code in illink targets (#85741)
Sven Boemer [Tue, 16 May 2023 20:36:48 +0000 (13:36 -0700)]
Clean up dead code in illink targets (#85741)

Removes TFM version checks, and adds a warning when using
explicit ILLink package reference.

We reference ILLink as a packagereference that versions with the
runtime, so the 8.0 linker is only supported when targeting
`net8.0`, and we can remove the TFM checks. We don't want to
support someone adding a PackageReference to an 8.0 linker, while
targeting an older TFM, in an attempt to get newer linker bits
but with settings that were closer to what we shipped with that
TFM.

---------

Co-authored-by: Marek Safar <marek.safar@gmail.com>
Co-authored-by: Vitek Karas <10670590+vitek-karas@users.noreply.github.com>
14 months agoWrite the generated file header to the ComInterfaceGenerator-generated files (#86283)
Jeremy Koritzinsky [Tue, 16 May 2023 20:15:15 +0000 (13:15 -0700)]
Write the generated file header to the ComInterfaceGenerator-generated files (#86283)