platform/upstream/dotnet/runtime.git
3 years agoRemove NETStandard2.2 versions and product dependency (#43304)
Viktor Hofer [Mon, 30 Nov 2020 22:35:12 +0000 (23:35 +0100)]
Remove NETStandard2.2 versions and product dependency (#43304)

* Remove NetStandard2.2 versions and product dependency

3 years agoFix CSE print (#45314)
nathan-moore [Mon, 30 Nov 2020 22:21:06 +0000 (16:21 -0600)]
Fix CSE print (#45314)

3 years agoUpdate host-tracing.md (#45389)
Igor Velikorossov [Mon, 30 Nov 2020 22:12:13 +0000 (09:12 +1100)]
Update host-tracing.md (#45389)

3 years agoAdd two readonlys to IcuLocaleData.cs (#45367)
Stephen Toub [Mon, 30 Nov 2020 19:15:08 +0000 (14:15 -0500)]
Add two readonlys to IcuLocaleData.cs (#45367)

3 years agoAllow SocketsHttpHandler.ConnectCallback for sync requests (#45300)
Stephen Toub [Mon, 30 Nov 2020 18:52:01 +0000 (13:52 -0500)]
Allow SocketsHttpHandler.ConnectCallback for sync requests (#45300)

HTTP/1.1 support with sync requests currently doesn't work when a ConnectCallback is specified, even though a developer who wanted to make synchronous requests could provide a synchronously-completing callback.

This also consolidates the connect logic across sync/async, avoids an extra delegate, etc.

3 years agoMake the wasm sample csproj work on non-bash shells. (#45365)
Zoltan Varga [Mon, 30 Nov 2020 18:42:19 +0000 (13:42 -0500)]
Make the wasm sample csproj work on non-bash shells. (#45365)

3 years agoExplicitly check for arrays in Marshal.SizeOf impl. (#45227)
Jeremy Koritzinsky [Mon, 30 Nov 2020 18:34:01 +0000 (10:34 -0800)]
Explicitly check for arrays in Marshal.SizeOf impl. (#45227)

3 years agoIntegrate fixes from dotnet/runtimelab:feature/NativeAOT (#45305)
Jan Kotas [Mon, 30 Nov 2020 18:14:57 +0000 (10:14 -0800)]
Integrate fixes from dotnet/runtimelab:feature/NativeAOT (#45305)

3 years agoattempt to stabilize CopyToAsync_AllDataCopied_Large for Tls13 (#44741)
Tomas Weinfurt [Mon, 30 Nov 2020 17:23:37 +0000 (09:23 -0800)]
attempt to stabilize CopyToAsync_AllDataCopied_Large for Tls13 (#44741)

* attempt to stabilize CopyToAsync_AllDataCopied_Large for Tls13

* feedback from review

* swap streams back

* feedback from windows

* remove extra using

3 years agooptimize DateTimeOffset.UtcNow by removing redundant verification (#45281)
Adam Sitnik [Mon, 30 Nov 2020 17:05:00 +0000 (18:05 +0100)]
optimize DateTimeOffset.UtcNow by removing redundant verification (#45281)

* optimize DateTimeOffset.UtcNow by removing redundant verification, cuts 10% of time on Windows

* Update src/libraries/System.Private.CoreLib/src/System/DateTimeOffset.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoFix build on Alpine edge (#45352)
Jan Vorlicek [Mon, 30 Nov 2020 15:11:36 +0000 (16:11 +0100)]
Fix build on Alpine edge (#45352)

The atoll definition in the pal.h was leaking into the PAL implementation and
on Alpine edge, the difference in throws() classification was causing a build
break.

3 years agoUse AsSpan/AsMemory (start, length) (#45310)
xtqqczze [Mon, 30 Nov 2020 11:26:17 +0000 (11:26 +0000)]
Use AsSpan/AsMemory (start, length)  (#45310)

* Use AsSpan(start, length)

Replace `AsSpan().Slice(start, length)` with `AsSpan(start, length)`

* Use AsMemory(start, length)

Replace `AsMemory().Slice(start, length)` with `AsMemory(start, length)`

* Apply suggestions from code review

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years ago[master] Update dependencies from dotnet/xharness (#45263)
dotnet-maestro[bot] [Mon, 30 Nov 2020 09:14:54 +0000 (10:14 +0100)]
[master] Update dependencies from dotnet/xharness (#45263)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
3 years agoOptimize storage of icu locale data (#45296)
Marek Safar [Mon, 30 Nov 2020 09:13:31 +0000 (10:13 +0100)]
Optimize storage of icu locale data (#45296)

* Optimize storage of icu locale data

to reduce SPC size by about 10k and avoid allocating huge string on the heap

Fixes #45129

* Formatting fixes

3 years agoRevert "Compile System.Private.CoreLib with Crossgen2 by default (#44618)" (#45320)
Stephen Toub [Mon, 30 Nov 2020 06:14:08 +0000 (01:14 -0500)]
Revert "Compile System.Private.CoreLib with Crossgen2 by default (#44618)" (#45320)

* Revert "Compile System.Private.CoreLib with Crossgen2 by default (#44618)"

This reverts commit b79e4d3cd24f76dd1bcb722f589327c827e66632.

* Add a change to ensure libraries are built/tested

3 years agoBump emscripten to 2.0.9. (#45299)
Zoltan Varga [Sun, 29 Nov 2020 01:54:28 +0000 (20:54 -0500)]
Bump emscripten to 2.0.9. (#45299)

3 years agoSupport R2RDump in framework compilation (#45288)
Tomáš Rylek [Sat, 28 Nov 2020 22:28:07 +0000 (23:28 +0100)]
Support R2RDump in framework compilation (#45288)

Previously, when --r2r-dump-path was specified, we only applied it
to test app compilations. This change adds support for R2RDump
in framework compilation too.

Thanks

Tomas

3 years agoPreserve UnmanagedCallersOnlyAttribute on mono, the runtime needs it, and it can...
Zoltan Varga [Sat, 28 Nov 2020 16:52:15 +0000 (11:52 -0500)]
Preserve UnmanagedCallersOnlyAttribute on mono, the runtime needs it, and it can be removed when using --used-attrs-only. (#45291)

3 years ago[Android] Implement AES-GCM,CCM and add pal_ssl (#44989)
Egor Bogatov [Sat, 28 Nov 2020 11:35:37 +0000 (14:35 +0300)]
[Android] Implement AES-GCM,CCM and add pal_ssl (#44989)

3 years agoFix stack size allocation during interpreter entry. (#45271)
Zoltan Varga [Fri, 27 Nov 2020 22:44:03 +0000 (17:44 -0500)]
Fix stack size allocation during interpreter entry. (#45271)

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

3 years agoCompile System.Private.CoreLib with Crossgen2 by default (#44618)
Tomáš Rylek [Fri, 27 Nov 2020 14:39:54 +0000 (15:39 +0100)]
Compile System.Private.CoreLib with Crossgen2 by default (#44618)

After I deleted the Utf8String-related experimental code from the
runtime repo per JanK's suggestion, I can now enable Crossgen2
compilation for System.Private.CoreLib by default.

Thanks

Tomas

3 years agoEnsure BitArray fill operations do not set bits out of range (#45223)
Eirik Tsarpalis [Fri, 27 Nov 2020 10:47:45 +0000 (10:47 +0000)]
Ensure BitArray fill operations do not set bits out of range (#45223)

* ensure BitArray fill operation does not produce dirty bits

* Update BitArray BinaryFormatter expected blob

3 years agoOptimize HTTP2 HPack huffman decoding (#43603)
Roman Konecny [Fri, 27 Nov 2020 09:02:08 +0000 (10:02 +0100)]
Optimize HTTP2 HPack huffman decoding (#43603)

Optimized to use 8 bits lookup tables tree with result of about 0.35 CPU utilization as oppose to former version.
Decoding table is lazy generated as ushort[].

3 years agoFix unicode marshaling defaults in crossgen2 (#45268)
Jan Kotas [Fri, 27 Nov 2020 03:07:06 +0000 (19:07 -0800)]
Fix unicode marshaling defaults in crossgen2 (#45268)

3 years agoTeach coreclr/src/tools about Checked configuration (#43017)
Michal Strehovský [Fri, 27 Nov 2020 01:28:50 +0000 (02:28 +0100)]
Teach coreclr/src/tools about Checked configuration (#43017)

We never test managed tools in Debug configuration because we never build the runtime partition in the Debug configuration - we only build Checked.

But managed tools don't know what Checked means because it's not an MSBuild concept. So we never run the tools with asserts turned on.

3 years agoConvert several FCalls to QCalls, plus misc cleanup (#45258)
Jan Kotas [Fri, 27 Nov 2020 00:48:51 +0000 (16:48 -0800)]
Convert several FCalls to QCalls, plus misc cleanup (#45258)

* Convert several FCalls to QCalls, plus misc cleanup

Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoMove Sha1ForNonSecretPurposes under Common (#45242)
Jan Kotas [Thu, 26 Nov 2020 16:25:40 +0000 (08:25 -0800)]
Move Sha1ForNonSecretPurposes under Common (#45242)

Avoid code duplication and contribute to #45237 and #45032

3 years agofix path to Unix folder for wasm (#45261)
yowl [Thu, 26 Nov 2020 16:24:41 +0000 (11:24 -0500)]
fix path to Unix folder for wasm (#45261)

3 years agoUpdate dependencies from https://github.com/dotnet/xharness build 20201126.1 (#45255)
dotnet-maestro[bot] [Thu, 26 Nov 2020 15:09:46 +0000 (15:09 +0000)]
Update dependencies from https://github.com/dotnet/xharness build 20201126.1 (#45255)

[master] Update dependencies from dotnet/xharness

3 years agoOptimize plan phase for foreground gcs (#45208)
Peter Sollich [Thu, 26 Nov 2020 14:19:02 +0000 (15:19 +0100)]
Optimize plan phase for foreground gcs (#45208)

* Changes to allow us to use the mark list for foreground GCs.

The key point is to clear the background GC mark bits for objects that the foreground GC found to be dead.

The existing code walked all the dead objects individually and cleared their mark bits, but as it turns out, it is significantly cheaper to turn off the mark bits in bulk.

* Address code review feedback - factor out common while-loop.

3 years agoMove sync block scan (#41600)
Peter Sollich [Thu, 26 Nov 2020 13:38:10 +0000 (14:38 +0100)]
Move sync block scan (#41600)

This change implements some primitive work stealing by executing GCScan::GcWeakPtrScanBySingleThread on the first thread that finishes GCScan::GcWeakPtrScan and sort_mark_list.

3 years agoShare unix getexepath() definition via src/native (#44999)
Adeel Mujahid [Thu, 26 Nov 2020 12:24:13 +0000 (14:24 +0200)]
Share unix getexepath() definition via src/native (#44999)

* Share unix getexepath() definition via src/native

* Address CR feedback

* Remove duplicate property

* Inline variable with single usage

* Fix include path in tests

* Remove unixcoreruncommon static lib dependency

* Merge coreruncommon.{cpp,h} into corerun.cpp

* Include local headers before the first use

* Remove Unix case from (Win32 only) corerun

* Use realpath in getauxval case

* Delete obsolete comment

3 years agoReverse ctors chaining for few SPC types to avoid calling complex ctors unnecessary...
Marek Safar [Thu, 26 Nov 2020 11:48:41 +0000 (12:48 +0100)]
Reverse ctors chaining for few SPC types to avoid calling complex ctors unnecessary (#45239)

3 years agoRemove closure/delegate allocation from ConsoleLoggerProvider.CreateLogger (#45236)
Stephen Toub [Thu, 26 Nov 2020 11:07:40 +0000 (06:07 -0500)]
Remove closure/delegate allocation from ConsoleLoggerProvider.CreateLogger (#45236)

* Remove closure/delegate allocation from ConsoleLoggerProvider.CreateLogger

* Update src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years agoAdd AggressiveInline To BitConverter Methods (#43105)
Khalid Abuhakmeh [Thu, 26 Nov 2020 08:42:53 +0000 (03:42 -0500)]
Add AggressiveInline To BitConverter Methods (#43105)

Add AggressiveInline To BitConverter.ToXXX methods that take ReadOnlySpan<byte>

Fixes #2106

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years ago[mono] Fix warnings on OSX, re-enable -Werror on CI with CMake (#44747)
Ryan Lucia [Thu, 26 Nov 2020 08:18:02 +0000 (03:18 -0500)]
[mono] Fix warnings on OSX, re-enable -Werror on CI with CMake (#44747)

* Ifdef out removed icalls on netcore

* Fix format string for cross builds

desc here is based on the pointer size of the target, whereas void* is based on the host

* Re-enable -WError on CI for OSX and Wasm

This got lost in the CMake transition

* Improve ep_rt_thread_id_t handling.

* Make types_str local to mono_fdhandle_insert

* Fix OSX build error.

* Align os thread id to uint64_t.

* Update src/mono/mono/sgen/sgen-descriptor.c

Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
* Update src/mono/mono/sgen/sgen-descriptor.c

Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
* Update src/mono/mono/sgen/sgen-descriptor.c

Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
* Revert "Make types_str local to mono_fdhandle_insert"

This reverts commit 04f56efcb8e9d33dca12f831f9c05591c649678c.

* Put types_str under appropriate ifdef

* Disable Werror on wasm

Co-authored-by: lateralusX <lateralusx.github@gmail.com>
Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
3 years agoImprove performance of Activator.CreateInstance (#32520)
Levi Broderick [Thu, 26 Nov 2020 07:32:13 +0000 (23:32 -0800)]
Improve performance of Activator.CreateInstance (#32520)

- Use modern C# calli features to invoke allocator and ctor
- Share arg validation code between CreateInstance and GetUninitializedObject
- Improve exception message when CreateInstance fails
- Lay foundation for future work in Activator

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years agoClose accept loop when closing connection for Quic (#44885)
Justin Kotalik [Thu, 26 Nov 2020 04:23:43 +0000 (20:23 -0800)]
Close accept loop when closing connection for Quic (#44885)

3 years agoNetworkInterface.Linux: take into account physical link status for OperationalStatus...
Tom Deseyn [Thu, 26 Nov 2020 04:23:14 +0000 (05:23 +0100)]
NetworkInterface.Linux: take into account physical link status for OperationalStatus and GetIsNetworkAvailable (#44867)

3 years agoRemove manually maintained msvc projects from src/mono (#45219)
Alexander Köplinger [Wed, 25 Nov 2020 23:56:58 +0000 (00:56 +0100)]
Remove manually maintained msvc projects from src/mono (#45219)

They're no longer needed after https://github.com/dotnet/runtime/pull/44976

3 years agoUpdate dependencies from https://github.com/dotnet/xharness build 20201125.2 (#45216)
dotnet-maestro[bot] [Wed, 25 Nov 2020 23:06:27 +0000 (18:06 -0500)]
Update dependencies from https://github.com/dotnet/xharness build 20201125.2 (#45216)

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.20574.2 -> To Version 1.0.0-prerelease.20575.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
3 years agoReduce allocation in OptionsManager (#45231)
Stephen Toub [Wed, 25 Nov 2020 23:05:23 +0000 (18:05 -0500)]
Reduce allocation in OptionsManager (#45231)

* Reduce allocation from OptionsCache's concurrent dictionary

This type is primarily used for getting and rarely mutated after startup; we don't need to pay for lots of lock objects to optimize for mutation.

* Avoid closure/delegate allocations in `OptionsManager<T>.Value`

* Update src/libraries/Microsoft.Extensions.Options/src/OptionsCache.cs

Co-authored-by: David Fowler <davidfowl@gmail.com>
Co-authored-by: David Fowler <davidfowl@gmail.com>
3 years agoRemove allocations from `OptionsCache<T>` (#45229)
Stephen Toub [Wed, 25 Nov 2020 23:05:11 +0000 (18:05 -0500)]
Remove allocations from `OptionsCache<T>` (#45229)

3 years agoDisabled Http2_PingKeepAlive (#45214)
Marie Píchová [Wed, 25 Nov 2020 21:22:44 +0000 (22:22 +0100)]
Disabled Http2_PingKeepAlive (#45214)

3 years agoHandle unsupported browser warnings (#43363)
Buyaa [Wed, 25 Nov 2020 21:20:52 +0000 (13:20 -0800)]
Handle unsupported browser warnings (#43363)

* Handle browser warnings

* Apply feedback, revert updates handled with different PRs

* Add misssing diagnotic id

* Address multitargeted warnings

* Apply feedback

* Small type/comment updates

* Apply more feedback

* Use project settings instead adding Directory.Build.props

* Annotate APIs injecting unsupported type through DI

* Fix window support related warnings found with generic type parameter

* Fix another browser warning found with generic type parameter bug fix

* All public APIs of ConsoleLoggerExtensions are unsupported, so marking entire type as unsupported on browser

* Try handle mono warnings

* Revert mono related changes, it was mistake

* Try handle browser warninga in mono

* Apply feedback and fix new warnings caused from corelib changes

* Review update

* Apply feedback

* Move platform specific section from HttpTelemetry

* Revering unwanted changes

* Remove redundant attributes

* Exclude cross platform build with browser target

* small updates

* Annotate entire type DiagnosticCounter unsupported

* Apply feedback, improve suppression comments

* Remove Unsupported browser from TypeDescriptor.CreateInstance, TypeDescriptionProvider.CreateInstance and related updates

3 years agoInitial version of class profiling for PGO (#45133)
Andy Ayers [Wed, 25 Nov 2020 19:22:54 +0000 (11:22 -0800)]
Initial version of class profiling for PGO (#45133)

* Initial version of class profiling for PGO

Add support to the jit and runtime so that PGO can determine the distribution of
classes at virtual and indirect call sites.

Use this information when jitting to enable guarded devirtualization, if there
is a suitably likely class to guess for.

Enable by setting:
```
COMPlus_TieredCompilation=1
COMPlus_TieredPGO=1
COMPlus_JitClassProfiling=1
COMPlus_JitEnableGuardedDevirtualization=1
```
impact can be enhanced by also setting
```
COMPlus_TC_QuickJitForLoops=1
```
to allow more methods to pass through Tier0.

3 years agoDisabled test, fixed some typos as well. (#45212)
Marie Píchová [Wed, 25 Nov 2020 19:20:18 +0000 (20:20 +0100)]
Disabled test, fixed some typos as well. (#45212)

3 years agoFix ninja package name (#45217)
Jeremy Koritzinsky [Wed, 25 Nov 2020 18:43:40 +0000 (10:43 -0800)]
Fix ninja package name (#45217)

3 years agoMono: switch to CMake build on Windows (#44976)
Alexander Köplinger [Wed, 25 Nov 2020 17:56:52 +0000 (18:56 +0100)]
Mono: switch to CMake build on Windows (#44976)

This unifies the build with the other platforms.

Hooks up the versioning targets so the mono libraries get the correct version.

3 years agoRemove unused Enum::InternalFlagsFormat parameter (#45196)
Marek Safar [Wed, 25 Nov 2020 16:51:13 +0000 (17:51 +0100)]
Remove unused Enum::InternalFlagsFormat parameter (#45196)

3 years ago[wasm] change filtering system timezones from zone.tab as a task parameter (#45138)
Tammy Qiu [Wed, 25 Nov 2020 16:18:33 +0000 (11:18 -0500)]
[wasm] change filtering system timezones from zone.tab as a task parameter (#45138)

* change filtering system timezones from zone.tab as a task parameter

Co-authored-by: Ankit Jain <radical@gmail.com>
3 years ago[master] Update dependencies from dotnet/icu dotnet/llvm-project dotnet/arcade dotne...
dotnet-maestro[bot] [Wed, 25 Nov 2020 15:32:31 +0000 (15:32 +0000)]
[master] Update dependencies from dotnet/icu  dotnet/llvm-project dotnet/arcade dotnet/runtime-assets dotnet/xharness (#44459)

[master] Update dependencies from dotnet/icu  dotnet/llvm-project dotnet/arcade dotnet/runtime-assets dotnet/xharness

 - Merge branch 'master' into darc-master-f04f89fe-a712-45ce-96bf-a8d278fcda72

 - Revert changes to dotnet sdk in global.json

See https://github.com/dotnet/runtime/pull/45108#pullrequestreview-536374298

3 years agoFix spelling of OverideEventProvider (#45113)
Stephen Toub [Wed, 25 Nov 2020 14:35:39 +0000 (09:35 -0500)]
Fix spelling of OverideEventProvider (#45113)

* Fix spelling of OverideEventProvider

* Fix a few more "overrides" in comments

3 years agoImplement TCP Keep-Alive for WinHttpHandler (#44889)
Anton Firszov [Wed, 25 Nov 2020 14:13:09 +0000 (15:13 +0100)]
Implement TCP Keep-Alive for WinHttpHandler (#44889)

Implements the final version of the API proposal in #44025 except the [SupportedOSPlatform("windows10.0.2004")] bits

3 years agoFix Socket telemetry outerloop test failures (#45170)
Stephen Toub [Wed, 25 Nov 2020 11:31:15 +0000 (06:31 -0500)]
Fix Socket telemetry outerloop test failures (#45170)

Based purely on code inspection, since I couldn't repro the failures happening in the lab, I believe what's happening is we're not outputting the right events if the connect ends up completing so fast that it's treated as a synchronous completion.  The fix is to move the relevant tracing to be done when the work completes, regardless of the completion mode.

I was able to simulate at least one set of failures by delaying the calling thread before it reaches a particular point, and this fixes that issue, so even if it's not fixing all known problems (hopefully it is), it's at least fixing some.

3 years agoSkip some PKCS9 tests on NetFx (#45199)
Levi Broderick [Wed, 25 Nov 2020 11:04:05 +0000 (03:04 -0800)]
Skip some PKCS9 tests on NetFx (#45199)

3 years agoFix Activity Start Time Precision (#45175)
Tarek Mahmoud Sayed [Wed, 25 Nov 2020 04:44:54 +0000 (20:44 -0800)]
Fix Activity Start Time Precision (#45175)

3 years agoRemove redundant ExecutionContext private ctor parameter (#45173)
Marek Safar [Wed, 25 Nov 2020 03:30:25 +0000 (04:30 +0100)]
Remove redundant ExecutionContext private ctor parameter (#45173)

3 years agoRemove ForceAsync from CryptoStream (#45150)
Stephen Toub [Wed, 25 Nov 2020 01:25:27 +0000 (20:25 -0500)]
Remove ForceAsync from CryptoStream (#45150)

3 years agoKeep precise argument sizes between import and morph. (#43130)
Sergey Andreenko [Wed, 25 Nov 2020 00:44:23 +0000 (16:44 -0800)]
Keep precise argument sizes between import and morph. (#43130)

Create `GT_PUTARG_TYPE` when signature type does not match node type.
Check in morph that this information has survived inlining and other phases between.

3 years agoFix work item exit code for helix tests (#45164)
Alex Perovich [Tue, 24 Nov 2020 23:52:26 +0000 (15:52 -0800)]
Fix work item exit code for helix tests (#45164)

* Fix work item exit code for helix tests

The helix work items are only supposed to return non-zero if they fail
to report tests for some reason.

* Fix if

3 years agoReduce SafeHandle allocation in CertEnumCertificatesInStore (#45166)
Stephen Toub [Tue, 24 Nov 2020 22:59:42 +0000 (17:59 -0500)]
Reduce SafeHandle allocation in CertEnumCertificatesInStore (#45166)

And avoiding leaving the last invalid one for finalization.

3 years agoJIT: change basic block weight to float (#45052)
Andy Ayers [Tue, 24 Nov 2020 22:25:04 +0000 (14:25 -0800)]
JIT: change basic block weight to float (#45052)

Change the core data type for basic block weights from unsigned to float,
to simplify overall calculations and allow for a wider dynamic range.

Many changes are straightforward, but a few are worth noting:
* LSRA needs a true max weight, so had to introduce infinity
* I removed some of the overflow checking as floats naturally saturate.
* The simple geometric loop weight scaling (*8 per loop nest level) leads
  to some very large counts in some tests (15 level loop nests). We may
  want to rethink this and scale less aggressively in deep nests.
* Morph's use of the weighted ref counts for RCS_EARLY is nonstandard
  and the values are not actually weights, so I just added a cast back to unsigned.
* Several places in the jit seem to try and compare or combine unweighted
  and weighted counts; I don't think this makes sense. But have left as is.
* Lower, LIR, and Decompose were passing around weights but never using them.
* I had to introduce a special new weight for the inline projection we do
  for the prejit root.

These changes lead to small numbers of diffs, mostly places where small rounding
changes have altered heuristics; notably:
* cse weights
* LSRA's initial take on whether a parameter should be enregistered

Overall diff impact is a wash.

There are almost no diffs without PGO/IBC data. Diffs are slightly more
prominent in the Roslyn assemblies prejitted with some IBC.

I've tried to keep the format of weights the same in dumps (in most places)
and see minimal diffs in dumps too.

3 years agoFix Full Width Chars Casing (#45079)
Tarek Mahmoud Sayed [Tue, 24 Nov 2020 21:51:46 +0000 (13:51 -0800)]
Fix Full Width Chars Casing (#45079)

3 years agoDelay initialization of Task related properties which are rarely used (#45127)
Marek Safar [Tue, 24 Nov 2020 21:08:33 +0000 (22:08 +0100)]
Delay initialization of Task related properties which are rarely used (#45127)

* Delay initialization of Task related properties which are rarely used

to reduce the dependencies chain

* Apply PR review suggestions

* fix up previous commit

* Update src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoadd support for less standard serial port speeds on macOS (#44052)
Tomas Weinfurt [Tue, 24 Nov 2020 18:37:02 +0000 (10:37 -0800)]
add support for less standard serial port speeds on macOS (#44052)

* add support for less standard serial port speeds on macOS

* s/ifdef/if

3 years agoHandle inconsistent \0 in Pkcs9Document{Name|Description}
Jeremy Barton [Tue, 24 Nov 2020 14:53:00 +0000 (06:53 -0800)]
Handle inconsistent \0 in Pkcs9Document{Name|Description}

3 years agoReduce RuntimeType.MakeGenericType overheads (#45137)
Stephen Toub [Tue, 24 Nov 2020 12:03:10 +0000 (07:03 -0500)]
Reduce RuntimeType.MakeGenericType overheads (#45137)

- Avoid an extra GetGenericArguments() call for all arities.
- Special-case a Type[] with just one type.  In looking at all calls to MakeGenericType when starting up a basic ASP.NET MVC app, 70% were for a single generic argument (the rest were for two).

3 years agoUpdate nullability.md
Stephen Toub [Tue, 24 Nov 2020 03:45:58 +0000 (22:45 -0500)]
Update nullability.md

3 years agoFix CoreRT frozen strings handling. (#45095)
Sergey Andreenko [Tue, 24 Nov 2020 02:42:23 +0000 (18:42 -0800)]
Fix CoreRT frozen strings handling. (#45095)

* Fix CoreRT frozen strings handling.

* Review response.

* Delete noway_assert.

* Additional checks.

* Fix failures.

3 years agoFix native build on arm and arm64. (#45131)
Sergey Andreenko [Tue, 24 Nov 2020 02:32:24 +0000 (18:32 -0800)]
Fix native build on arm and arm64. (#45131)

* Fix native build on arm and arm64.

* Fix a typo.

3 years agoRemove most uses of RuntimeTypeHandle.Allocate (#45085)
Levi Broderick [Mon, 23 Nov 2020 23:53:09 +0000 (15:53 -0800)]
Remove most uses of RuntimeTypeHandle.Allocate (#45085)

- Refactoring paves way for related work in https://github.com/dotnet/runtime/pull/32520
- Fixes some possible GC holes in the reflection stack

3 years agoUpdate ILVerify readme (#45123)
Jan Kotas [Mon, 23 Nov 2020 21:51:34 +0000 (13:51 -0800)]
Update ILVerify readme (#45123)

ILVerify is published on nuget now. It is not required to use the nightly feed anymore.

3 years agoUse Type.EmptyTypes consistently (#45112)
Stephen Toub [Mon, 23 Nov 2020 20:48:27 +0000 (15:48 -0500)]
Use Type.EmptyTypes consistently (#45112)

We currently have several hundred uses of `Array.Empty<Type>()` and several hundred uses of `Type.EmptyTypes`.  This just changes the repo to use the latter consistently.

3 years agoUse `argIsInvariant` instead of `argNode->OperIsConst()` for inlining observations...
Sergey Andreenko [Mon, 23 Nov 2020 18:57:27 +0000 (10:57 -0800)]
Use `argIsInvariant` instead of `argNode->OperIsConst()` for inlining observations. (#44790)

* Use `argIsInvariant` instead of `argNode->OperIsConst()`.

* add a small repro test for the current issue.

3 years agoAdd support for stack walks on wasm for the reflection methods which need them. ...
Zoltan Varga [Mon, 23 Nov 2020 17:25:52 +0000 (12:25 -0500)]
Add support for stack walks on wasm for the reflection methods which need them. (#45076)

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

3 years ago[Android] Introduce AndroidApkFileReplacerTask task (#44993)
Egor Bogatov [Mon, 23 Nov 2020 16:33:40 +0000 (19:33 +0300)]
[Android] Introduce AndroidApkFileReplacerTask task (#44993)

3 years agoSkip Invariant initialization test for CultureData.Invariant (#45064)
Ben Adams [Mon, 23 Nov 2020 15:02:35 +0000 (15:02 +0000)]
Skip Invariant initialization test for CultureData.Invariant (#45064)

* Skip Invariant initalization test for CultureData.Invariant

* Feedback

3 years agodisable ReadWrite_Success_Large test for CryptoStream because it takes too long to...
Geoff Kizer [Mon, 23 Nov 2020 14:19:09 +0000 (06:19 -0800)]
disable ReadWrite_Success_Large test for CryptoStream because it takes too long to run (#45081)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
3 years agoCreate cancellation token registration wrapper only when it's needed (#45075)
Marek Safar [Mon, 23 Nov 2020 12:58:33 +0000 (13:58 +0100)]
Create cancellation token registration wrapper only when it's needed (#45075)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoImprove throughput of Environment.GetEnvironmentVariables() (#45057)
Stephen Toub [Sun, 22 Nov 2020 22:59:47 +0000 (17:59 -0500)]
Improve throughput of Environment.GetEnvironmentVariables() (#45057)

Use IndexOf to search for positions rather than open-coded loops, taking advantage of vectorization to improve throughput.

3 years agoDelete unused WinRT related strings (#45067)
Jan Kotas [Sun, 22 Nov 2020 15:30:25 +0000 (07:30 -0800)]
Delete unused WinRT related strings (#45067)

Fix a few typos

3 years agoFix Typos (#45024)
N [Sun, 22 Nov 2020 06:59:00 +0000 (01:59 -0500)]
Fix Typos (#45024)

3 years agoDrop Convert static constructor dependency from RuntimeType (#45054)
Marek Safar [Sun, 22 Nov 2020 06:06:04 +0000 (07:06 +0100)]
Drop Convert static constructor dependency from RuntimeType (#45054)

* Drop Convert static constructor dependency from RuntimeTypeto make it trimmable

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years agoUse HexConverter directly when producing hex representation of enum value (#44945)
Marek Safar [Sat, 21 Nov 2020 23:06:52 +0000 (00:06 +0100)]
Use HexConverter directly when producing hex representation of enum value (#44945)

instead of hopping over layers of ToString indirections which end up calling HexConvertor anyway.

3 years agoHandle non-ASCII strings in GetNonRandomizedHashCodeOrdinalIgnoreCase (#44688)
Egor Bogatov [Sat, 21 Nov 2020 23:01:32 +0000 (02:01 +0300)]
Handle non-ASCII strings in GetNonRandomizedHashCodeOrdinalIgnoreCase (#44688)

* Fix GetNonRandomizedHashCodeOrdinalIgnoreCase

* Add a test

Co-authored-by: Levi Broderick <levib@microsoft.com>
3 years agoImplement getMethodModule (#45046)
Bruce Forstall [Sat, 21 Nov 2020 18:46:03 +0000 (10:46 -0800)]
Implement getMethodModule (#45046)

R2R testing was failing by hitting an assert about unimplemented
getMethodModule, called as part of R2R-only devirtualization handling
in the JIT.

I didn't determine why this regressed now.

Fixes #45016

3 years agoCorrect nullability annotation for IDataRecord (#44938)
Shay Rojansky [Sat, 21 Nov 2020 07:11:41 +0000 (09:11 +0200)]
Correct nullability annotation for IDataRecord (#44938)

Fixes #44886

3 years agoUse OutputRid for host packs (#45041)
Adeel Mujahid [Sat, 21 Nov 2020 03:12:31 +0000 (05:12 +0200)]
Use OutputRid for host packs (#45041)

3 years ago[browser][tests] Standup System.Net.WebSockets.Client.Tests in CI (#44781)
Kenneth Pouncey [Sat, 21 Nov 2020 02:45:12 +0000 (03:45 +0100)]
[browser][tests] Standup System.Net.WebSockets.Client.Tests in CI (#44781)

* [browser][tests] Standup System.Net.WebSockets.Client.Tests in CI

* Just a small test to see if tests are actually kicked off and failing.

* Remove comment from ActiveIssue to pass tests

* Address review comments

- mark the loopback issues as activeIssue - [ActiveIssue("https://github.com/dotnet/runtime/issues/34690", TestPlatforms.Browser)]

* Address review comments

* Correct confusion I caused

* Remove extra extra exclusion that snuck in

* Make browser specific failure browser specific

Co-authored-by: Larry Ewing <lewing@microsoft.com>
3 years agoHide DispatchTailCalls helper in stacktraces (#45019)
Jan Kotas [Sat, 21 Nov 2020 02:32:04 +0000 (18:32 -0800)]
Hide DispatchTailCalls helper in stacktraces (#45019)

Fixes #45011

3 years agoAdd GetCiphertextLength for CBC, CFB, and ECB.
Kevin Jones [Sat, 21 Nov 2020 00:02:53 +0000 (19:02 -0500)]
Add GetCiphertextLength for CBC, CFB, and ECB.

3 years agoRemove more LINQ usage from various dotnet/runtime libraries (#44964)
Stephen Toub [Fri, 20 Nov 2020 23:58:31 +0000 (18:58 -0500)]
Remove more LINQ usage from various dotnet/runtime libraries (#44964)

* Remove unnecessary OrderBy / copy from MemoryCache.Compact

* Replace First() in ILEmitResolverBuilder with [0]

* Remove stale "using System.Linq;" from System.Text.Json

* Remove stale "using System.Linq;" from System.Security.Cryptography.X509Certificates

* Remove some LINQ usage from System.Security.Cryptography.Pkcs

* Remove System.Linq reference from System.Private.Xml

* Remove System.Linq reference from System.Net.WebHeaderCollection

* Remove stale "using System.Linq;" from CookieContainer

* Remove stale "using System.Linq;" from AltSvcHeaderParser

* Remove Enumerable.Contains on a string from System.IO.Packaging

* Remove System.Linq dependency from System.Diagnostics.Process

* Remove LINQ usage from Microsoft.Extensions.Options

* Remove LINQ usage from Microsoft.Extensions.Logging

* Remove LINQ usage from Microsoft.Extensions.Logging.Console

* Remove LINQ from CollectionExtensions.GetAssets/RuntimeFiles

* Update src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampToken.cs

Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
3 years agoRemove LINQ usage from EnvironmentVariablesConfigurationProvider (#44923)
Stephen Toub [Fri, 20 Nov 2020 23:57:40 +0000 (18:57 -0500)]
Remove LINQ usage from EnvironmentVariablesConfigurationProvider (#44923)

3 years agoRemove Convert.ToByte usage from Enum (#45004)
Stephen Toub [Fri, 20 Nov 2020 23:17:35 +0000 (18:17 -0500)]
Remove Convert.ToByte usage from Enum (#45004)

3 years agoFix buffer comparison in stream conformance tests (#45012)
Geoff Kizer [Fri, 20 Nov 2020 23:12:55 +0000 (15:12 -0800)]
Fix buffer comparison in stream conformance tests (#45012)

* avoid using Assert.Equals for buffer comparison in stream conformance tests because it's super, super slow

* Apply suggestions from code review

update span comparisons

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoRegister allocation cleanup (#44977)
Kunal Pathak [Fri, 20 Nov 2020 21:30:42 +0000 (13:30 -0800)]
Register allocation cleanup (#44977)

* Register allocation cleanup

- Comment updates
- Misc code cleanup

* jit format

3 years agoAdd missing XML docs to System.Security.* (#44461)
Krzysztof Wicher [Fri, 20 Nov 2020 20:32:07 +0000 (21:32 +0100)]
Add missing XML docs to System.Security.* (#44461)

* Add missing XML docs to System.Security.*

* add missing <

* Apply suggestions from code review

Co-authored-by: Carlos Sanchez <1175054+carlossanlop@users.noreply.github.com>
* Update src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampTokenInfo.cs

Co-authored-by: Carlos Sanchez <1175054+carlossanlop@users.noreply.github.com>
* apply feedback

* fix merge conflict (renamed parameters)

* Apply suggestions from code review

Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
* Update src/libraries/System.Security.Cryptography.Pkcs/src/System/Security/Cryptography/Pkcs/Rfc3161TimestampTokenInfo.cs

Co-authored-by: Carlos Sanchez <1175054+carlossanlop@users.noreply.github.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
3 years agoAdd chmod for the SoD tool (#45014)
Drew Scoggins [Fri, 20 Nov 2020 20:00:40 +0000 (12:00 -0800)]
Add chmod for the SoD tool (#45014)

* Add chmod for the SoD tool

* crossgen.out input path

3 years agoAdd Linux ARM64 runs (#44887)
Drew Scoggins [Fri, 20 Nov 2020 19:46:32 +0000 (11:46 -0800)]
Add Linux ARM64 runs (#44887)