platform/upstream/dotnet/runtime.git
3 years agoUpdate dependencies from https://github.com/dotnet/emsdk build 20210517.1 (#52839)
dotnet-maestro[bot] [Tue, 18 May 2021 14:08:39 +0000 (14:08 +0000)]
Update dependencies from https://github.com/dotnet/emsdk build 20210517.1 (#52839)

[main] Update dependencies from dotnet/emsdk

3 years agoFixed state handling in case of StreamSend fails. (#52756)
Marie Píchová [Tue, 18 May 2021 13:36:04 +0000 (15:36 +0200)]
Fixed state handling in case of StreamSend fails. (#52756)

3 years agoBuild support for s390x: eng scripts (#52840)
Ulrich Weigand [Tue, 18 May 2021 12:48:38 +0000 (14:48 +0200)]
Build support for s390x: eng scripts (#52840)

Add support for Linux on s390x as host and target build architecture.

3 years agoFix versions for Libs subset's native artifacts (#52799)
Adeel Mujahid [Tue, 18 May 2021 12:47:48 +0000 (15:47 +0300)]
Fix versions for Libs subset's native artifacts (#52799)

During the repo consolidation, we missed passing `OfficialBuildId`
argument to common script from all subsets, which resulted in default
version emitted in the binaries produced by Libs subset in the official
builds.

3 years ago[reflection] Add GC Unsafe transitions on embedding API functions (#52769)
Aleksey Kliger (λgeek) [Tue, 18 May 2021 12:41:38 +0000 (08:41 -0400)]
[reflection] Add GC Unsafe transitions on embedding API functions (#52769)

Transition to GC Unsafe mode on every MONO_RT_EXTERNAL_ONLY function in
reflection.c

In particular, fix mono_reflection_type_from_name which is used in
https://github.com/xamarin/xamarin-android/blob/681887ebdbd192ce7ce1cd02221d4939599ba762/src/monodroid/jni/embedded-assemblies.cc#L350

Fixes stack traces like

```
05-14 08:06:12.848 31274 31274 F DEBUG   :       #00 pc 00000b99  [vdso] (__kernel_vsyscall+9)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #01 pc 0005ad68  /apex/com.android.runtime/lib/bionic/libc.so (syscall+40) (BuildId: 6e3a0180fa6637b68c0d181c343e6806)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #02 pc 00076511  /apex/com.android.runtime/lib/bionic/libc.so (abort+209) (BuildId: 6e3a0180fa6637b68c0d181c343e6806)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #03 pc 0002afcd  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::MonodroidRuntime::mono_log_handler(char const*, char const*, char const*, int, void*)+141) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
05-14 08:06:12.848 31274 31274 F DEBUG   :       #04 pc 00112c5d  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (eglib_log_adapter+141) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #05 pc 00020fdf  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (monoeg_g_logv+175) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #06 pc 0002113a  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (monoeg_g_log+42) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #07 pc 00128892  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_threads_transition_do_blocking+258) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #08 pc 0012a406  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_threads_enter_gc_safe_region_unbalanced_with_info+134) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #09 pc 0012a27e  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_threads_enter_gc_safe_region_internal+46) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #10 pc 000799a7  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_loader_lock+71) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #11 pc 000447a1  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_create_from_typedef+129) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #12 pc 0003c073  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_get_checked+99) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #13 pc 0003cc0f  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_from_name_checked_aux+735) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #14 pc 00037989  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_class_from_name_checked+73) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #15 pc 000cc5f4  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_get_type_internal+132) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #16 pc 000c9bce  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_get_type_with_rootimage+126) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #17 pc 000ca204  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (_mono_reflection_get_type_from_info+292) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #18 pc 000ca06e  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_type_from_name_checked+334) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #19 pc 000c9f01  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonosgen-2.0.so (mono_reflection_type_from_name+49) (BuildId: b67e93dd750dafdd6f65f408b021b6a3a74868ac)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #20 pc 0001b40b  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+427) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #21 pc 0001b551  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+113) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
05-14 08:06:12.849 31274 31274 F DEBUG   :       #22 pc 000211a7  /data/app/~~rMrkpKmVPaBpM5jKb8fPAg==/com.microsoft.maui-JfRo8RWSDJaNtJuBa0y7_Q==/lib/x86/libmonodroid.so (xamarin::android::internal::MonodroidRuntime::typemap_java_to_managed(_MonoString*)+39) (BuildId: 9726f32ad5f8fa5e7c5762baf2f6e3294da41cc1)
```

3 years agoCleanup eglib config handling on Windows (#52855)
Alexander Köplinger [Tue, 18 May 2021 12:05:38 +0000 (14:05 +0200)]
Cleanup eglib config handling on Windows (#52855)

We were using a hardcoded checked-in version of the config file on Windows, replace it with the CMake-generated one.

3 years ago[mono][aot] Fix --full-aot-interp support on amd64. (#52861)
Zoltan Varga [Tue, 18 May 2021 11:19:51 +0000 (07:19 -0400)]
[mono][aot] Fix --full-aot-interp support on amd64. (#52861)

We need to generate more trampolines since a lot of runtime code generates
trampolines even in --full-aot-interp mode.
Fixes https://github.com/dotnet/runtime/pull/52848.

3 years agoPort SIMDIntrinsicGetItem and SIMDIntrinsicSetItem to be implemented via HWIntrinsics...
Tanner Gooding [Tue, 18 May 2021 10:33:52 +0000 (03:33 -0700)]
Port SIMDIntrinsicGetItem and SIMDIntrinsicSetItem to be implemented via HWIntrinsics (#52288)

* Port SIMDIntrinsicGetItem and SIMDIntrinsicSetItem to be implemented using SimdAsHWIntrinsic

* Apply suggestions from code review

Co-authored-by: Egor Chesakov <Egor.Chesakov@microsoft.com>
* Resolving mismerge

* Added a comment explaining why we sometimes return and sometimes do containment checks

* Update src/coreclr/jit/lsraarm64.cpp

Co-authored-by: Egor Chesakov <Egor.Chesakov@microsoft.com>
Co-authored-by: Egor Chesakov <Egor.Chesakov@microsoft.com>
3 years ago[main] Update dependencies from dotnet/arcade dotnet/runtime dotnet/hotreload-utils...
dotnet-maestro[bot] [Tue, 18 May 2021 10:14:09 +0000 (10:14 +0000)]
[main] Update dependencies from dotnet/arcade dotnet/runtime dotnet/hotreload-utils dotnet/xharness (#52757)

[main] Update dependencies from dotnet/arcade dotnet/runtime dotnet/hotreload-utils dotnet/xharness

 - Merge branch 'main' into darc-main-317b66dc-7ef9-4236-b9c5-988c4d1fe4bd

 - Update Versions.props

 - Update Versions.props

3 years agoWinHttpHandler: Add support for bidirectional streaming (#51094)
James Newton-King [Tue, 18 May 2021 08:58:59 +0000 (20:58 +1200)]
WinHttpHandler: Add support for bidirectional streaming (#51094)

3 years agoAllow to specify file preallocation size (#51111)
Adam Sitnik [Tue, 18 May 2021 07:52:03 +0000 (09:52 +0200)]
Allow to specify file preallocation size (#51111)

Co-authored-by: Carlos Sanchez <1175054+carlossanlop@users.noreply.github.com>
Co-authored-by: David Cantú <dacantu@microsoft.com>
3 years agoRevert "Faster unsigned division by constants (#49585)" (#52885)
Aaron Robinson [Tue, 18 May 2021 06:59:13 +0000 (23:59 -0700)]
Revert "Faster unsigned division by constants (#49585)" (#52885)

This reverts commit e4b4807e2fae2164d9116fbcdd49ba9044461e7e.

3 years agoConditionally run CallSitesAreUniquePerServiceTypeAndSlot test based on threading...
Elinor Fung [Tue, 18 May 2021 05:04:12 +0000 (22:04 -0700)]
Conditionally run CallSitesAreUniquePerServiceTypeAndSlot test based on threading support (#52881)

3 years agoFaster unsigned division by constants (#49585)
Pent Ploompuu [Tue, 18 May 2021 03:06:50 +0000 (06:06 +0300)]
Faster unsigned division by constants (#49585)

* Faster unsigned division by constants

* Fix Arm build and add some tests.

* Improve register allocation

* Fix ARM64 codegen

* Fix MULHI flags

* Remove ARM32 codegen

* Widen 32bit UDIV to 64bit MULHI when possible. Improve register allocation.

* Always widen 32bit UDIV to 64bit MUL/MULHI

* Cleanup

* Final optimization

* Fix typo

3 years agoStop including some unused files for p/invokes (#52865)
Elinor Fung [Tue, 18 May 2021 01:17:23 +0000 (18:17 -0700)]
Stop including some unused files for p/invokes (#52865)

3 years agoAdd support in Reflection.Emit and GetInterfaceMap for static virtual methods (#52871)
David Wrighton [Tue, 18 May 2021 00:51:40 +0000 (17:51 -0700)]
Add support in Reflection.Emit and GetInterfaceMap for static virtual methods (#52871)

- Remove logic in MethodBuild that disallows static abstract methods
- Add support in interface map for finding static virtuals, and enumerating them
- Add tests

3 years ago[main] Update dependencies from dnceng/internal/dotnet-optimization (#52678)
dotnet-maestro[bot] [Tue, 18 May 2021 00:49:50 +0000 (17:49 -0700)]
[main] Update dependencies from dnceng/internal/dotnet-optimization (#52678)

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

optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.21255.6 -> To Version 1.0.0-prerelease.21262.4

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

optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.21255.6 -> To Version 1.0.0-prerelease.21263.4

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

optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.21255.6 -> To Version 1.0.0-prerelease.21264.6

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

optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.21255.6 -> To Version 1.0.0-prerelease.21265.5

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

optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.21255.6 -> To Version 1.0.0-prerelease.21266.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
3 years agoAlways call CloseHandle in AsmMan::EmitManifest (#50372)
Omair Majid [Tue, 18 May 2021 00:45:50 +0000 (20:45 -0400)]
Always call CloseHandle in AsmMan::EmitManifest (#50372)

Unless it's an ERROR_INVALID_HANDLE.

Otherwise, we can leak the file handle.

3 years agoMake JsonTypeInfo.ObjectType internal (#52850)
Layomi Akinrinade [Mon, 17 May 2021 22:18:16 +0000 (15:18 -0700)]
Make JsonTypeInfo.ObjectType internal (#52850)

3 years agoFix logic error in PGO schema comparison (#52822)
Andy Ayers [Mon, 17 May 2021 22:14:11 +0000 (15:14 -0700)]
Fix logic error in PGO schema comparison (#52822)

* Fix logic error in PGO schema comparison

* Revert "Fix logic error in PGO schema comparison"

This reverts commit a3a977c4be10e545774d371642c87693f2989414.

* Fix merging of edge counts

Co-authored-by: Jakob Botsch Nielsen <jakob.botsch.nielsen@gmail.com>
3 years agoAdd SPGO support and MIBC comparison in dotnet-pgo (#52765)
Jakob Botsch Nielsen [Mon, 17 May 2021 21:51:34 +0000 (23:51 +0200)]
Add SPGO support and MIBC comparison in dotnet-pgo (#52765)

This allows dotnet-pgo to generate .mibc files using the sample data
stored in the trace that it is processing. It implements support for
both last branch record (LBR) data and normal IP samples. The latter can
be produced using PerfView as normal while the former currently requires
using xperf with LBR mode enabled. For posterity, to enable both logging
required .NET events and LBR, the following commands can be used (on
Windows):

```
xperf.exe -start "NT Kernel Logger" -on LOADER+PROC_THREAD+PMC_PROFILE -MinBuffers 4096 -MaxBuffers 4096 -BufferSize 4096 -pmcprofile BranchInstructionRetired -LastBranch PmcInterrupt -setProfInt BranchInstructionRetired 65537 -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4:0x40000A0018:0x5 -MinBuffers 4096 -MaxBuffers 4096 -BufferSize 4096
scenario.exe
xperf.exe -stop "NT Kernel Logger" -stop clr -d xperftrace.etl
```

SPGO does not currently do well with optimized code as the mapping
IP<->IL mappings the JIT produces there are not sufficiently accurate.
To collect data in tier-0 one can enable two environment variables
before running the scenario:
```
$env:COMPlus_TC_QuickJitForLoops=1
$env:COMPlus_TC_CallCounting=0
```

When samples are used the associated counts will not typically look
valid, i.e. they won't satisfy flow conservation. To remedy this,
dotnet-pgo performs a smoothing step after assigning samples to the
flow-graph of each method. The smoothing is based on [1] and the code
comes from Midori.

The commit adds some new commands to dotnet-pgo. The --spgo flag can be
specified to create-mibc to use samples to create the .mibc file. Also,
even if --spgo is specified, instrumented data will still be preferred
if available in the trace. If spgo is not specified, the behavior should
be the same as before.

--spgo-with-block-counts and --spgo-with-edge-counts control whether
dotnet-pgo outputs the smoothed block or edge counts (or both). By
default block counts are output. The JIT can use both forms of counts
but will be most happy if only one kind is present for each method.

--spgo-min-samples controls how many samples must be in each method
before smoothing is applied and the result included in the .mibc. SPGO
is quite sensitive to low sample counts and the produced results are not
good when the number of samples is low. By default, this value is 50.

The commit also adds a new compare-mibc command that allows to compare
two .mibc files. Usage is dotnet-pgo compare-mibc --input file1.mibc
--input file2.mibc. For example, comparing a .mibc produced via
instrumentation and one produced via SPGO (in tier-0) for some JIT
benchmarks produces the following:

```
Comparing instrumented.mibc to spgo.mibc
Statistics for instrumented.mibc
# Methods: 3490
# Methods with any profile data: 865
# Methods with 32-bit block counts: 0
# Methods with 64-bit block counts: 865
# Methods with 32-bit edge counts: 0
# Methods with 64-bit edge counts: 0
# Methods with type handle histograms: 184
# Methods with GetLikelyClass data: 0
# Profiled methods in instrumented.mibc not in spgo.mibc: 652

Statistics for spgo.mibc
# Methods: 1107
# Methods with any profile data: 286
# Methods with 32-bit block counts: 286
# Methods with 64-bit block counts: 0
# Methods with 32-bit edge counts: 0
# Methods with 64-bit edge counts: 0
# Methods with type handle histograms: 0
# Methods with GetLikelyClass data: 0
# Profiled methods in spgo.mibc not in instrumented.mibc: 73

Comparison
# Methods with profile data in both .mibc files: 213
  Of these, 213 have matching flow-graphs and the remaining 0 do not

When comparing the flow-graphs of the matching methods, their overlaps break down as follows:
100% █ (1.9%)
>95% █████████████████████████████████▌ (61.0%)
>90% ████████ (14.6%)
>85% ████▏ (7.5%)
>80% ████▋ (8.5%)
>75% █▊ (3.3%)
>70% █ (1.9%)
>65% ▎ (0.5%)
>60% ▎ (0.5%)
>55% ▏ (0.0%)
>50% ▏ (0.0%)
>45% ▏ (0.0%)
>40% ▎ (0.5%)
>35% ▏ (0.0%)
>30% ▏ (0.0%)
>25% ▏ (0.0%)
>20% ▏ (0.0%)
>15% ▏ (0.0%)
>10% ▏ (0.0%)
> 5% ▏ (0.0%)
> 0% ▏ (0.0%)
(using block counts)
```

I also made the dump command print some statistics about the .mibc that
was dumped. Hopefully some of this tooling can help track down #51908.

[1] Levin R., Newman I., Haber G. (2008) Complementing Missing and
Inaccurate Profiling Using a Minimum Cost Circulation Algorithm. In:
Stenström P., Dubois M., Katevenis M., Gupta R., Ungerer T. (eds) High
Performance Embedded Architectures and Compilers. HiPEAC 2008. Lecture
Notes in Computer Science, vol 4917. Springer, Berlin, Heidelberg.
https://doi.org/10.1007/978-3-540-77560-7_20

3 years agoSingleFile diagnostic support - Add export table and DotNetRuntimeInfo to dumps ...
Juan Hoyos [Mon, 17 May 2021 20:40:01 +0000 (13:40 -0700)]
SingleFile diagnostic support - Add export table and DotNetRuntimeInfo to dumps (#52731)

* DACize PEDecoder::GetExport
* Ensure export table and runtimeinfo export are always present in a minidump

3 years ago[libraries][MacCatalyst] Update MacCatalyst min required CMake version (#52847)
Mitchell Hwang [Mon, 17 May 2021 18:42:59 +0000 (14:42 -0400)]
[libraries][MacCatalyst] Update MacCatalyst min required CMake version (#52847)

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
3 years agoBuild support for s390x: libraries (#52842)
Ulrich Weigand [Mon, 17 May 2021 18:10:48 +0000 (20:10 +0200)]
Build support for s390x: libraries (#52842)

Adds cmake and proj entries to support building for s390x.

3 years agoenable regions by default in standalone gc (#52716)
Manish Godse [Mon, 17 May 2021 17:39:38 +0000 (10:39 -0700)]
enable regions by default in standalone gc (#52716)

* enable regions by default in standalone gc

* fix linux build break

* fix gcc build break.

* Missed one more build break for gcc

* CR Feedback.

3 years agoUse Platform-Guard Assertion Annotations for some known cases (#52689)
Buyaa Namnan [Mon, 17 May 2021 16:51:22 +0000 (09:51 -0700)]
Use Platform-Guard Assertion Annotations for some known cases (#52689)

* Use platform guard attributes

3 years agoBuild support for s390x: mono runtime (#52841)
Ulrich Weigand [Mon, 17 May 2021 16:23:07 +0000 (18:23 +0200)]
Build support for s390x: mono runtime (#52841)

Adds cmake and proj entries to support building for s390x.

Includes a bug fix to CMakeLists.txt where IS_BIG_ENDIAN
was used before it was defined, causing failures on big-
endian platforms.

3 years agofollow up to https://github.com/dotnet/runtime/pull/52524 (#52714)
Egor Bogatov [Mon, 17 May 2021 13:46:08 +0000 (16:46 +0300)]
follow up to https://github.com/dotnet/runtime/pull/52524 (#52714)

3 years agoJIT: Fix asserts in fgSplitBlockAfterStatement and fgCheckStmtAfterTailCall (GDV...
Egor Bogatov [Mon, 17 May 2021 13:27:12 +0000 (16:27 +0300)]
JIT: Fix asserts in fgSplitBlockAfterStatement and fgCheckStmtAfterTailCall (GDV-related) (#52274)

3 years agoTcpReceiveSendGetsCanceledByDispose: fix test timing out with latest RHEL7 kernel...
Tom Deseyn [Mon, 17 May 2021 12:48:52 +0000 (14:48 +0200)]
TcpReceiveSendGetsCanceledByDispose: fix test timing out with latest RHEL7 kernel (#52833)

The timeout on this test is less than the accumulated delay on retries,
which causes the test to timeout on a RHEL7 system that has the kernel bug fixed.

3 years agoRemoving duplicated "and" (#52826)
Dave Senn [Mon, 17 May 2021 12:38:13 +0000 (14:38 +0200)]
Removing duplicated "and" (#52826)

Minor change to "fix" that sentence... not really an issue but it makes more sense like this

3 years ago[mono] Add thunking to s390x for calls that will be patched (#52783)
Ulrich Weigand [Mon, 17 May 2021 08:48:40 +0000 (10:48 +0200)]
[mono] Add thunking to s390x for calls that will be patched (#52783)

Merge https://github.com/mono/mono/pull/21052 into dotnet runtime.

This fixes sporadic crashes due to code being patched non-atomically.

3 years ago[interp] Pass correct argument to MINT_STOBJ_VT (#52752)
Vlad Brezae [Mon, 17 May 2021 08:45:45 +0000 (11:45 +0300)]
[interp] Pass correct argument to MINT_STOBJ_VT (#52752)

When emitting it as part of thread static store.

3 years agoRefactor codegen and emit to centralize `mov reg, reg` handling (#52661)
Tanner Gooding [Mon, 17 May 2021 04:51:12 +0000 (21:51 -0700)]
Refactor codegen and emit to centralize `mov reg, reg` handling (#52661)

* Refactor codegen and emit to centralize `mov reg, reg` handling

* Responding to PR feedback

3 years ago[mono] Fix full aot compilation on android+x86. (#52816)
Zoltan Varga [Sat, 15 May 2021 23:36:07 +0000 (19:36 -0400)]
[mono] Fix full aot compilation on android+x86. (#52816)

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

3 years agoFix references to MDArray methods (#52796)
David Wrighton [Sat, 15 May 2021 21:00:36 +0000 (14:00 -0700)]
Fix references to MDArray methods (#52796)

3 years agoUpdate dependencies from https://github.com/mono/linker build 20210514.1 (#52806)
dotnet-maestro[bot] [Sat, 15 May 2021 21:00:17 +0000 (14:00 -0700)]
Update dependencies from https://github.com/mono/linker build 20210514.1 (#52806)

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.5.21263.3 -> To Version 6.0.100-preview.5.21264.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
3 years agoBetter formatting for parameters signature with no name (#52804)
Marek Safar [Sat, 15 May 2021 20:59:56 +0000 (22:59 +0200)]
Better formatting for parameters signature with no name (#52804)

It also allows distinguishing between empty and null name

3 years agoNative host warnings fix (#52109)
Lakshan Fernando [Sat, 15 May 2021 20:26:10 +0000 (13:26 -0700)]
Native host warnings fix (#52109)

* Native host warnings fix

Native host warnings fix

* Feedback

* Update docs/design/features/IJW-activation.md

Co-authored-by: Vitek Karas <vitek.karas@microsoft.com>
* Update src/coreclr/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.xml

Co-authored-by: Vitek Karas <vitek.karas@microsoft.com>
* Update src/coreclr/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.xml

Co-authored-by: Vitek Karas <vitek.karas@microsoft.com>
* Update docs/workflow/trimming/feature-switches.md

Co-authored-by: Vitek Karas <vitek.karas@microsoft.com>
* fixing the native host feature settings

* feedback on error code

* fb

* FB

* merge conflict

Co-authored-by: Vitek Karas <vitek.karas@microsoft.com>
3 years ago[main] Update dependencies from mono/linker (#52497)
dotnet-maestro[bot] [Sat, 15 May 2021 09:44:51 +0000 (09:44 +0000)]
[main] Update dependencies from mono/linker (#52497)

[main] Update dependencies from mono/linker

 - Throw ANE with actual parameter name and not null value

 - Fixes test checking wrong parameter name

 - Add explicit dependendecy to constructors which could be trimmed

3 years agoIntroducing Metrics APIs (#52685)
Tarek Mahmoud Sayed [Sat, 15 May 2021 06:53:47 +0000 (23:53 -0700)]
Introducing Metrics APIs (#52685)

3 years agoMake SuppressGCTransition tests explicitly check GC mode on checked/debug coreclr...
Elinor Fung [Sat, 15 May 2021 03:14:17 +0000 (20:14 -0700)]
Make SuppressGCTransition tests explicitly check GC mode on checked/debug coreclr (#52713)

* Add hook for explicitly checking GC mode for testing (Checked/Debug only)

* Make SuppressGCTransition tests explicitly check GC mode when possible

* Move SuppressGCTransition tests out of PInvoke/Attributes subdirectories

* Update paths in issues.targets

3 years agoAdd --inputbubbleref option to crossgen2 in order to put only part of references...
Gleb Balykov [Fri, 14 May 2021 23:36:23 +0000 (02:36 +0300)]
Add --inputbubbleref option to crossgen2 in order to put only part of references into version bubble (#51555)

3 years agoForce build failure if AOT compiler is missing, and avoid bad path (#52784)
Jo Shields [Fri, 14 May 2021 22:47:16 +0000 (18:47 -0400)]
Force build failure if AOT compiler is missing, and avoid bad path (#52784)

An error in paths was introduced last week. Work around that, and make it a fatal build failure if the AOT compiler is missing in future to catch this faster

3 years agoECMA spec addendum dealing with static interface methods (#49558)
Tomáš Rylek [Fri, 14 May 2021 22:14:06 +0000 (00:14 +0200)]
ECMA spec addendum dealing with static interface methods (#49558)

Co-authored-by: David Wrighton <davidwr@microsoft.com>
Co-authored-by: Aleksey Tsingauz <alekseyt@microsoft.com>
Co-authored-by: Fred Silberberg <fred@silberberg.xyz>
3 years agoFix cmake warning (#52788)
Bruce Forstall [Fri, 14 May 2021 22:13:56 +0000 (15:13 -0700)]
Fix cmake warning (#52788)

Fix this:
```
 CMake Warning (dev) in crosscomponents.cmake:
    A logical block opening on the line

      C:/gh/runtime4/src/coreclr/crosscomponents.cmake:24 (if)

    closes on the line

      C:/gh/runtime4/src/coreclr/crosscomponents.cmake:36 (endif)

    with mis-matching arguments.
  Call Stack (most recent call first):
    CMakeLists.txt:254 (include)
  This warning is for project developers.  Use -Wno-dev to suppress it.
```

3 years agoAdd VirtualStaticsInInterfaces flag to RuntimeFeature (#52733)
David Wrighton [Fri, 14 May 2021 22:09:13 +0000 (15:09 -0700)]
Add VirtualStaticsInInterfaces flag to RuntimeFeature (#52733)

* Add RuntimeFeature indicating support for static virtual methods in the runtime
* Mark it with the preview flag

3 years agoRuntime support for static virtual interface methods (#52173)
Tomáš Rylek [Fri, 14 May 2021 22:05:16 +0000 (00:05 +0200)]
Runtime support for static virtual interface methods (#52173)

This change implements initial CoreCLR runtime support for static virtual interface methods and adds over 1700 test cases covering various aspects of this new runtime feature.

1) In the JIT, we are relaxing the assumption that ".constrained" must be always followed by a "callvirt" by allowing two more IL instructions to be constrained, "call" and "ldftn".

2) In the JIT interface, we're adding bits of code to CEEInfo::getCallInfo to properly handle the new static virtual methods. We're extending constrained method resolution to cater for the static virtual method case in a new method "ResolveStaticVirtualMethod".

3) In our work on the implementation we found a pre-existing JIT interface issue - the interplay between getCallInfo and embedGenericHandle doesn't work well in case of constrained calls as the existing API surface doesn't provide any means for communicating compile-time resolution of the constraint from getCallInfo to embedGenericHandle. In this change we're working around this by deferring to runtime resolution of the constraint in the presence of shared generics.

4) In the method table builder, we're newly tracking a flag saying whether we're implementing an interface declaring static virtual methods (fHasVirtualStaticMethods) that is used to speed up the runtime checks by skipping irrelevant interfaces.

5) For Crossgen / Crossgen2, this change only adds minimalistic support in the form of bailing out in getCallInfo whenever we hit a call to a static virtual method, cancelling AOT compilation of the caller and deferring it to runtime JIT.

3 years agoImprove flow graph DOT dumps (#52787)
Bruce Forstall [Fri, 14 May 2021 22:04:40 +0000 (15:04 -0700)]
Improve flow graph DOT dumps (#52787)

1. Introduce `COMPlus_JitFgDumpPrePhase`. This is analogous to the existing
`COMPlus_JitFgDumpPhase`, but to dump before a phase, not after. It takes a
set of short phase names, and dumps the flow graph before each of those phases.
E.g., to dump both before and after just loop cloning, you don't need to figure
out which phase comes before loop cloning, you can specify:

```
set COMPlus_JitDumpFgPhase=LP-CLONE
set COMPlus_JitDumpFgPrePhase=LP-CLONE
```

2. Interpret array length node type in BBJ_COND blocks, e.g., `V01.Length <= V03`.

3 years agoRemove unused Compiler::optFindLoopNumberFromBeginBlock() (#52786)
Bruce Forstall [Fri, 14 May 2021 22:03:21 +0000 (15:03 -0700)]
Remove unused Compiler::optFindLoopNumberFromBeginBlock() (#52786)

3 years agohide Obsolete FileStream ctors (#52587)
Adam Sitnik [Fri, 14 May 2021 21:52:10 +0000 (23:52 +0200)]
hide Obsolete FileStream ctors (#52587)

3 years ago[mono][aot] Fix an assertion. (#52762)
Zoltan Varga [Fri, 14 May 2021 20:19:57 +0000 (16:19 -0400)]
[mono][aot] Fix an assertion. (#52762)

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

3 years agoremove APM infrastructure code that's no longer needed (#52711)
Geoff Kizer [Fri, 14 May 2021 18:17:59 +0000 (11:17 -0700)]
remove APM infrastructure code that's no longer needed (#52711)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
3 years agoMake superpmi.py work for python3.8 (#52778)
Kunal Pathak [Fri, 14 May 2021 18:08:09 +0000 (23:38 +0530)]
Make superpmi.py work for python3.8 (#52778)

3 years ago[interp] Squash multiple call args moves into single opcode (#52242)
Vlad Brezae [Fri, 14 May 2021 17:46:38 +0000 (20:46 +0300)]
[interp] Squash multiple call args moves into single opcode (#52242)

* [interp] Replace multiplication and division by 1 with simple mov

* [interp] Skip emitting redundant branch to next basic block

* [interp] Squash multiple call args moves into single opcode

Some vars cannot be used directly as an argument to another call. In this case, the var offset allocator generates new intermediary vars. For methods with a lot of parameters, we can end up with quite a lot of these stores.

As an example, for the following method:
```
public static void MethodPartial (int a, int b, object c, object d)
{
MethodFull (a, b, c, d, 12523);
}
```

Before:
```
IR_0000: ldc.i8         [72 <- nil], 12523
IR_0006: mov.4          [40 <- 0],
IR_0009: mov.4          [48 <- 8],
IR_000c: mov.8          [56 <- 16],
IR_000f: mov.8          [64 <- 24],
IR_0012: call           [32 <- 40], 0
IR_0016: ret.void       [nil <- nil],
```

After:
```
IR_0000: ldc.i8         [72 <- nil], 12523
IR_0006: mov.8.4        [nil <- nil], 40 <- 0, 48 <- 8, 56 <- 16, 64 <- 24
IR_000f: call           [32 <- 40], 0
IR_0013: ret.void       [nil <- nil]
```

3 years agoAdd Analyzer packaging support and packaging documentation (#52554)
Eric StJohn [Fri, 14 May 2021 17:06:41 +0000 (10:06 -0700)]
Add Analyzer packaging support and packaging documentation (#52554)

* Add Analyzer packaging support and packaging documentation

To package Microsoft.Extensions.Logging.Abstractions we needed support
for packing an Analyzer.  This adds that support.

I wanted to document this addition, so I created the start of a doc that's
meant to describe the packaging options for libraries in dotnet/runtime.

* Address code review feedback.

* More feedback

* Address more feedback

* Remove src.proj build of generators

* Update to use Microsoft.DotNet.PackageTesting

* Fix typos

* Fix package testing on net46*

3 years agoResolve ILLink warnings in Microsoft.Extensions.Logging.EventSource (#52656)
Jose Perez Rodriguez [Fri, 14 May 2021 16:10:50 +0000 (09:10 -0700)]
Resolve ILLink warnings in Microsoft.Extensions.Logging.EventSource (#52656)

* Resolve ILLink warnings in Microsoft.Extensions.Logging.EventSource

* Add nullable enable to attribute files

3 years ago[Android] Rename System.Security.Cryptography.Native.OpenSsl on Android (#52406)
Tammy Qiu [Fri, 14 May 2021 16:04:48 +0000 (12:04 -0400)]
[Android] Rename System.Security.Cryptography.Native.OpenSsl on Android (#52406)

* Rename System.Security.Cryptography.Native.OpenSsl to System.Security.Cryptography.Native.Android on Android and split remaining shared Interop files.

3 years agoAnnotate Type.GetInterfaceMap to guarantee trim compatibility. (#52697)
Vitek Karas [Fri, 14 May 2021 08:59:41 +0000 (10:59 +0200)]
Annotate Type.GetInterfaceMap to guarantee trim compatibility. (#52697)

3 years ago[mono] Fix https://github.com/dotnet/runtime/issues/52718. (#52724)
Zoltan Varga [Fri, 14 May 2021 08:28:59 +0000 (04:28 -0400)]
[mono] Fix https://github.com/dotnet/runtime/issues/52718. (#52724)

3 years agoPrepare the COM apartment and context at a safe time during thread start up. (#52745)
Aaron Robinson [Fri, 14 May 2021 07:47:11 +0000 (00:47 -0700)]
Prepare the COM apartment and context at a safe time during thread start up. (#52745)

3 years agoRespect Windows job object's CPU quota (#52690)
Anton Lapounov [Fri, 14 May 2021 03:23:33 +0000 (20:23 -0700)]
Respect Windows job object's CPU quota (#52690)

3 years agoFix single-file unhandled exception source/line info (#52725)
Mike McLaughlin [Fri, 14 May 2021 02:38:12 +0000 (19:38 -0700)]
Fix single-file unhandled exception source/line info (#52725)

Issues:
    https://github.com/dotnet/runtime/issues/51461
    https://github.com/dotnet/runtime/issues/11261
    https://github.com/dotnet/runtime/issues/18423

3 years agoAdd clrjit.natvis file (#52668)
Kunal Pathak [Fri, 14 May 2021 00:41:47 +0000 (06:11 +0530)]
Add clrjit.natvis file (#52668)

* Add clrjit.natvis file

* Review comments

* pass /NATVIS flag to linker

* Include clrjit.natvis only for windows

* Update src/coreclr/jit/CMakeLists.txt

Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
* Add the missing review comment

* minor typo

Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
3 years agoMove copy of Crossgen2 tasks/targets to runtime repo and build composite image for...
David Wrighton [Fri, 14 May 2021 00:39:04 +0000 (17:39 -0700)]
Move copy of Crossgen2 tasks/targets to runtime repo and build composite image for runtime repo in parallel path (#52579)

* Move all crossgen2 tasks/targets used in Runtime repo to be local to the repo

* Move ResolveReadyToRunCompilers task into the Crossgen2Tasks dll

* Create composite bundle and package
- Note that it doesn't build properly, but hopefully that's a crossgen2 task bug

* Composite image production

* Refactor how composite image creation works
- Move it to allow mixed composite and non-composite r2r in the same build, controlled by the PublishReadyToRunCompositeExclusions list
- Enhance the accuracy of how msbuild tracks which files are input vs reference for composite images
- Implement the R2R exclusion list for composite images
- Remove the always on usage of --inputbubble when compiling a composite image

* - Add a scheme to perform public signing with a PublicKeyToken to a composite of the composite image if required
  - Required adding a new parameter to crossgen2

3 years agoMulticorejit unification (#48326)
Gleb Balykov [Fri, 14 May 2021 00:16:08 +0000 (03:16 +0300)]
Multicorejit unification (#48326)

* Unify simple and generic methods in multicorejit

* Disable NDirect methods in MulticoreJit

Current multicorejit implementation in master has multiple flaws with NDirect methods:
- exception might be thrown inside GetStubForInteropMethod at some point for NDirect method, which will kill background thread, thus, reducing effectiveness of multicorejit (for example, occurs when multicorejit is used with crossgen2)
- some NDirect methods can lead to asserts during load inside GetStubForInteropMethod (for example, EvpMdCtxDestroy (0x6000044 token) from System.Security.Cryptography.Algorithms.dll)

* Add MultiCoreJitMinNumCpus env variable with default value =2 to configure minimum allowed number of cpus for MultiCoreJit.

On arm with cpu hotplug it should be set to 1.

* Do not save overall record length for methods

This change reduces mcj profile size

* Store non-generic methods using token instead of signatures

This change reduces mcj profile size

3 years agoAdd diagnostics IPC set environment variable command (#52567)
David Mason [Thu, 13 May 2021 23:59:30 +0000 (16:59 -0700)]
Add diagnostics IPC set environment variable command (#52567)

3 years agoAdd IServiceScopeFactory.CreateAsyncScope (#52719)
İlkay İlknur [Thu, 13 May 2021 23:57:00 +0000 (02:57 +0300)]
Add IServiceScopeFactory.CreateAsyncScope (#52719)

* CreateAsyncScope extension method added for IServiceScopeFactory

* add CreateAsyncScope extension method for IServiceScopeFactory

* test added for IServiceScopeFactory.CreateAsyncScope

3 years agoRefresh network tests server code to Kestrel (#52642)
Pavel Savara [Thu, 13 May 2021 22:45:53 +0000 (00:45 +0200)]
Refresh network tests server code to Kestrel (#52642)

* copy from https://github.com/davidsh/corefx-net-endpoint/commit/999f8356816be739ec65dae5a1a89782b3936a66
* license headers
* missing md5 test
* issue for missing functionality

3 years agoFix mcs merge error for missing pattern (#52715)
Bruce Forstall [Thu, 13 May 2021 22:11:30 +0000 (15:11 -0700)]
Fix mcs merge error for missing pattern (#52715)

1. Print the Unicode pattern properly
2. Return an error code

3 years agoResolve ILLink Warnings on Microsoft.Extensions.Http (#52658)
Jose Perez Rodriguez [Thu, 13 May 2021 21:51:35 +0000 (14:51 -0700)]
Resolve ILLink Warnings on Microsoft.Extensions.Http (#52658)

* Resolve ILLink Warnings on Microsoft.Extensions.Http

3 years agoImprove logging source generator error messages (#52684)
Maryam Ariyan [Thu, 13 May 2021 21:46:09 +0000 (17:46 -0400)]
Improve logging source generator error messages (#52684)

3 years agoUse same logic on iOS and macOS for dual-mode sockets in Ping (#52619)
Filip Navara [Thu, 13 May 2021 20:47:42 +0000 (22:47 +0200)]
Use same logic on iOS and macOS for dual-mode sockets in Ping (#52619)

* Use same logic on iOS and macOS for dual-mode sockets in Ping

* Address feedback

3 years ago[main] Update dependencies from 7 repositories (#52440)
dotnet-maestro[bot] [Thu, 13 May 2021 20:43:31 +0000 (13:43 -0700)]
[main] Update dependencies from 7 repositories (#52440)

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageValidation , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21256.13

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21257.1

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

runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
 From Version 9.0.1-alpha.1.21253.1 -> To Version 9.0.1-alpha.1.21256.1

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageValidation , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21257.5

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21257.2

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

System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 6.0.0-beta.21230.1 -> To Version 6.0.0-beta.21257.1

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

Microsoft.NETCore.ILAsm , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.DotNetHost , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Runtime.CompilerServices.Unsafe , System.Text.Json
 From Version 6.0.0-preview.5.21253.1 -> To Version 6.0.0-preview.5.21260.1

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageValidation , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21260.1

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 6.0.0-preview.5.21253.1 -> To Version 6.0.0-preview.5.21260.1

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21260.1

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

runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
 From Version 9.0.1-alpha.1.21253.1 -> To Version 9.0.1-alpha.1.21260.1

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

System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 6.0.0-beta.21230.1 -> To Version 6.0.0-beta.21260.1

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21257.1 -> To Version 1.0.1-alpha.0.21260.2

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21261.6

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21260.1 -> To Version 1.0.0-prerelease.21261.1

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21260.2 -> To Version 1.0.1-alpha.0.21261.2

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21260.1

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21257.1 -> To Version 1.0.1-alpha.0.21260.2

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21260.1 -> To Version 1.0.0-prerelease.21261.1

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21260.2 -> To Version 1.0.1-alpha.0.21261.2

* Fix attribute diffs

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21263.1

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21263.1

* Fix package testing on net46*

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
3 years agoBring Android arm64 tests back into PR builds (#52709)
Steve Pfister [Thu, 13 May 2021 20:30:21 +0000 (16:30 -0400)]
Bring Android arm64 tests back into PR builds (#52709)

3 years agoDetect presence of OpenSSL for AEAD algorithms on macOS
Kevin Jones [Thu, 13 May 2021 20:09:12 +0000 (16:09 -0400)]
Detect presence of OpenSSL for AEAD algorithms on macOS

This makes the IsSupported values for AesCcm and AesGcm return false on macOS when the
OpenSSL shim library can't find a suitable OpenSSL, and makes AesCcm/AesGcm throw an
informative exception in those cases.

Additionally it fixes the IsSupported on ChaCha/Poly to not tear down the process when
OpenSSL isn't found on macOS.

Co-authored-by: Filip Navara <filip.navara@gmail.com>
3 years agoMake the callsite cache more thread safe (#52691)
David Fowler [Thu, 13 May 2021 20:06:08 +0000 (13:06 -0700)]
Make the callsite cache more thread safe (#52691)

* Make the callsite cache more thread safe
- Previously we would create duplicate callsites and because they weren't used to for anything critical, now we're using them as a lock per type and slot and to store singleton values cheaply. This means we need to make sure they are unique. Duplicates were being created in situations where there were connected graphs and lots of concurrency because there was no lock to ensure that only a single type would be processed at a time. This change adds that lock and adds tests.

3 years agoFix trimming issue with extension data (#52673)
Steve Harter [Thu, 13 May 2021 20:02:48 +0000 (15:02 -0500)]
Fix trimming issue with extension data (#52673)

3 years agoAdd MacCatalyst functional test (#52552)
Jo Shields [Thu, 13 May 2021 19:39:25 +0000 (15:39 -0400)]
Add MacCatalyst functional test (#52552)

3 years ago[tests] Fix CRLF issues in SM.Syndication (#52705)
Radek Doulik [Thu, 13 May 2021 19:24:51 +0000 (21:24 +0200)]
[tests] Fix CRLF issues in SM.Syndication (#52705)

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

When running `System.ServiceModel.Syndication` tests on windows and
targeting `Browser`, the line ending differs between host and target
systems. Use helper `LineEndingsHelper.Normalize` method to update
expected strings.

The `Browser` Environment.NewLine is `\n`, while windows use `\r\n`.
https://github.com/dotnet/runtime/blob/5bd0edfe860e41bdfd690d3743e730594307292e/src/libraries/System.Private.CoreLib/src/System/Environment.UnixOrBrowser.cs#L51

Also set `BrowserHost` property for the build as well. It is also used
in `src/libraries/tests.proj`.

3 years agoLow level API support for Objective-C interop. (#52146)
Aaron Robinson [Thu, 13 May 2021 19:04:46 +0000 (12:04 -0700)]
Low level API support for Objective-C interop. (#52146)

* Add Objective-C interop support.

* Include handling of HNDTYPE_REFCOUNTED when FEATURE_OBJCMARSHAL is defined (#47534)

* Allow overriding of Objective-C message send P/Invokes (#47721)

* Add new flag to MethodTable for types with ObjectiveCTrackedTypeAttribute.
Discover attribute during type load and set bit.
Update EagerFinalizer callout to query bit.

* Add testing for API

* Bridge API for propagating managed exception to native.

* Update GCEE interface to support GCServer scenario for Objective-C.
The new callbacks now fire when before the GC scans handles and is
non-concurrent.

* Comment added for ExceptionTracker non-NULL condition.

Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
3 years agoadd support for genReg1/genReg2->SIMD8 store on x86 windows. (#52581)
Sergey Andreenko [Thu, 13 May 2021 17:02:11 +0000 (10:02 -0700)]
add support for genReg1/genReg2->SIMD8 store on x86 windows. (#52581)

* add a standart header for inst_RV_RV

* add support for EAX/EDX->SIMD8 store on x86 windows.

* fix the header.

3 years agoBinaryFormatter deprecation for System.Configuration.ConfigurationManager (#50531)
Prashanth Govindarajan [Thu, 13 May 2021 17:01:41 +0000 (10:01 -0700)]
BinaryFormatter deprecation for System.Configuration.ConfigurationManager (#50531)

* First cut of deprecating BF usage

* Address comments

* sq

3 years agoMove s_defaultSerializerOptions to JsonHelpers. (#52557)
Eric Erhardt [Thu, 13 May 2021 16:34:06 +0000 (11:34 -0500)]
Move s_defaultSerializerOptions to JsonHelpers. (#52557)

This allows for JsonContent to be trimmed in a default Blazor WASM app.

3 years agoRemove Alt-Svc parser on browser-wasm. (#52681)
Eric Erhardt [Thu, 13 May 2021 15:24:40 +0000 (10:24 -0500)]
Remove Alt-Svc parser on browser-wasm. (#52681)

Contributes to #44534

3 years ago[tests] Fix CRLF vs LF issues (#52536)
Radek Doulik [Thu, 13 May 2021 15:11:48 +0000 (17:11 +0200)]
[tests] Fix CRLF vs LF issues (#52536)

* Fixes: https://github.com/dotnet/runtime/issues/52134

When running `System.Numerics.Tensors` tests on windows and  targeting
`Browser`,the line ending differs between host and target systems.
Compensate for that by using
`Assert.Equal(..., ignoreLineEndingDifferences: true)`.

Also replace the compile time new line when creating `expectedNoSpace`
string.

The `Browser` Environment.NewLine is `\n`, while windows use `\r\n`.
https://github.com/dotnet/runtime/blob/5bd0edfe860e41bdfd690d3743e730594307292e/src/libraries/System.Private.CoreLib/src/System/Environment.UnixOrBrowser.cs#L51

* Use LineEndingsHelper, make CompiledNewline public

* Enable fixed tests

3 years agoAdd section to interop guidelines about tracking dependencies (#52302)
Matt Thalman [Thu, 13 May 2021 13:56:34 +0000 (08:56 -0500)]
Add section to interop guidelines about tracking dependencies (#52302)

* Add section to interop guidelines about tracking dependencies

* Set code owner

* Update wording

3 years agoFix typo (#52694)
Kia Panahi Rad [Thu, 13 May 2021 13:26:32 +0000 (17:56 +0430)]
Fix typo (#52694)

Under "What should be in a BotR chapter" heading.

3 years agoTest ios tvos simulator functional tests (#52655)
Mitchell Hwang [Thu, 13 May 2021 13:16:09 +0000 (09:16 -0400)]
Test ios tvos simulator functional tests (#52655)

* [iOS][tvOS][AOT] Run simulator AOT tests with TreatAsLocalProperty

* [tvOS] Include tvOS in MonoAOTCompiler arguments

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
3 years agoUpdate dependencies from https://github.com/dotnet/emsdk build 20210512.1 (#52657)
dotnet-maestro[bot] [Thu, 13 May 2021 10:20:16 +0000 (10:20 +0000)]
Update dependencies from https://github.com/dotnet/emsdk build 20210512.1 (#52657)

[main] Update dependencies from dotnet/emsdk

3 years agoStresslog fixes (#52601)
Peter Sollich [Thu, 13 May 2021 08:43:11 +0000 (10:43 +0200)]
Stresslog fixes (#52601)

- Make regular (non-memory-mapped file based) stresslog work for clrgc.dll
- Fix interaction issue between GC and thread filters in StressLogAnalyzer
- Interpret small numbers for COMPlus_StressLogSize and COMPlus_TotalStressLogSize as GB rather than bytes
- Increment SOS_BREAKING_CHANGE_VERSION

3 years agoFix empty byte[] bug in EventSource (#52602)
Miha Zupan [Thu, 13 May 2021 07:01:21 +0000 (09:01 +0200)]
Fix empty byte[] bug in EventSource (#52602)

* Fix empty byte[] bug in EventSource

* Add some non-zero data to byte[] tests

* Remove leftover usings from testing

* Return Array.Empty for empty byte[]

* Pass correct pointer to Marshal copy

3 years agoReduce UriBuilder allocations (#51826)
Miha Zupan [Thu, 13 May 2021 06:59:20 +0000 (08:59 +0200)]
Reduce UriBuilder allocations (#51826)

* Reduce UriBuilder allocations

* Make _uri field nullable

* Add Debug.Assert(success)

3 years ago[mono] Fix generating invalid cpu description tables if two opcodes have the same...
Zoltan Varga [Thu, 13 May 2021 06:48:51 +0000 (02:48 -0400)]
[mono] Fix generating invalid cpu description tables if two opcodes have the same name. (#52670)

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

3 years agoBe explicit about platform support (#52686)
Larry Ewing [Thu, 13 May 2021 01:28:14 +0000 (20:28 -0500)]
Be explicit about platform support (#52686)

we're standing up the msi builds and finalizing details that are important for that tooling

3 years agoNew deps package for Fedora 34 (#52674)
Nikola Milosavljevic [Thu, 13 May 2021 01:11:06 +0000 (18:11 -0700)]
New deps package for Fedora 34 (#52674)

3 years agoremove tvos-x64 pack (#52663)
Larry Ewing [Thu, 13 May 2021 01:08:14 +0000 (20:08 -0500)]
remove tvos-x64 pack (#52663)

3 years agoReplacing `BOOL` with `bool` (#52585)
WhiteBlackGoose [Wed, 12 May 2021 23:32:36 +0000 (02:32 +0300)]
Replacing `BOOL` with `bool` (#52585)

* Replaces all BOOL to bool in RyuJIT

Replaced all Windows' BOOL to bool in RyuJIT except
for WIN API related cases.

Fix #48317

* Replaced `TRUE` and `FALSE` constants

Replaced `TRUE` with `true` and `FALSE`
with `false` constants in RyuJIT except
Windows-specific cases.

* A couple of BOOLs replaced to bool

* Format issue fixed

Formatting patch applied
according to the instruction.

3 years ago[debugger][interpreter] Generate seq_points even when doesn't have debug information...
Thays Grazia [Wed, 12 May 2021 22:58:33 +0000 (19:58 -0300)]
[debugger][interpreter] Generate seq_points even when doesn't have debug information (#52632)

* Trying to generate seq_points even without debug info as it's done in methor-to-ir.

3 years agoDon't reset stack level when it is already set to the required value. (#52594)
Sergey Andreenko [Wed, 12 May 2021 22:06:37 +0000 (15:06 -0700)]
Don't reset stack level when it is already set to the required value. (#52594)