platform/upstream/dotnet/runtime.git
2 years agoMerge branch 'darc-main-31d4c308-6782-4440-8589-61f58f239059' of https://github.com...
Juan Sebastian Hoyos Ayala [Wed, 13 Apr 2022 23:27:07 +0000 (16:27 -0700)]
Merge branch 'darc-main-31d4c308-6782-4440-8589-61f58f239059' of https://github.com/dotnet/runtime into darc-main-31d4c308-6782-4440-8589-61f58f239059

2 years agoDisable warning C4679 in IJW tests
Juan Sebastian Hoyos Ayala [Wed, 13 Apr 2022 23:26:44 +0000 (16:26 -0700)]
Disable warning C4679 in IJW tests

2 years agoFix queue name
Juan Hoyos [Wed, 13 Apr 2022 20:59:03 +0000 (13:59 -0700)]
Fix queue name

2 years agoUse preview 3 SDK
Juan Hoyos [Wed, 13 Apr 2022 20:38:36 +0000 (13:38 -0700)]
Use preview 3 SDK

2 years agoUse VS preview pools for Windows build jobs
Juan Hoyos [Wed, 13 Apr 2022 20:37:53 +0000 (13:37 -0700)]
Use VS preview pools for Windows build jobs

2 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20220412.2
dotnet-maestro[bot] [Wed, 13 Apr 2022 12:25:19 +0000 (12:25 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 20220412.2

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

2 years agoMerge remote-tracking branch 'origin/main' into darc-main-31d4c308-6782-4440-8589...
Ankit Jain [Tue, 12 Apr 2022 16:18:53 +0000 (16:18 +0000)]
Merge remote-tracking branch 'origin/main' into darc-main-31d4c308-6782-4440-8589-61f58f239059

2 years agoDisable EMSDK wasm.build.tests due to https://github.com/dotnet/arcade/issues/9025
Ankit Jain [Tue, 12 Apr 2022 16:18:33 +0000 (16:18 +0000)]
Disable EMSDK wasm.build.tests due to https://github.com/dotnet/arcade/issues/9025

2 years agoFix unsupported type detection when serializing polymorphic System.Type instances...
Eirik Tsarpalis [Tue, 12 Apr 2022 16:07:07 +0000 (17:07 +0100)]
Fix unsupported type detection when serializing polymorphic System.Type instances (#67618)

2 years agoJIT: fix interaction of OSR and shadowed parameters (#67884)
Andy Ayers [Tue, 12 Apr 2022 15:59:36 +0000 (08:59 -0700)]
JIT: fix interaction of OSR and shadowed parameters (#67884)

If a Tier0 method has shadowed parameters, the patchpoint info it creates
must refer to the stack slots for the shadow copies. Otherwise any updates
made to the params by the Tier0 code will not be seen by the OSR method.

Fixes #67410.

2 years agoFix sos.eeheap's LoaderCodeHeap sizes (#67885)
Mike McLaughlin [Tue, 12 Apr 2022 15:53:18 +0000 (08:53 -0700)]
Fix sos.eeheap's LoaderCodeHeap sizes (#67885)

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

2 years agoAdding missing SDK assets for Publish (#67765)
Lakshan Fernando [Tue, 12 Apr 2022 15:40:04 +0000 (08:40 -0700)]
Adding missing SDK assets for Publish (#67765)

* Adding missing SDK assets for Publish

* FB

* build break fix

* case senstive dir fix

* adding comments to the targets file

2 years agoAdd ReplenishingRateLimiter and IdleDuration (#67020)
Brennan [Tue, 12 Apr 2022 15:34:06 +0000 (08:34 -0700)]
Add ReplenishingRateLimiter and IdleDuration (#67020)

2 years agoFix & => && typo in Uri (#67900)
Miha Zupan [Tue, 12 Apr 2022 15:10:55 +0000 (17:10 +0200)]
Fix & => && typo in Uri (#67900)

2 years ago[HTTP/3] Reenable ResponseCancellation_ServerReceivesCancellation (#67535)
Radek Zikmund [Tue, 12 Apr 2022 14:48:04 +0000 (16:48 +0200)]
[HTTP/3] Reenable ResponseCancellation_ServerReceivesCancellation (#67535)

Since #57156 enforced sending RequestCancelled HTTP response code when disposing the stream, we no longer need to check for the 0xffffffff error code.

2 years ago[Mono] Fix warnings to enable W4 on Windows. (#66710)
Johan Lorensson [Tue, 12 Apr 2022 13:49:09 +0000 (15:49 +0200)]
[Mono] Fix warnings to enable W4 on Windows. (#66710)

Fix warnings to enable W4 on Windows.

2 years agoFix hanging of NamedPipeClientStream when connecting with infinite timeout (#66877)
Aleksei Abakumkin [Tue, 12 Apr 2022 13:39:26 +0000 (16:39 +0300)]
Fix hanging of NamedPipeClientStream when connecting with infinite timeout (#66877)

* Add new test for named pipe client stream.

The test includes the situation when the NamedPipeClientStream
doesn't response to the cancellation token.

* Handle case with infinite timeout properly.

2 years agoFaster IndexOf for arm64 (#67811)
Egor Bogatov [Tue, 12 Apr 2022 13:19:04 +0000 (16:19 +0300)]
Faster IndexOf for arm64 (#67811)

2 years agoFix Assembly.LoadFrom resolver (#67890)
Jan Kotas [Tue, 12 Apr 2022 12:59:40 +0000 (05:59 -0700)]
Fix Assembly.LoadFrom resolver (#67890)

Path.GetFullPath fails on empty path. Check for empty requestor path earlier.

Fixes #67802

2 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20220411.6
dotnet-maestro[bot] [Tue, 12 Apr 2022 12:21:23 +0000 (12:21 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 20220411.6

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

2 years agoStop passing StandardOptimizationData.mibc to crossgen2 multiple times for SPC (...
Jakob Botsch Nielsen [Tue, 12 Apr 2022 11:38:46 +0000 (13:38 +0200)]
Stop passing StandardOptimizationData.mibc to crossgen2 multiple times for SPC (#67458)

Also disabled managed PGO for SourceBuild as before it was relying on no .mibc files being around to avoid passing the --mibc parameter.

2 years agoDisabe regex timeout test (#67898)
Stephen Toub [Tue, 12 Apr 2022 11:11:31 +0000 (07:11 -0400)]
Disabe regex timeout test (#67898)

2 years ago[arm64] Add RCPC ISA (8.3+) and use ldap for volatile reads (#67384)
Egor Bogatov [Tue, 12 Apr 2022 10:54:13 +0000 (13:54 +0300)]
[arm64] Add RCPC ISA (8.3+) and use ldap for volatile reads (#67384)

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
2 years agoMark GCStressIncompatible and similar tests as out-of-proc (#67876)
Tomáš Rylek [Tue, 12 Apr 2022 09:30:02 +0000 (11:30 +0200)]
Mark GCStressIncompatible and similar tests as out-of-proc (#67876)

According to current architecture we must mark conditionally
enabled tests as out of process because the special conditions
are tested in their individual execution scripts that are skipped
for ordinary merged tests.

Thanks

Tomas

2 years agofix off-by-1000 error in Interop.Process (#67834)
Ben [Tue, 12 Apr 2022 07:00:24 +0000 (03:00 -0400)]
fix off-by-1000 error in Interop.Process (#67834)

fixes #67807

2 years agoRun large file test on its own (#67857)
Dan Moseley [Tue, 12 Apr 2022 06:45:45 +0000 (00:45 -0600)]
Run large file test on its own (#67857)

* Segregate large file StreamReader test

* Extract just problematic test from BinaryWriter.Encoding tests

2 years agoCode fix to add DisableRuntimeMarshalling when required (#67676)
Jeremy Koritzinsky [Tue, 12 Apr 2022 04:54:37 +0000 (21:54 -0700)]
Code fix to add DisableRuntimeMarshalling when required (#67676)

2 years agoFix error message for invalid assembly name (#67882)
Jan Kotas [Tue, 12 Apr 2022 04:06:24 +0000 (21:06 -0700)]
Fix error message for invalid assembly name (#67882)

The error message is always used for invalid assembly name. Delete mention of codebase to avoid confusion.

2 years agoFix inadvertent logical AND (#67875)
Dan Moseley [Tue, 12 Apr 2022 02:25:43 +0000 (20:25 -0600)]
Fix inadvertent logical AND (#67875)

2 years agoFix exception and enable event logging when service has no name (#67827)
Dan Moseley [Tue, 12 Apr 2022 02:25:20 +0000 (20:25 -0600)]
Fix exception and enable event logging when service has no name (#67827)

* Increase timeouts that are sporadically being hit

* Add logging to TestServiceInstaller

* Update ServiceTypeOptions to match header

* Rename SERVICE_ constants to match header

* Remove defunct comment

* Add failing test

* Remove event log noise

* Make test pass

* more apos

* spacing

* feedback

* Avoid overwriting last error

* feedback

2 years agoAlso update the rpmpkg job
Juan Hoyos [Tue, 12 Apr 2022 02:12:53 +0000 (19:12 -0700)]
Also update the rpmpkg job

2 years agoS.S.C.Cose: Add Async Stream-based signatures (#67786)
David Cantú [Tue, 12 Apr 2022 01:32:49 +0000 (18:32 -0700)]
S.S.C.Cose: Add Async Stream-based signatures (#67786)

* Add SignAsync(stream) and VerifyAsync(Stream)

* Address src feedback

* * Add sync Stream APIs and tests
* Address feedback

* * Add newlines to long signatures
* Remove try-finally form ArrayPool rents on async context

2 years agoExplicitly referencing the latest Netstandard library (#67866)
Lakshan Fernando [Mon, 11 Apr 2022 23:51:05 +0000 (16:51 -0700)]
Explicitly referencing the latest Netstandard library (#67866)

* Explicitly referencing the latest Netstandard library

* FB

2 years agoConsider `Type.IsByRefLike` an intrinsic when possible (#67852)
Aaron Robinson [Mon, 11 Apr 2022 23:08:22 +0000 (16:08 -0700)]
Consider `Type.IsByRefLike` an intrinsic when possible (#67852)

* Consider Type.IsByRefLike an intrinsic when possible

2 years agoUse logical and for boolean operation in bstr (#67858)
Omair Majid [Mon, 11 Apr 2022 23:04:48 +0000 (19:04 -0400)]
Use logical and for boolean operation in bstr (#67858)

This seems like a mistake and recent versions of clang even complain
about it:

    /runtime/src/coreclr/palrt/bstr.cpp:50:13: error: use of bitwise '&' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
            if (SUCCEEDED(ULongMult(cchSize, sizeof(WCHAR), &temp)) &
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                    &&
    /runtime/src/coreclr/pal/inc/pal.h:5144:27: note: expanded from macro 'SUCCEEDED'
    #define SUCCEEDED(Status) ((HRESULT)(Status) >= 0)
                              ^
    /runtime/src/coreclr/palrt/bstr.cpp:50:13: note: cast one or both operands to int to silence this warning
    /runtime/src/coreclr/pal/inc/pal.h:5144:27: note: expanded from macro 'SUCCEEDED'
    #define SUCCEEDED(Status) ((HRESULT)(Status) >= 0)
                              ^
    1 error generated.

2 years agoSupport default timeouts in RegexGenerator (#67775)
Stephen Toub [Mon, 11 Apr 2022 22:56:42 +0000 (18:56 -0400)]
Support default timeouts in RegexGenerator (#67775)

If you pass a timeout to Regex's constructor, that's the timeout that's used, and if it's infinite, no timeout is applied.  However, if you don't specify a timeout, then while it defaults to infinite, it's also overridable by a process-wide AppContext switch.  An AppContext value can be set before any Regex usage, and then any regexes that don't specify a timeout will default to that process-wide timeout value rather than to infinite.

With RegexGenerator, the code is all generated ahead of time, before there's even a process in which to check for a setting, as such, up until now not specifying a timeout has been the same as explicitly specifying infinite.  With this PR, we fix that.  If you explicitly specify a timeout, infinite or otherwise, nothing changes.  But if you don't specify a timeout, we now still emit the timeout related checks, but guarded by a read of a static readonly bool that's initialized with a read for that same AppContext switch.  This allows for the generated code to still participate in the global default while allowing the JIT to remove the guarded blocks when the code is tiered up and it observes that the readonly static highlights there's no default set (in the vast majority case).  And if someone really doesn't want that code emitted at all, they can simplify specify an infinite timeout in the RegexGenerator attribute.

2 years ago[wasm] Debugger tests - always use the same sdk on helix, as the one
Ankit Jain [Mon, 11 Apr 2022 22:40:15 +0000 (22:40 +0000)]
[wasm] Debugger tests - always use the same sdk on helix, as the one

.. used for building.

This failed when `global.json` specified a preview4 sdk, which was used
to build the tests. But the built tests (including the preview4 testhost) were
send to helix with the preview2 (version set by arcade -
`DotNetCliVersion`), which causes:

```
Testhost process exited with error: It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '7.0.0-preview.4.22201.3' (x64) was not found.
  - The following frameworks were found:
      7.0.0-preview.2.22152.2 at [C:\helix\work\correlation\dotnet-cli\shared\Microsoft.NETCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
```

2 years agoAdded test for extracting zip files with invalid characters in Windows (#67332)
Danyy427 [Mon, 11 Apr 2022 22:36:04 +0000 (01:36 +0300)]
Added test for extracting zip files with invalid characters in Windows (#67332)

* Added test for extracting zip files with invalid characters in Windows

* Removed faulty test case

* Removed redundant test cases, Added contents of the InvalidWindowsFileNameChars.zip

* Replaced "+"s to Path.Combine for forming the test file path.

* Update src/libraries/System.IO.Compression.ZipFile/tests/ZipFile.Extract.cs

* Added code to use ValidFullName across several files

* Removed weird character

* Added Sanitization

* Fixed Typo

* Fixed wrong if statement

* Fixed wrong filename in test

* Added sanitization as a method

The tests added pass with this build

* Fixed tests that didn't pass

* Cleaned up code

* Removed unnecessary tests

* Change agnostic TFM back to Windows

* spacing

* Changed default target framework to Unix

* Defaulted framework to unix

* Removed Browser

* Update src/libraries/System.IO.Compression.ZipFile/tests/ZipFile.Create.cs

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
2 years ago[mono] Avoid trying to fork to a debugger on tvos. (#67856)
Zoltan Varga [Mon, 11 Apr 2022 21:20:21 +0000 (23:20 +0200)]
[mono] Avoid trying to fork to a debugger on tvos. (#67856)

2 years agoUpdate xlf files (#67863)
Elinor Fung [Mon, 11 Apr 2022 18:47:10 +0000 (11:47 -0700)]
Update xlf files (#67863)

2 years agoUpdate message based on offline feedback. (#67860)
Aaron Robinson [Mon, 11 Apr 2022 18:20:01 +0000 (11:20 -0700)]
Update message based on offline feedback. (#67860)

2 years agoRemove workaround that adds net7 tfm for installer tests
Juan Hoyos [Mon, 11 Apr 2022 17:50:11 +0000 (10:50 -0700)]
Remove workaround that adds net7 tfm for installer tests

2 years agoUpdate debpkg image
Juan Hoyos [Mon, 11 Apr 2022 17:48:07 +0000 (10:48 -0700)]
Update debpkg image

2 years agoAdded the `hard_limit_exceeded_p` back as without it, we won't be retrying another...
Mukund Raghav Sharma [Mon, 11 Apr 2022 17:01:30 +0000 (10:01 -0700)]
Added the `hard_limit_exceeded_p` back as without it, we won't be retrying another heap to fit the new allocation. (#67724)

* Added the `hard_limit_exceeded_p` back as without it, we will be not retrying another heap.

* Added fix for the setting commit_failed_p = TRUE only in the regions case

* Addressed feedback for the case where the heap hard limit isn't set for regions

* Fix based on feedback:

* Using positive directive logic

2 years agoAdd more diagnostics info for LookupProperty assert failure (#67838)
Krzysztof Wicher [Mon, 11 Apr 2022 15:13:03 +0000 (17:13 +0200)]
Add more diagnostics info for LookupProperty assert failure (#67838)

* Add more diagnostics info for LookupProperty assert failure

* Cacache -> Cache

* obj is actually nullable

* cleanup and add more debug info

* #if around Debug.Assert

2 years agoSmall MsQuicStream reafactorings (#67839)
Radek Zikmund [Mon, 11 Apr 2022 14:47:06 +0000 (16:47 +0200)]
Small MsQuicStream reafactorings (#67839)

* Merge `NativeCallbackHandler` and `HandleEvent`

* Use constants for `_state.ShutdownDone`

* Don't use Handle... prefix for private helpers

* Send state transition comments

2 years agoRemoving of unused parameter (#67836)
Piotr Karocki [Mon, 11 Apr 2022 14:43:24 +0000 (16:43 +0200)]
Removing of unused parameter (#67836)

previousKey is (probably) some orphan from older versions.

2 years agoReenable SocketsHttpHandlerTest_Http3_MsQuic.ClientSettingsReceived_Success test...
Radek Zikmund [Mon, 11 Apr 2022 13:47:52 +0000 (15:47 +0200)]
Reenable SocketsHttpHandlerTest_Http3_MsQuic.ClientSettingsReceived_Success test (#67418)

2 years agoAdd CoverageIncludeTests mention to coverage.md (#67779)
Stephen Toub [Mon, 11 Apr 2022 13:43:29 +0000 (09:43 -0400)]
Add CoverageIncludeTests mention to coverage.md (#67779)

2 years agoTest not adding KnownFrameworkReference
Juan Sebastian Hoyos Ayala [Mon, 11 Apr 2022 08:54:39 +0000 (01:54 -0700)]
Test not adding KnownFrameworkReference

2 years agoFix dbgshim entry in platform manifest (#67831)
Juan Hoyos [Mon, 11 Apr 2022 08:24:09 +0000 (01:24 -0700)]
Fix dbgshim entry in platform manifest (#67831)

This fixes the official build - mono's dbgshim still ships from the runtime repo.

2 years agoBump installer tests to 7.0 targetting packs
Juan Sebastian Hoyos Ayala [Mon, 11 Apr 2022 03:19:26 +0000 (20:19 -0700)]
Bump installer tests to 7.0 targetting packs

2 years agoRemove COM from profiler messages (#67774)
Dan Moseley [Sun, 10 Apr 2022 23:44:05 +0000 (17:44 -0600)]
Remove COM from profiler messages (#67774)

* Remove COM from profiler messages

* Remove COR_ mentions

2 years agoTake method, XML documentation corrections (#67812)
Theodor Zoulias [Sun, 10 Apr 2022 23:30:05 +0000 (02:30 +0300)]
Take method, XML documentation corrections (#67812)

The public T Take(); method doesn't throw OperationCanceledException.

2 years agoDelete dead code (#67648)
Viktor Hofer [Sun, 10 Apr 2022 22:48:47 +0000 (00:48 +0200)]
Delete dead code (#67648)

2 years agoDelete dummy ==++== file headers (#67823)
Jan Kotas [Sun, 10 Apr 2022 19:04:55 +0000 (12:04 -0700)]
Delete dummy ==++== file headers (#67823)

These file headers are leftovers from before open sourcing. We have missed cleaning them up in some files.

2 years agoUse CRT implementation of memset/memcpy (#67788)
Kunal Pathak [Sun, 10 Apr 2022 15:30:35 +0000 (08:30 -0700)]
Use CRT implementation of memset/memcpy (#67788)

* Use CRT implementation of memset/memcpy

* Remove the outdated comment:

2 years agoRemove dead strings from .rc files (#67817)
Dan Moseley [Sun, 10 Apr 2022 15:29:43 +0000 (09:29 -0600)]
Remove dead strings from .rc files (#67817)

2 years agoDelete some Win9x-specific code and comments (#67814)
Jan Kotas [Sun, 10 Apr 2022 04:58:35 +0000 (21:58 -0700)]
Delete some Win9x-specific code and comments (#67814)

2 years agoGC: Correctly align `exclusive_sync.alloc_objects` (#67799)
creator1creeper1 [Sat, 9 Apr 2022 18:06:57 +0000 (20:06 +0200)]
GC: Correctly align `exclusive_sync.alloc_objects` (#67799)

Previously, the calculation of the `cache_separator` size of the array
failed to take the first member `rwp_object` into account. Therefore,
`alloc_objects` was not properly aligned to `HS_CACHE_LINE_SIZE`.

2 years ago[mono] Cleanup unused code and remove sparc and mips architectures (#67503)
Alexander Köplinger [Sat, 9 Apr 2022 17:52:53 +0000 (19:52 +0200)]
[mono] Cleanup unused code and remove sparc and mips architectures (#67503)

* Remove linux_magic.h

* Remove dead files

* Remove remap_keys() in assembly.c

It is no longer needed.

* Remove mono_dump_jit_offsets/mono_dump_metadata_offsets

It was actually producing incorrect code, see https://github.com/mono/mono/issues/13689
This wasn't noticed because we're generating the offsets file via offsets-tool.py and that uses the correct target.platform_define which is passed to the script.

The code in metadata-cross-helpers.c was only used as a verification helper but I don't think it has enough value to keep.

* Remove leftover code from Mono.Simd

* Remove leftover code from Mono.Tasklets

* Remove unused functions in mono-proclib.c

* Remove sparc and mips architecture

* Disable the Vector4 SIMD fix, it causes an issue

See https://github.com/dotnet/runtime/issues/67762

2 years agoFix for the elusive suspension hang on Win7 WOW64 (#67628)
Vladimir Sadov [Sat, 9 Apr 2022 17:43:53 +0000 (10:43 -0700)]
Fix for the elusive suspension hang on Win7 WOW64 (#67628)

* Do not use CONTEXT_EXCEPTION_REQUEST anywhere except in EEGetThreadContext

* a test for suspension livelock in concurrent stack producer-consumer scenario

2 years agoAdding class target to RequiresDynamicCodeAttribute (#67778)
Lakshan Fernando [Sat, 9 Apr 2022 17:24:58 +0000 (10:24 -0700)]
Adding class target to RequiresDynamicCodeAttribute (#67778)

* Adding class target to RequiresDynamicCodeAttribute

* FB

2 years agoFabricBot config: Viktor is back (#67787)
Jeff Handley [Sat, 9 Apr 2022 16:19:51 +0000 (09:19 -0700)]
FabricBot config: Viktor is back (#67787)

2 years agoAlways run CopyAllNativeProjectReferenceBinaries (#67718)
Tomáš Rylek [Sat, 9 Apr 2022 14:03:45 +0000 (16:03 +0200)]
Always run CopyAllNativeProjectReferenceBinaries (#67718)

Previously this target was only called from the recursive traversal
used when globally copying native artifacts for all projects (this
is used in the lab where the native artifacts are produced on
a different machine than the managed test artifacts). In case of
combined (local) test build we weren't running the target, only
its dependencies (ResolveCMakeNativeProjectReference and
ConsolidateNativeProjectReference); this used to be sufficient as
these two targets handle all logic related to copying native
components of a normal project, however I have recently added
special logic for copying merged test wrapper native artifacts
the CopyAllNativeProjectReferenceBinaries target and so we now must
make sure it also always runs.

Mark JIT optimization-sensitive tests as out-of-process and fix
logic around skipping of out-of-process tests on the excluded platforms.

Fix GetFilteredExcludeList to properly report out-of-process tests

Add issues.targets exclusions for compat_i4_u_il_d / compat_i4_u_il_r
on all Mono platforms

Log timestamps in generated wrapper for investigation of timeouts

Log timestamps around Crossgen2 invocations for investigation of timeouts

Suppress noisy stderr spew for deletion of non-existent rsp files

Expand test timeout to 30 minutes

In the merged scenario we're intentionally reducing the number of
work items at the expense of a single work item size. When
Crossgen2 compilation is involved, with hundreds of tests in the
Methodical_*** projects we're hitting the 15 minute test timeout
so I'm bumping it up to 30. I have also suppressed uninteresting
stderr spew from deletion of the pre-existing composite image.

Thanks

Tomas

2 years agoRemove Roslyn workaround in NativeAOT smoke test (#67795)
Michal Strehovský [Sat, 9 Apr 2022 13:37:52 +0000 (22:37 +0900)]
Remove Roslyn workaround in NativeAOT smoke test (#67795)

Might not be needed after #67780.

2 years agoUpdate coding-style.md (#67801)
Adeel Mujahid [Sat, 9 Apr 2022 13:37:05 +0000 (16:37 +0300)]
Update coding-style.md (#67801)

* Remove mention of outdated formatting script and C++ language that was removed from libraries.
* Move C# coding style at the top of document.

2 years agoRewrite RegexPrefixAnalyzer.FindFirstCharClass (#67732)
Stephen Toub [Sat, 9 Apr 2022 13:28:22 +0000 (09:28 -0400)]
Rewrite RegexPrefixAnalyzer.FindFirstCharClass (#67732)

Every other analysis we use is on a recursion plan; this one is the last holdover that's still based on iteration maintaining its own custom stack of objects, making it difficult to comprehend the logic.  As it turns out, it also has some bugs causing it to miss some cases, in particular where the pattern starts with an anchor followed by a negated set.  This PR rewrites it to be simpler / recursive like the rest of our analyses.

2 years agoVectorize IndexOf for OrdinalIgnoreCase (#67758)
Egor Bogatov [Sat, 9 Apr 2022 09:54:15 +0000 (12:54 +0300)]
Vectorize IndexOf for OrdinalIgnoreCase (#67758)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoRe-adding some tests that were commented out now that IgnoreCase work is done (#67709)
Jose Perez Rodriguez [Sat, 9 Apr 2022 05:43:54 +0000 (22:43 -0700)]
Re-adding some tests that were commented out now that IgnoreCase work is done (#67709)

2 years agoUpdate C# compiler and revert workaround
Stephen Toub [Sat, 9 Apr 2022 04:28:49 +0000 (00:28 -0400)]
Update C# compiler and revert workaround

* Update C# compiler to pick up attribute fix

* Revert "Work around https://github.com/dotnet/roslyn/issues/60572"

This reverts commit dc030a0362e3177389f4d4e73e1332c345eab891.

2 years ago[runtime] copy updated byref nullables after invoke (#67652)
Aleksey Kliger (λgeek) [Sat, 9 Apr 2022 03:30:15 +0000 (23:30 -0400)]
[runtime] copy updated byref nullables after invoke (#67652)

* [runtime] copy updated byref nullables after invoke

Bring back some code lost in
https://github.com/dotnet/runtime/pull/60270

When a `null` is passed for a `ref Nullable<S>` argument to a runtime
invoke, the invoke wrapper creates a default `Nullable` that should be
copied back into the original arguments array of the invoke.

There is code in the managed `Invoke` method to do some of the copying from the temporary
array that is created for the Invoke (we pass a `Span<object>` over
that array from managed to native), but in
`mono_runtime_try_invoke_span` we create a C array `pa` that has the
arguments (this takes care of by-value semantics for value types, for
example).  We need to copy the byref nullables back from `pa` to the
span, so that managed code can then copy it back from the span to the
original input array of the Invoke.

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

2 years agoBump SDK to 7.0.100-preview.4.22204.1
Juan Hoyos [Sat, 9 Apr 2022 02:51:45 +0000 (19:51 -0700)]
Bump SDK to 7.0.100-preview.4.22204.1

Mirror version used in aspnetcore

2 years ago[Mono]Enable emitting intrinsics for System.Numerics.Vector<T> on arm64 (#67125)
Fan Yang [Sat, 9 Apr 2022 01:59:14 +0000 (21:59 -0400)]
[Mono]Enable emitting intrinsics for System.Numerics.Vector<T> on arm64 (#67125)

* Enable emitting intrinsics for System.Numerics.Vector<T> on arm64

* Handle multiply by scalar

* Fix typo

* Add support for IsHardwareAccelerated

* Move architecture specific code under corresponding functions

* Resolve feedback

* Fix scalar checking

2 years agoChange SuperPMI asm diffs relocation handling (#67688)
Bruce Forstall [Sat, 9 Apr 2022 01:58:48 +0000 (18:58 -0700)]
Change SuperPMI asm diffs relocation handling (#67688)

* Change SuperPMI asm diffs relocation handling

Add new techniques for handling relocations to prevent spurious asm diffs.
Especially, better handling for REL32 relocs on 64-bit targets, and
specifically AMD64.

With these changes, we should rarely if ever need to force REL32 relocs
to fit (there is code that already does that, as a backstop).

* Feedback

* Feedback: break out of loops once `delta` has been determined

2 years ago[wasm] Perf: Fixes for blazor_scenarios (#67414)
Ankit Jain [Sat, 9 Apr 2022 01:56:46 +0000 (21:56 -0400)]
[wasm] Perf: Fixes for blazor_scenarios (#67414)

* Bump sdk used for workload testing to 7.0.100-preview.4.22180.18

* Fix multiple issues for blazor scenarios run

* Standardize on using $(payload)/dotnet, even for wasm runs

.. which allows removing, and avoiding some special casing for wasm.

Also, fix the work item names, and job names to indicate wasm/wasmaot.

* performance-setup.sh: extra logging

* cleanup

2 years agoUpdate dependencies from https://github.com/dotnet/roslyn-analyzers build 20220407...
dotnet-maestro[bot] [Sat, 9 Apr 2022 01:37:55 +0000 (20:37 -0500)]
Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20220407.3 (#67755)

Microsoft.CodeAnalysis.NetAnalyzers
 From Version 7.0.0-preview1.22180.6 -> To Version 7.0.0-preview1.22207.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoFix some minor reflection bugs (#67571)
Michal Strehovský [Sat, 9 Apr 2022 01:22:17 +0000 (10:22 +0900)]
Fix some minor reflection bugs (#67571)

Found in System.Reflection tests.

2 years agoMerge remote-tracking branch 'origin/main' into darc-main-31d4c308-6782-4440-8589...
Ankit Jain [Sat, 9 Apr 2022 00:34:37 +0000 (20:34 -0400)]
Merge remote-tracking branch 'origin/main' into darc-main-31d4c308-6782-4440-8589-61f58f239059

2 years agoUpdate target framework for some test projects
Ankit Jain [Sat, 9 Apr 2022 00:34:27 +0000 (20:34 -0400)]
Update target framework for some test projects

2 years agoFix a JIT formatting issue (#67785)
Bruce Forstall [Sat, 9 Apr 2022 00:33:27 +0000 (17:33 -0700)]
Fix a JIT formatting issue (#67785)

2 years agoFix windows build
Ankit Jain [Fri, 8 Apr 2022 23:28:21 +0000 (19:28 -0400)]
Fix windows build

The generated path property for
`Pkgoptimization_windows_nt-x86_PGO_CoreCLR` seems to have a trailing
`\` now, on windows, which breaks the quoted use of the property:

`"-DCLR_CMAKE_OPTDATA_PATH="D:\a\_work\1\s\.packages\optimization.windows_nt-x86.pgo.coreclr\1.0.0-prerelease.22121.2\""`

Since this is a directory path being passed, it should be safe to always
trim the trailing `\`.

This manifests as:
```
  Calling "D:\a\_work\1\s\src\coreclr\..\..\eng\native\gen-buildsys.cmd" "D:\a\_work\1\s\src\coreclr" "D:\a\_work\1\s\src\coreclr\..\..\artifacts\obj\coreclr\windows.x64.Release" vs2019 x64 "-DCMAKE_BUILD_TYPE=Release" "-DCLR_CMAKE_TARGET_ARCH=x64" "-DCLR_CMAKE_TARGET_OS=windows" "-DCLR_CMAKE_PGO_INSTRUMENT=0" "-DCLR_CMAKE_OPTDATA_PATH="D:\a\_work\1\s\.packages\optimization.windows_nt-x64.pgo.coreclr\1.0.0-prerelease.22121.2\"" "-DCLR_CMAKE_PGO_OPTIMIZE=1"
  CMake Warning:
    No source or binary directory provided.  Both will be assumed to be the
    same as the current working directory, but note that this warning will
    become a fatal error in future CMake releases.

```
.. and ..
```
  CMake Warning:
    Manually-specified variables were not used by the project:

      CLR_CMAKE_OPTDATA_PATH
```

and eventually:
```
 ##[error]BUILD: Error: unable to find generated native component build project
```

2 years agoUpdate host tracing doc to match the current functionality (#67749)
Vitek Karas [Fri, 8 Apr 2022 23:10:58 +0000 (16:10 -0700)]
Update host tracing doc to match the current functionality (#67749)

I rewrote the doc to act as a point-in-time documentation (instead of a proposal as before).

Co-authored-by: Elinor Fung <elfung@microsoft.com>
2 years agoUpdate WasmApp.LocalBuild.props to net7.0 too, whoops
Larry Ewing [Fri, 8 Apr 2022 23:00:45 +0000 (18:00 -0500)]
Update WasmApp.LocalBuild.props to net7.0 too, whoops

2 years agoPass cancellation token to ReadToEndAsync
Larry Ewing [Fri, 8 Apr 2022 22:48:37 +0000 (17:48 -0500)]
Pass cancellation token to ReadToEndAsync

2 years agoUpdate Microsoft.DotNet.HotReload.Utils.Generator.BuildTool to 1.1.0-alpha.0.22206.1
Larry Ewing [Fri, 8 Apr 2022 22:32:55 +0000 (17:32 -0500)]
Update Microsoft.DotNet.HotReload.Utils.Generator.BuildTool to 1.1.0-alpha.0.22206.1

2 years agoMove tools and apps to net7.0
Larry Ewing [Fri, 8 Apr 2022 22:26:16 +0000 (17:26 -0500)]
Move tools and apps to net7.0

2 years agoMerge remote-tracking branch 'upstream/main' into darc-main-31d4c308-6782-4440-8589...
Larry Ewing [Fri, 8 Apr 2022 22:19:11 +0000 (17:19 -0500)]
Merge remote-tracking branch 'upstream/main' into darc-main-31d4c308-6782-4440-8589-61f58f239059

2 years agoRemove dbgshim and related code (#67725)
Mike McLaughlin [Fri, 8 Apr 2022 20:59:46 +0000 (13:59 -0700)]
Remove dbgshim and related code (#67725)

The dbgshim component has been moved to the diagnostics repo
and ships out of band.

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

2 years agoReflection Invoke refactoring to support future byref-like and IL emit features ...
Steve Harter [Fri, 8 Apr 2022 20:38:01 +0000 (15:38 -0500)]
Reflection Invoke refactoring to support future byref-like and IL emit features (#66357)

2 years agoUse properties for target versions for core and framework (#67717)
Larry Ewing [Fri, 8 Apr 2022 19:54:58 +0000 (14:54 -0500)]
Use properties for target versions for core and framework (#67717)

* Populate target framework versions for tasks, and generated nugets based

.. on other properties, instead of hardcoding the values.

* Version substitution for MonoTargets nuget

* Version substitution for MonoAOTCompiler nuget

* sendhelixhelp.proj: Ensure that DotNetCliVersion gets overridden, as

.. intended. This seems to have been broken by the condition being
removed in
https://github.com/dotnet/arcade/commit/cfdac3560f1c887780bac171df7c22f7805e6f40
from the `DotNetCliVersion` property, causing the value to always
overridden again to `6.0.100`.

And this breaks wasm aot/eat tests on helix:
```
/datadisks/disk1/work/A4EE08D9/p/build/wasm/WasmApp.Native.targets(569,5): error MSB4062: The "MonoAOTCompiler" task could not be loaded from the assembly /datadisks/disk1/work/A4EE08D9/p/build/MonoAOTCompiler/MonoAOTCompiler.dll. Could not load file or assembly 'System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. [/datadisks/disk1/work/A4EE08D9/w/B3AE0955/e/publish/ProxyProjectForAOTOnHelix.proj]
/datadisks/disk1/work/A4EE08D9/p/build/wasm/WasmApp.Native.targets(569,5): error MSB4062:  Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
```

* Fix build for net7.0

Fails with:
```
src/tests/tracing/eventpipe/common/Microsoft.Diagnostics.NETCore.Client/DiagnosticsIpc/IpcSocket.cs(27,35): error CS0108: 'IpcSocket.AcceptAsync(CancellationToken)' hides inherited member 'Socket.AcceptAsync(CancellationToken)'. Use the new keyword if hiding was intended. [/__w/1/s/src/tests/tracing/eventpipe/common/Microsoft.Diagnostics.NETCore.Client/Microsoft.Diagnostics.NETCore.Client.csproj]
```

* Fix some more target frameworks

* bump the workload sdk version

* Revert "sendhelixhelp.proj: Ensure that DotNetCliVersion gets overridden, as"

This reverts commit 426b4b19155d54a7f338140f4c87feec471b5d92.

Last update to Arcade's XHarnessRunner.targets unconditionally set
DotNetCliVersion, to workaround which this commit was added. But the
update in this PR changed DotNetCliPackageType to `aspnetcore-runtime`,
which makes the version from global.json - `6.0.100` incorrect for
aspnetcore.

And the next upcoming update will set versions explicitly and change the
DotNetCliPackageType back to `sdk`.

Instead, revert this. And don't use version from global.json for now,
instead relying on the version that xharnesrunner.targets sets.

Co-authored-by: Ankit Jain <radical@gmail.com>
2 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20220406.10
dotnet-maestro[bot] [Fri, 8 Apr 2022 19:18:01 +0000 (19:18 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 20220406.10

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

2 years agoFix cross dac packaging (#67710)
Juan Hoyos [Fri, 8 Apr 2022 19:02:49 +0000 (12:02 -0700)]
Fix cross dac packaging (#67710)

2 years agodisplay tidy message for failed assertions (#67750)
Badre BSAILA [Fri, 8 Apr 2022 18:44:11 +0000 (20:44 +0200)]
display tidy message for failed assertions (#67750)

2 years agoAdd metrics for caching (#66479)
Maryam Ariyan [Fri, 8 Apr 2022 18:16:17 +0000 (14:16 -0400)]
Add metrics for caching (#66479)

2 years ago[LoongArch64] coreclr-jit directory (#62843)
Qiao Pengcheng [Fri, 8 Apr 2022 17:58:36 +0000 (01:58 +0800)]
[LoongArch64] coreclr-jit directory (#62843)

* Part6-1: add the coreclr-jit directory for LoongArch64. (#59561)

Co-authored-by: Loongson's .NET-teams
* [LoongArch64] add jit/CMakeLists.txt from #62889.

* [LoongArch64] update LoongArch64 after merge from main.

* [LoongArch64] Fix the error for "IsLoongArch64".

* [LoongArch64] Fix the cross-compiling error.

* [LoongArch64] Fixed the compiling errors after merge.

* [LoongArch64] revert `src/coreclr/jit/ICorJitInfo_API_names.h`.

* [LoongArch64] workround the compiling error on windows.

* [LoongArch64] amend the code-format.

* [LoongArch64] update by `git apply format.patch`.

* [LoongArch64] Delete the interface getArgType2.
And refactor the returned values of `getFieldSizeClassificationByHnd`.

Keep aligned with #62893 `02ff4bfa41d7887b151d381e2697ba82ab6a0bca`.

* [LoongArch64] update code by `git apply format.patch`
And update `getLoongArch64PassStructInRegisterFlags`.

* [LoongArch64] Fixed the error when passing float-arg by integer-reg.

* [Loongarch64] amend patch formate by 'git apply format.patch'

* [LoongArch64] update the version of the `LICENSE description`.

* [LoongArch64] amend the CodeGen::genFnPrologCalleeRegArgs for the SC_IG_BUFFER_SIZE.

* [LoongArch64]: update the crossgen2 within the JIT.

* [LoongArch64] git-apply the `format.patch`.

* [LoongArch64] Fix the compiling error after merge-main.

* [LoongArch64] amend the code for reviewing by @BruceForstall.

* [LoongArch64] apply the `format.patch`.

* [LoongArch64] round 2 amend for reviewing by @BruceForstall.

* [LoongArch64] round 3 amend for reviewing by @BruceForstall.

* [LoongArch64] amend the format.

* [LoongArch64] round 4 amending for reviewing.

* [LoongArch64] add compiling the `clrjit_unix_loongarch64_*`.

* [LoongArch64] delete unused code and amend the format.
Also amend inst_Mov.

* [LoongArch64] apply the format and fix compiling warning.

* [LoongArch64] round 1 amend for reviewing by @kunalspathak.

* [LoongArch64] merge fast-tail-call from main.

* [LoongArch64] temp commit for windows compiling error.

* [LoongArch64] amend format for reviewing.

* [LoongArch64] amend the coding for LA-ABI's flags.

* [LoongArch64] amend some missed CRs.

* [LoongArch64] amend some code for CR.

* [LoongArch64] amend some code for CR round2.

* [LoongArch64] amend the output format of `emitDisInsName`.

* [LoongArch64] remove the optimization for type-cast
which depends on LoongArch64.

* [LoongArch64] ament the code for CR.

* [LoongArch64] amend some code for CR.

* [LoongArch64] amend some code for CR round2.

* [LoongArch64] amend some code for CR round3.

* [LoongArch64] amend some code for CR round4.

* [LoongArch64] amend some code for CR round5.

* [LoongArch64] amend some code after refacting.

* [LoongArch64] amend the compare and fix the error
when running hello-world within debug-mode.

Co-authored-by: qiaopengcheng <qiaopengcheng-hf@loongson.cn>
2 years agoAdd NoWASM to category filter (#67721)
Drew Scoggins [Fri, 8 Apr 2022 16:51:23 +0000 (09:51 -0700)]
Add NoWASM to category filter (#67721)

2 years agoAdd JitDump output for calls to recordRelocation (#67639)
Bruce Forstall [Fri, 8 Apr 2022 16:35:25 +0000 (09:35 -0700)]
Add JitDump output for calls to recordRelocation (#67639)

E.g.,

```
recordRelocation: 000001ECBD3AE28C (rw: 000001ECBD3AE28C) => 000001ECBD38BC04, type 16 (IMAGE_REL_BASED_DISP32), delta 0
```

2 years agoFurther JsonPropertyInfo caching cleanup (#67754)
Krzysztof Wicher [Fri, 8 Apr 2022 15:35:18 +0000 (17:35 +0200)]
Further JsonPropertyInfo caching cleanup (#67754)

2 years agoAllow getting code coverage for the unit test project itself (#67736)
Stephen Toub [Fri, 8 Apr 2022 15:09:35 +0000 (11:09 -0400)]
Allow getting code coverage for the unit test project itself (#67736)

This is helpful for our test projects that include source directly into them.  You can now do `dotnet build /t:test /p:Coverage=true /p:CoverageIncludeTests=true` to include the test project in the analysis.