platform/upstream/dotnet/runtime.git
2 years agoRevert "[mono] Fix a few corner case overflow operations (#57407)" (#57501)
Sam Patel [Mon, 16 Aug 2021 23:18:10 +0000 (19:18 -0400)]
Revert "[mono] Fix a few corner case overflow operations (#57407)" (#57501)

This reverts commit e81efc832ae56978ae26ff0dbf17cb5622cee735.

2 years agoLocalized file check-in by OneLocBuild Task (#57384)
dotnet bot [Mon, 16 Aug 2021 21:57:42 +0000 (14:57 -0700)]
Localized file check-in by OneLocBuild Task (#57384)

2 years ago[debugger][wasm] Support DebuggerProxyAttribute (#56872)
Thays Grazia [Mon, 16 Aug 2021 21:52:06 +0000 (18:52 -0300)]
[debugger][wasm] Support DebuggerProxyAttribute (#56872)

* Implementing debugger proxy

* fix compilation

* Implement debuggerproxy attribute.

* Reusing code for DebuggerProxy method and DebuggerDisplay method.

* Fix unit tests.

* Fixing unit tests that uses List<T>.

* Fix unit tests that uses List.

* Addressing @radical comments.

* Using flags enum as suggested by @lewing.

* Fixing merge.

* Addressing @radical comments.

* Addressing @radical comments.

Co-authored-by: Larry Ewing <lewing@microsoft.com>
2 years agoAccount for type mismatch of `FIELD_LIST` members in LSRA (#57450)
SingleAccretion [Mon, 16 Aug 2021 21:22:06 +0000 (00:22 +0300)]
Account for type mismatch of `FIELD_LIST` members in LSRA (#57450)

* Add the test

* Fix the bug

Assertion propagation can replace a TYP_UBYTE field
in a field list with a TYP_INT constant, so LSRA
must use the actual field type when deciding whether
an internal register to allocate must be byteable.

2 years agoQualify `sorted_table` allocation with `nothrow` (#57467)
Michal Strehovský [Mon, 16 Aug 2021 20:49:28 +0000 (05:49 +0900)]
Qualify `sorted_table` allocation with `nothrow` (#57467)

It's clearly what we intended, given the following line.

2 years agoRename transport packages to follow convention (#57504)
Viktor Hofer [Mon, 16 Aug 2021 20:18:08 +0000 (22:18 +0200)]
Rename transport packages to follow convention (#57504)

* Rename transport packages to follow convention

As agreed on in https://github.com/dotnet/windowsdesktop/pull/1936, we
want to follow a common schema when naming our transport packages.

Also updating the docs to reflect the name changes and to also
accomodate for the WindowsDesktop transport package.

* Update src.proj

* Update src.proj

2 years agoGenerate proper DWARF reg num for ARM32 (#57443)
Andrii Kurdiumov [Mon, 16 Aug 2021 19:46:26 +0000 (01:46 +0600)]
Generate proper DWARF reg num for ARM32 (#57443)

After introduction of VFP-v3 ARM S0-S31 no longer can be generated using LLVM because  numbering of registers to start from 256 and only D0-D31 are used.
So this change encode S0 as D0, S2 as D1, etc. Also use reg nums for DXX registers.
This change fix generation of CFI codes,
which trigger issue with generation of DWARF using LLVM in NativeAOT
See https://developer.arm.com/documentation/ihi0040/c/?lang=en#dwarf-register-names
See https://github.com/dotnet/runtimelab/issues/1388

2 years agoEnable System.Linq.Queryable and disable https://github.com/dotnet/runtime/issues...
Larry Ewing [Mon, 16 Aug 2021 18:49:20 +0000 (13:49 -0500)]
Enable System.Linq.Queryable and disable https://github.com/dotnet/runtime/issues/50712 (#57464)

2 years agoMark individual tests for 51211 (#57463)
Larry Ewing [Mon, 16 Aug 2021 18:43:18 +0000 (13:43 -0500)]
Mark individual tests for 51211 (#57463)

2 years agoFix Length for ReadOnlySequence created out of sliced Memory owned by MemoryManager...
Adam Sitnik [Mon, 16 Aug 2021 18:12:38 +0000 (20:12 +0200)]
Fix Length for ReadOnlySequence created out of sliced Memory owned by MemoryManager (#57479)

2 years agoAdd JsonConverter.Write/ReadAsPropertyName APIs (#57302)
Eirik Tsarpalis [Mon, 16 Aug 2021 16:46:06 +0000 (17:46 +0100)]
Add JsonConverter.Write/ReadAsPropertyName APIs (#57302)

* add JsonConverter.Write/ReadAsPropertyName APIs

* address feedback

2 years agoRemove workaround for dotnet/sdk#19482 (#57453)
Larry Ewing [Mon, 16 Aug 2021 14:31:54 +0000 (09:31 -0500)]
Remove workaround for dotnet/sdk#19482 (#57453)

2 years agoDo not drain HttpContentReadStream if the connection is disposed (#57287)
Anton Firszov [Mon, 16 Aug 2021 13:59:10 +0000 (15:59 +0200)]
Do not drain HttpContentReadStream if the connection is disposed (#57287)

Fixes #56159.

2 years ago[mono] Fix a few corner case overflow operations (#57407)
Vlad Brezae [Mon, 16 Aug 2021 13:34:10 +0000 (16:34 +0300)]
[mono] Fix a few corner case overflow operations (#57407)

* [interp] Fix a few overflow conversions

Comparison for overflow was incorrect because for example, (int8)-128.5 = -128, without overflows, even if -128.5 is smaller than the minimum integer. We use instead the float equality comparison between trunc (val) and (int)val.

* [mono][jit] Fix invalid uses of SHL instead of MUL optimization

mono_is_power_of_two is meant to be used only on unsigned numbers. In some cases we pass a signed value instead. This is typically not a problem because negative numbers are not detected as a power of two, except for the special number -2147483648, which is coded as 0x80000000, therefore a power of two.

* Enable tests

2 years agomake use of ports in SPN optional (#57159)
Tomas Weinfurt [Mon, 16 Aug 2021 10:16:07 +0000 (03:16 -0700)]
make use of ports in SPN optional (#57159)

* make port optional in SPN

* fix tests

* feedback from review

* Update src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/AuthenticationHelper.NtAuth.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* fix build

Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoFixed H/3 stress server after the last Kestrel change (#57356)
Marie Píchová [Mon, 16 Aug 2021 09:02:17 +0000 (11:02 +0200)]
Fixed H/3 stress server after the last Kestrel change (#57356)

2 years agodisable a failing stress test. (#57473)
Sergey Andreenko [Mon, 16 Aug 2021 08:51:16 +0000 (01:51 -0700)]
disable a failing stress test. (#57473)

2 years agoEliminate temporary byte array allocations in the static constructor of `IPAddress...
Theodore Tsirpanis [Mon, 16 Aug 2021 04:34:59 +0000 (07:34 +0300)]
Eliminate temporary byte array allocations in the static constructor of `IPAddress`. (#57397)

2 years agoUpdate dependencies from https://github.com/dotnet/emsdk build 20210815.1 (#57447)
dotnet-maestro[bot] [Sun, 15 Aug 2021 21:17:00 +0000 (16:17 -0500)]
Update dependencies from https://github.com/dotnet/emsdk build 20210815.1 (#57447)

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100
 From Version 6.0.0-rc.1.21409.2 -> To Version 6.0.0-rc.1.21415.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years ago[main] Update dependencies from mono/linker (#57344)
dotnet-maestro[bot] [Sun, 15 Aug 2021 21:14:18 +0000 (16:14 -0500)]
[main] Update dependencies from mono/linker (#57344)

* Update dependencies from https://github.com/mono/linker build 20210812.1

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21409.3 -> To Version 6.0.100-preview.6.21412.1

* Update dependencies from https://github.com/mono/linker build 20210813.1

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21409.3 -> To Version 6.0.100-preview.6.21413.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
2 years agoImprove serializer performance (#57327)
Steve Harter [Sun, 15 Aug 2021 20:30:47 +0000 (15:30 -0500)]
Improve serializer performance (#57327)

2 years ago[wasm] Don't use workload for tfm < net6.0 (#56606)
Ankit Jain [Sun, 15 Aug 2021 18:10:26 +0000 (14:10 -0400)]
[wasm] Don't use workload for tfm < net6.0 (#56606)

* Bump sdk used for testing to 6.0.100-rc.1.21402.6

* InstallWorkloadFromArtifacts: Add OnlyUpdateManifests parameter

* [wasm] Run Wasm.Build.Tests with sdk/no-workload/+EMSDK

Currently, Wasm.Build.Tests are run in two modes:

1. sdk(`$(SdkVersionForWorkloadTesting)`)+workload installed
2. sdk(from global.json)+EMSDK+LocalBuild targets

this commit changes (2) to:

2. sdk(`$(SdkVersionForWorkloadTesting)`), no workload installed, +
   EMSDK+LocalBuild targets

This makes it closer to what a user would actually use.

Also, for the workload tests, this removes `$(WasmNativeWorkload)`
always being set to `true`. The workload should be setting that, and not
the tests.

* Wasm.Build.Tests: Add test for net5.0 blazor projects

* Disable unrelated builds for now

* Revert "Disable unrelated builds for now"

This reverts commit 6fa0efe2ffcfdbcfaba3bdf519a7717809c22672.

* Rename OnlyWasmBuildTests -> TestWasmBuildTests

2 years agoSupport long module path (#57335)
Adam Sitnik [Sun, 15 Aug 2021 11:32:09 +0000 (13:32 +0200)]
Support long module path (#57335)

* Support long path

* while (true)

* Calculate new length based on array length

* Add a test

* use a smaller value to ensure that at least for DEBUG builds

we test the code path that rents a bigger array from ArrayPool

* add few extra asserts to the test to see why it fails in CI

* Assembly.LoadFile used the way this test is implemented fails on Mono

* don't run the test on Windows 7, for some reason it does not work

* Apply suggestions from code review

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* handle truncated module names, simplify the implementation and dispose tmp modules before throwing exception

* make sure that when the module is not found by the test, the test runner prints available module paths

* Apply suggestions from code review

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* polishing

Co-authored-by: NextTurn <45985406+NextTurn@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoUpdate source-index-stage1.yml (#57435)
Viktor Hofer [Sun, 15 Aug 2021 08:48:57 +0000 (10:48 +0200)]
Update source-index-stage1.yml (#57435)

Again apply https://github.com/dotnet/runtime/commit/c842beb5a94642e7ddd06e262c50f67e297ce986 as the fix was overridden in the latest Arcade update.

2 years agoFix `FileProviders.Physical.GetLastWriteTimeUtc` crash (#57415)
Maksym Koshovyi [Sun, 15 Aug 2021 00:57:36 +0000 (03:57 +0300)]
Fix `FileProviders.Physical.GetLastWriteTimeUtc` crash (#57415)

* Update PollingFileChangeToken.cs

* Return min date on fail

2 years ago[hot_reload] Allow the .ctor token to change for CustomAttribute updates (#57388)
Aleksey Kliger (λgeek) [Sat, 14 Aug 2021 23:46:48 +0000 (19:46 -0400)]
[hot_reload] Allow the .ctor token to change for CustomAttribute updates (#57388)

* [hot_reload] Allow the .ctor token to change for CustomAttribute updates.

If the "type" (really .ctor) token is a MemberRef, it won't be literally the
same token value in the update as in the baseline because Roslyn emits
additional MemberRef, TypeRef and AssemblyRef rows instead of trying to reuse
the baseline ones.

We could try to resolve the baseline and delta tokens and check that they map
to the same MonoMethod*, but that is problematic (it may trigger assembly
loading and class initialization) and also unnecessary - without the
ChangeCustomAttribute capability Roslyn will not allow edits that change the
constructor or its arguments.  So just drop the extra check.

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

* Add testcase

2 years agoILCompiler.Reflection.ReadyToRun has to target netstandard2.0 for ILSpy usage (#57416)
Andrew Au [Sat, 14 Aug 2021 22:52:27 +0000 (15:52 -0700)]
ILCompiler.Reflection.ReadyToRun has to target netstandard2.0 for ILSpy usage (#57416)

2 years agoIOException path (#57389)
Dan Moseley [Sat, 14 Aug 2021 22:25:26 +0000 (16:25 -0600)]
IOException path (#57389)

2 years ago[tests] Set the EventSourceSupport feature switch (#57374)
Radek Doulik [Sat, 14 Aug 2021 20:08:23 +0000 (22:08 +0200)]
[tests] Set the EventSourceSupport feature switch (#57374)

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

The `EventSource_ExistsWithCorrectId` test requires the event source
switch be set to true to work correctly after aggressive linking.

2 years ago[main] Update dependencies from dotnet/arcade dotnet/hotreload-utils dotnet/roslyn...
dotnet-maestro[bot] [Sat, 14 Aug 2021 18:26:10 +0000 (18:26 +0000)]
[main] Update dependencies from dotnet/arcade dotnet/hotreload-utils dotnet/roslyn-analyzers dotnet/msquic (#57402)

[main] Update dependencies from dotnet/arcade dotnet/hotreload-utils dotnet/roslyn-analyzers dotnet/msquic

2 years ago[main] Update dependencies from mono/linker (#57203)
dotnet-maestro[bot] [Sat, 14 Aug 2021 18:01:58 +0000 (13:01 -0500)]
[main] Update dependencies from mono/linker (#57203)

* Update dependencies from https://github.com/mono/linker build 20210811.1

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21409.3 -> To Version 6.0.100-preview.6.21411.1

* Update dependencies from https://github.com/mono/linker build 20210811.2

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21409.3 -> To Version 6.0.100-preview.6.21411.2

* Update dependencies from https://github.com/mono/linker build 20210811.3

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21409.3 -> To Version 6.0.100-preview.6.21411.3

* Suppress trimmer warning

* Fix warning code value

* Fix netstandard build of libs

* Revert the code fix and just fix the XML suppression

* Revert project change

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: vitek-karas <vitek.karas@microsoft.com>
2 years ago[wasm] Make sure the TargetOS is capitalized (#54927)
Radek Doulik [Sat, 14 Aug 2021 12:15:56 +0000 (14:15 +0200)]
[wasm] Make sure the TargetOS is capitalized (#54927)

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

The $(TargetOS) is used in $(TargetFrameworks) and is case sensitive.
Make sure it is capitalized for Browser, so that build.cmd works when
used like:

    ./build.cmd -bl -os browser -subset libs

It fixes build errors like:

    C:\r\src\libraries\shims\manual\System.forwards.cs(8,88): error CS0234: The type or namespace name 'ZLibException' does not exist in the namespace 'System.IO.Compression' (are you missing an assembly reference?) [C:\r\src\libraries\shims\manual\System.csproj]
    C:\r\src\libraries\shims\manual\System.forwards.cs(9,77): error CS0234: The type or namespace name 'CookieVariant' does not exist in the namespace 'System.Net' (are you missing an assembly reference?) [C:\r\src\libraries\shims\manual\System.csproj]
    C:\r\src\libraries\shims\manual\System.forwards.cs(10,77): error CS0234: The type or namespace name 'PathList' does not exist in the namespace 'System.Net' (are you missing an assembly reference?) [C:\r\src\libraries\shims\manual\System.csproj]

2 years agoProperly account for padding in PUTARG_SPLIT with GT_FIELD_LIST (#57279)
Jakob Botsch Nielsen [Sat, 14 Aug 2021 09:10:06 +0000 (11:10 +0200)]
Properly account for padding in PUTARG_SPLIT with GT_FIELD_LIST (#57279)

We were writing the stack part to the outgoing stack area by a loop
incrementing the offset by the written size in each iteration. However,
it is possible due to padding and optimization that the written size is
smaller than the delta to the next field. Instead, use the offset of
each field minus the offset of the first stack field to find the offset
in the outgoing arg area.

Fix #57064

2 years agoHarvest signatures of methods being compiled by the token resolver (#57366)
Tomáš Rylek [Sat, 14 Aug 2021 07:50:40 +0000 (09:50 +0200)]
Harvest signatures of methods being compiled by the token resolver (#57366)

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

I believe this is the primary fix for the issue; when a type only
ever occurs in method signatures in an assembly, never in the
implementation IL, JIT never calls resolveToken for it and so it
doesn't make it to the module token resolver table.

My investigation revealed additional potential problems in the
product around exported type resolution and the IL linker;
I described them in the issue thread but I believe this to be
both the most appropriate and the safest primary fix.

Thanks

Tomas

2 years agoAvoid finalizer race in the SslStreamNetworkStreamTests cert creation (#57381)
Jeremy Barton [Sat, 14 Aug 2021 05:01:22 +0000 (22:01 -0700)]
Avoid finalizer race in the SslStreamNetworkStreamTests cert creation (#57381)

2 years ago[libraries] Update System.Runtime.Extensions tests for iOS,MacCatalyst,tvOS (#57210)
Mitchell Hwang [Sat, 14 Aug 2021 04:54:28 +0000 (00:54 -0400)]
[libraries] Update System.Runtime.Extensions tests for iOS,MacCatalyst,tvOS (#57210)

* [libraries] Update AppDomainTests for iOS,MacCatalyst,tvOS

* Update skip reasons

* Add MacCatalyst to Case Insensitive and remove ActiveIssues

* Replace ActiveIssue with ConditionalTheory based on RemoteExecutor

* Fix test for iOS/tvOS/Catalyst

* Skip UserName test on iOS tvOS

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
2 years agoFix thread pool completed work item counter to remove finalized nodes (#57305)
Koundinya Veluri [Sat, 14 Aug 2021 04:52:46 +0000 (21:52 -0700)]
Fix thread pool completed work item counter to remove finalized nodes (#57305)

* Fix thread pool completed work item counter to remove finalized nodes

- New nodes are being added to the set but finalized ones were not being removed
- This would result in double-counting the completed work item count for a thread that exits, and memory would grow over time

* Add a separate finalization helper for each node to track thread-local lifetimes

* Remove unnecessary IDisposable

* Fix nullability issues

* Update initialization of thread-local as suggested

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoAdd UnsupportedOSPlatform to RC2.Create for Android (#57289)
Kevin Jones [Sat, 14 Aug 2021 04:51:34 +0000 (00:51 -0400)]
Add UnsupportedOSPlatform to RC2.Create for Android (#57289)

* Add UnsupportedOSPlatform to RC2.Create for Android

* Add missing resource

* Reuse existing resource string

* Code review feedback

2 years agoFix compile issue with escaped characters in logging generator message (#57379)
Maryam Ariyan [Sat, 14 Aug 2021 04:49:22 +0000 (00:49 -0400)]
Fix compile issue with escaped characters in logging generator message (#57379)

2 years agoIgnore IOException in PollingFileChangeToken (#57376)
David Cantú [Sat, 14 Aug 2021 03:02:07 +0000 (20:02 -0700)]
Ignore IOException in PollingFileChangeToken (#57376)

* Ignore IOException in PollingFileChangeToken

* Don't use local method since FileStatus is a struct

* errno needs to be saved before calling InvalidateCaches

2 years agoImprove AppendLiteral for short literals (#57217)
Stephen Toub [Sat, 14 Aug 2021 02:48:00 +0000 (22:48 -0400)]
Improve AppendLiteral for short literals (#57217)

* Improve AppendLiteral for short literals

DefaultInterpolatedStringHandler.AppendLiteral is special, in that the 99.9% use case is it's called as part of string interpolation by compiler-generated code where the argument is always a literal.  That means when the method is inlined, the JIT can specialize the implementation based on knowing the literal's Length is a constant.  Which means we can provide specialized implementations for common lengths, resulting in faster and smaller code.  This does so for strings of length 1 and 2, as they're quite common in code bases examined, and it does so for both the default handler and also the handler used to format into a span.

The exact same code as before gets generated by the JIT for literals of length > 2.  The main downside here is if someone does manually call this CompilerServices method with a variable, the call site will end up bloated with the special cases.

* Address PR feedback

* Disable some CodeDom tests on mono interpreter

2 years agoimul instruction size misprediction (#57179)
Kunal Pathak [Sat, 14 Aug 2021 00:54:23 +0000 (17:54 -0700)]
imul instruction size misprediction (#57179)

* Add assert

* Remove the assert in emitInsSizeCV

* Add a check for includeRexPrefixSize

* Remove the codeSize() capping code added to fix #12840

* Make immediate only 4bytes long for non-mov instructions

* Delete a commented code

2 years agoAdd Capture.ValueSpan (#57357)
Stephen Toub [Fri, 13 Aug 2021 22:58:55 +0000 (18:58 -0400)]
Add Capture.ValueSpan (#57357)

2 years agoFix Build Failures if there are no packages produced in the release branch (#57311)
Anirudh Agnihotry [Fri, 13 Aug 2021 22:28:03 +0000 (15:28 -0700)]
Fix Build Failures if there are no packages produced in the release branch (#57311)

* no packages

* Update eng/pipelines/libraries/build-job.yml

Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
* change parameter name and add main condition to running of tests

* remove package testing condition as we no longer run package testing on helix

* Update eng/pipelines/libraries/build-job.yml

Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
* Update upload-intermediate-artifacts-step.yml

Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
2 years agoremove non -required package downloads and package reference (#57367)
Anirudh Agnihotry [Fri, 13 Aug 2021 22:27:39 +0000 (15:27 -0700)]
remove non -required package downloads and package reference (#57367)

2 years agofix no_progress attribute (#57377)
Kunal Pathak [Fri, 13 Aug 2021 21:42:20 +0000 (14:42 -0700)]
fix no_progress attribute (#57377)

2 years agoFix swapping evaluation order in assignments with CSE defs (#57364)
Jakob Botsch Nielsen [Fri, 13 Aug 2021 21:35:39 +0000 (23:35 +0200)]
Fix swapping evaluation order in assignments with CSE defs (#57364)

In some cases we were swapping the evaluation order of operands in
assignments when there were CSE defs in the subtrees. Change the logic
to properly forego the swapping in this situation.

Fix #57121

2 years agoAdd ILStrip task to trim method bodies (#57359)
Alexander Köplinger [Fri, 13 Aug 2021 21:21:34 +0000 (23:21 +0200)]
Add ILStrip task to trim method bodies (#57359)

This is used for iOS when assemblies are FullAOT compiled since the method body IL is unnecessary there.

2 years agoHandle early wakeup of counter loop (#57170)
John Salem [Fri, 13 Aug 2021 21:07:51 +0000 (14:07 -0700)]
Handle early wakeup of counter loop (#57170)

* Fix #56695
* prevent a negative delta value

* PR feedback + bug fix
* bug fix is preexisting: if a user other than the one who is listening sets the interval to 0 while the counter is enabled, it makes the counter continuously submit values. Changed this so that an interval value of <= 0 results in the counter being disabled

* Add assert after offline conversation

2 years ago[metadata] Generic params in covariant return checking is ok (#57298)
Aleksey Kliger (λgeek) [Fri, 13 Aug 2021 21:02:33 +0000 (17:02 -0400)]
[metadata] Generic params in covariant return checking is ok (#57298)

* [metadata] Generic params in covariant return checking is ok

The issue is that `mono_type_is_reference` does not look at whether a generic
parameter has a constraint that would make it a reference type (there is a big
comment near `mono_type_is_reference` that making it do so would break generic
sharing).

The issue is if you have something like:

```

class BaseClass {}

public class C {
       public virtual BaseClass SomeCovariantFunction() => ...
}

public class G<T> : C where T : BaseClass {
       public override T SomeCovariantFunction() => ...
}
```

Here when setting up `G<T>` we do a check that the override of
SomeCovariantFunction that returns T is a valid, which boils down to checking
that `T` is ok for a covariant return from `BaseClass`.  This is mostly the
same as `BaseClass` is-assignable-from `T`, except we also need to check that
`T` is not a valuetype that implements interface `BaseClass`.  That check was
wrong.  The fix is to check for `is_valuetype`, not `!is_reference` on `T`.

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

* fixup

2 years agoMark operands of non-RMW as delayFree (#57252)
Kunal Pathak [Fri, 13 Aug 2021 19:08:12 +0000 (12:08 -0700)]
Mark operands of non-RMW as delayFree  (#57252)

* For non-RMW intrinsics, always delayfree the operands

* Add test case

* Update test case to add Avx2.IsSupported

2 years agoFix invoking of `FileSystemWatcher` (#53151)
James Thomson [Fri, 13 Aug 2021 18:20:56 +0000 (19:20 +0100)]
Fix invoking of `FileSystemWatcher` (#53151)

Call `protected` `On...` event raising methods from `Notify...` methods,
to invoke `SynchronizingObject` when required.

Fix #52644

2 years agoimprove SNI handling when IP is passed in as DnsEndPoint to QuicListener (#57255)
Tomas Weinfurt [Fri, 13 Aug 2021 17:54:56 +0000 (10:54 -0700)]
improve SNI handling when IP is passed in as DnsEndPoint to QuicListener (#57255)

2 years ago[libraries] Skip FormKC and FormKD on iOS, tvOS, and MacCatalyst (#57317)
Mitchell Hwang [Fri, 13 Aug 2021 17:32:33 +0000 (13:32 -0400)]
[libraries] Skip FormKC and FormKD on iOS, tvOS, and MacCatalyst (#57317)

* [libraries] Skip FormKC and FormKD on iOS, tvOS, and MacCatalyst

* Remove associated ActiveIssue

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
2 years ago[mono][interp] Fixes for compilation of huge methods (#57346)
Vlad Brezae [Fri, 13 Aug 2021 16:12:01 +0000 (19:12 +0300)]
[mono][interp] Fixes for compilation of huge methods (#57346)

* [interp] Disable inlining if interpreter var limit is excedeed

Currently, the interpreter has a 64k limit for the stack space to be used by vars. If we reach this limit, retry compilation with inlining disabled, since inlining can increase significantly the method code.

* [interp] Improve cprop speed by removing redundant memclear

Instead of clearing the defs for all vars, clear only for the vars used within a basic block, as the jit does. Otherwise, for large methods with many locals and many bblocks, we end up spending most of the time clearing memory. Improves speed of cprop by 20-30%, while for huge methods it can improve it by orders of magnitude.

2 years agoHttpStress: Optimize LogHttpEventListener (#56983)
Anton Firszov [Fri, 13 Aug 2021 15:40:16 +0000 (17:40 +0200)]
HttpStress: Optimize LogHttpEventListener (#56983)

Eliminate autoflush, blocking calls and Task allocations in LogHttpEventListener, which can go expensive, when logging several thousands of lines per sec.

2 years ago[wasm] Disable native stripping for wasm samples. (#57316)
Zoltan Varga [Fri, 13 Aug 2021 15:36:14 +0000 (11:36 -0400)]
[wasm] Disable native stripping for wasm samples. (#57316)

2 years agoWinHttp: Remove [SupportedOSPlatformAttribute] with specific Windows version (#57340)
Anton Firszov [Fri, 13 Aug 2021 14:25:35 +0000 (16:25 +0200)]
WinHttp: Remove [SupportedOSPlatformAttribute] with specific Windows version (#57340)

2 years agoZero upper 4 bytes of the second operand of Vector3.Dot() in LowerHWIntrinsicDot...
Egor Chesakov [Fri, 13 Aug 2021 13:48:57 +0000 (06:48 -0700)]
Zero upper 4 bytes of the second operand of Vector3.Dot() in LowerHWIntrinsicDot() on Arm64 (#57328)

2 years agoQuic Abort after Dispose is no-op (#57318)
Natalia Kondratyeva [Fri, 13 Aug 2021 12:19:46 +0000 (14:19 +0200)]
Quic Abort after Dispose is no-op (#57318)

Allow calling Abort(Read|Write) after disposing. The only safe option to do so is to make them no-op in that case.

Fixes #56683

2 years agoAdd missing WindowsDesktop libraries (#57339)
Viktor Hofer [Fri, 13 Aug 2021 10:26:50 +0000 (12:26 +0200)]
Add missing WindowsDesktop libraries (#57339)

These two libraries are exposed in WindowsDesktop's shared framework but are missing from the transport package.

2 years agoAdd support for function pointers in ilverify (#57163)
Adeel Mujahid [Fri, 13 Aug 2021 10:24:30 +0000 (13:24 +0300)]
Add support for function pointers in ilverify (#57163)

* Provide logic verifying access to function pointer.

Extend AccessVerificationHelpers.CanAccess method so that it is
able to handle FunctionPointerType by making sure that a current class
can access all the types returned or accepted by the method pointed
by the given function pointer.

Fix #43502

* Add support for function pointers in ilverify importer

* Add ilverify tests for function pointers

* Trim trailing whitespace

* Use public surface of FunctionPointerType

* Check both return type and arguments of signature

* Delete CanAccessMethodSignature and simplify

* Add a test case for inaccessible return type

2 years agoAdd Quic back to aspnetcore transport pack (#57338)
Viktor Hofer [Fri, 13 Aug 2021 10:19:27 +0000 (12:19 +0200)]
Add Quic back to aspnetcore transport pack (#57338)

Also make sure that the documentation file is placed next to the
reference assembly if such is included as part of a ProjectReference.

Also move the IsAspNetCore property into packaging.targets as it's not
needed by the binplacing system anymore.

2 years ago[main] Update dependencies from dnceng/internal/dotnet-optimization dotnet/arcade...
dotnet-maestro[bot] [Fri, 13 Aug 2021 10:17:29 +0000 (12:17 +0200)]
[main] Update dependencies from dnceng/internal/dotnet-optimization dotnet/arcade dotnet/runtime-assets dotnet/hotreload-utils (#57278)

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210811.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.21410.2 -> To Version 1.0.0-prerelease.21411.3

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

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

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

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.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 6.0.0-beta.21405.1 -> To Version 6.0.0-beta.21411.3

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.2-alpha.0.21404.1 -> To Version 1.0.2-alpha.0.21411.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
2 years agoupdated msquic bits (#57285)
Marie Píchová [Fri, 13 Aug 2021 08:29:18 +0000 (10:29 +0200)]
updated msquic bits (#57285)

2 years agoThrow NotSupportedException when serializing Date/TimeOnly types (#57273)
Eirik Tsarpalis [Fri, 13 Aug 2021 08:19:42 +0000 (11:19 +0300)]
Throw NotSupportedException when serializing Date/TimeOnly types (#57273)

* throw NotSupportedException when serializing Date/TimeOnly types

* address feedback

2 years agoFix source indexer failing official builds (#57336)
Viktor Hofer [Fri, 13 Aug 2021 08:19:31 +0000 (10:19 +0200)]
Fix source indexer failing official builds (#57336)

Works around https://github.com/dotnet/arcade/issues/7747 to unblock official builds.
This change will revert itself with the next Arcade update.

2 years agoCreate WindowsDesktop transport package (#57314)
Viktor Hofer [Fri, 13 Aug 2021 06:17:36 +0000 (08:17 +0200)]
Create WindowsDesktop transport package (#57314)

As we don't include reference assemblies in our packages anymore, we
need a transport package for WindowsDesktop which contains the necessary
reference assemblies. Using the same layout as aspnetcore's package
which worked well in the past.

2 years agofix IncompleteReadCantSetPositionBeyondEndOfFile test (#57271)
Adam Sitnik [Fri, 13 Aug 2021 05:47:41 +0000 (07:47 +0200)]
fix IncompleteReadCantSetPositionBeyondEndOfFile test (#57271)

* use ten unique arrays, not the same array 10 times (this should fix the test failure)

* don't run this test for the old FileStream implementation

2 years agoExpression.Default and Expression.New with structs with parameterless constructors...
Charles Stoner [Fri, 13 Aug 2021 04:23:39 +0000 (21:23 -0700)]
Expression.Default and Expression.New with structs with parameterless constructors (#57034)

2 years agoAdd triple slash comments for new System.Drawing API added in 6.0 (#57313)
Santiago Fernandez Madero [Fri, 13 Aug 2021 01:35:49 +0000 (18:35 -0700)]
Add triple slash comments for new System.Drawing API added in 6.0 (#57313)

* Add triple slash comments for new System.Drawing API added in 6.0

Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
2 years agoDisable System.Drawing.Common tests for mobile workloads and skip a few other tests...
Steve Pfister [Fri, 13 Aug 2021 00:44:35 +0000 (20:44 -0400)]
Disable System.Drawing.Common tests for mobile workloads and skip a few other tests (#57114)

Since the library is PNSE by default, make sure the tests do not run on mobile.
Also skips a few other tests.

Closes #57184

2 years ago[mini] Add GC Unsafe transitions in mono_pmip (#57290)
monojenkins [Fri, 13 Aug 2021 00:30:09 +0000 (20:30 -0400)]
[mini] Add GC Unsafe transitions in mono_pmip (#57290)

Add a new mono_pmip_u that doesn't do the transition.

The intent is that Mono developers in the debugger can call still call
mono_pmip_u if the thread state machine is in a broken state.

Co-authored-by: lambdageek <lambdageek@users.noreply.github.com>
2 years agoMore xml docs (#57039)
Dan Moseley [Thu, 12 Aug 2021 23:49:53 +0000 (17:49 -0600)]
More xml docs (#57039)

* Update Handle docs

* Some easy xmldoc updates

* typo

* typo

* another

* Build breaks with M.IO.R.csproj

* updates

2 years agoTurn on disabled tracing tests (#56507)
John Salem [Thu, 12 Aug 2021 22:16:12 +0000 (15:16 -0700)]
Turn on disabled tracing tests (#56507)

2 years agoObsolete some System.Security.Cryptography.Pkcs APIs
Kevin Jones [Thu, 12 Aug 2021 22:13:48 +0000 (18:13 -0400)]
Obsolete some System.Security.Cryptography.Pkcs APIs

These members have never worked in .NET/.NET Core

2 years agoUpgrade SDK to 6.0.100-rc.1.21411.13 (#57143)
Viktor Hofer [Thu, 12 Aug 2021 22:09:01 +0000 (00:09 +0200)]
Upgrade SDK to 6.0.100-rc.1.21411.13 (#57143)

* Upgrade SDK to 6.0.100-rc.1.21379.2

Both the AzDO and the Core-Eng team believe believe that the issue is on our side and was caused by a thread pool regression. The assumption stands that we need to update to a newer SDK which contains the fix for the thread pool hang.

Pros:
- AzDO and Core-Eng believe that this will mitigate the AzDO feed restore issues.
Cons:
- We will upgrade to an unsigned SDK build. Arcade and other repos already did the same to workaround the issue.
- That SDK build isn’t officially released and won’t until RC 1 ships. This means that developers need to install that build via the nightly channel (from https://github.com/dotnet/installer) if they want to use their globally installed SDK in combination with dotnet/runtime.
- Even though this is a breaking change, we can’t wait for the next monthly infrastructure rollout.

* set StaticWebAssetsEnabled=false

* Remove IsSupported2 since asserting it is true when it might not be

* Try enabling the runtimeconfig generator everywhere

* Revert part of runtimeconfig parser change

* Fix System.Text.Json tests to run with trimming by setting MetadataUpdaterSupport=true.

Work around SDK issue by overwriting EnableUnsafeUTF7Encoding in System.Text.Encoding

* Disable bundling tests on Mac due to bug

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

* Make ProcessInfo tests resilient to RuntimeConfig switches on commandline

* Update global.json

Updating to 6.0.100-rc.1.21411.13

* Update to latest SDK.
Remove System.Text.Encoding.Tests workaround

* ignore runtimeconfig switches _if_ they show up

* Remove test which uses `dotnet run, which is SDK-specific

Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Andy Gocke <angocke@microsoft.com>
Co-authored-by: John Salem <josalem@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
2 years agoModify JSON generator to emit code with correct nullability (#57178)
Layomi Akinrinade [Thu, 12 Aug 2021 21:29:43 +0000 (14:29 -0700)]
Modify JSON generator to emit code with correct nullability (#57178)

* Modify JSON generator to emit code with correct nullability

* Use T? as arg for property getters/setters

2 years ago41431 improve performance and usage of xml serializer namespaces (#56438)
Steve Molloy [Thu, 12 Aug 2021 21:24:44 +0000 (14:24 -0700)]
41431 improve performance and usage of xml serializer namespaces (#56438)

* Allow easier creation of correctly sized dictionaries in scenarios with lots of known namespaces.

* Stop passing internal dictionaries around.

* Reduce enumerations, and immutable-ish improvements.

* PR feedback.

* Use ValueCollection directly instead of IEnumerable<> to avoid virtual calls.

* Update XmlSerializerNamespaces.cs

2 years agoDisable UsePollingFileWatcher_UseActivePolling_HasChanged_SymbolicLink_TargetChanged...
David Cantú [Thu, 12 Aug 2021 20:51:21 +0000 (13:51 -0700)]
Disable UsePollingFileWatcher_UseActivePolling_HasChanged_SymbolicLink_TargetChanged (#57299)

2 years ago[iOS][libraries] Throw PNSE for Exportable and PersistKeySet flags iOS (#57153)
Mitchell Hwang [Thu, 12 Aug 2021 20:38:59 +0000 (16:38 -0400)]
[iOS][libraries] Throw PNSE for Exportable and PersistKeySet flags iOS (#57153)

* [iOS][libraries] Throw PNSE for Exportable and PersistKeySet flags on iOS

* Fix typo

* Address feedback

* Address feedback

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
2 years ago[libraries][iOS][tvOS] Fix case of assembly in ActivatorTests (#57237)
Mitchell Hwang [Thu, 12 Aug 2021 20:15:57 +0000 (16:15 -0400)]
[libraries][iOS][tvOS] Fix case of assembly in ActivatorTests (#57237)

* [libraries][iOS][tvOS] Fix case of assembly in ActivatorTests

* Address test case change feedback

* Remove other activeissue

* Fix spacing

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
2 years agoRevert "Minor cleanups for System.Runtime.Numerics (#53984)" (#57297)
Tanner Gooding [Thu, 12 Aug 2021 20:10:33 +0000 (13:10 -0700)]
Revert "Minor cleanups for System.Runtime.Numerics (#53984)" (#57297)

This reverts commit 65439deaef6a4f7e9184a14ce7170ae1363c89a1.

2 years agoFixed sending FIN flag with the last write. (#57284)
Marie Píchová [Thu, 12 Aug 2021 18:43:20 +0000 (20:43 +0200)]
Fixed sending FIN flag with the last write. (#57284)

2 years agoFix .NET 5 FileStream compat detection in the test utility project (#57288)
Adam Sitnik [Thu, 12 Aug 2021 18:41:26 +0000 (20:41 +0200)]
Fix .NET 5 FileStream compat detection in the test utility project (#57288)

2 years agoP2P instead of binplacing aspnetcore transport pkg (#57239)
Viktor Hofer [Thu, 12 Aug 2021 18:37:23 +0000 (20:37 +0200)]
P2P instead of binplacing aspnetcore transport pkg (#57239)

Use ProjectReferences to compose the aspnetcore tranport package.
Avoid binplacing and with that unnecessary copies which overall
simplifies the infrastructure and allows to add additional transport
packages without creating a binplace configuration for each.

This also makes sure that the dependencies are compatible with the
package's tfm.

2 years agoEmit V1 of perfmap files in ShareFramework packages (#57195)
Juan Hoyos [Thu, 12 Aug 2021 18:09:59 +0000 (11:09 -0700)]
Emit V1 of perfmap files in ShareFramework packages (#57195)

* Add perfmap v1 flag on crossgen2 invocation for SPC
* Sync target and task for CrossGen2 from SDK repo
* Consume new SFX SDK version

2 years agoAdd arch info in missing framework error (#57150)
Mateo Torres-Ruiz [Thu, 12 Aug 2021 17:53:41 +0000 (10:53 -0700)]
Add arch info in missing framework error (#57150)

* Add arch to missing framework error

* PR feedback

2 years agoRemove unnecessary parameters (#57181)
Elinor Fung [Thu, 12 Aug 2021 17:47:58 +0000 (10:47 -0700)]
Remove unnecessary parameters (#57181)

2 years agoAutomatic calculate the assembly and package version in servicing (#57158)
Anirudh Agnihotry [Thu, 12 Aug 2021 17:29:20 +0000 (10:29 -0700)]
calculate the assembly and package version in servicing (#57158)

* automatically update the assembly version

* address feedback

* move IsAspNetCoreApp to packaging.targets

* make assemblyintef pack private, update header and instructions on building the package in servicing

* fixes the allconfig leg

* update the docs

* Update docs/project/library-servicing.md

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
2 years agoAdding warnings to make generic and static ctor (#56628)
Lakshan Fernando [Thu, 12 Aug 2021 15:32:43 +0000 (08:32 -0700)]
Adding warnings to make generic and static ctor (#56628)

* Adding warnings to make generic and static ctor

* build break fixes

* build break2

* build break3

* Suppressing DispatchProxy warnings since they are safe

* FB

* FB

* typos

2 years agoFix QPACK status decode (#57236)
Natalia Kondratyeva [Thu, 12 Aug 2021 15:05:58 +0000 (17:05 +0200)]
Fix QPACK status decode (#57236)

Fix "Literal Header Field With Name Reference" parsing for Status code. Add tests for QPACK-ed and not QPACK-ed status receiving for all status codes (except informational).

Fix QPackStaticTable.HeaderLookup to comply with spec (the order was off, so lookup didn't work correctly in some cases).

Fixes #55988

2 years agoConsume MSI manifest shortname feature in workloads (#57270)
Juan Hoyos [Thu, 12 Aug 2021 14:52:51 +0000 (07:52 -0700)]
Consume MSI manifest shortname feature in workloads (#57270)

2 years agoRemove unnecessary Sun license (#57258)
Dan Moseley [Thu, 12 Aug 2021 14:46:01 +0000 (08:46 -0600)]
Remove unnecessary Sun license (#57258)

2 years agoAdd support for building just a subset of runtime tests (#57142)
Tomáš Rylek [Thu, 12 Aug 2021 13:54:17 +0000 (15:54 +0200)]
Add support for building just a subset of runtime tests (#57142)

This change adds four new options to the runtime test build command:

1) test <test project path relative to src\tests> - build just that
one test.

2) dir <directory relative to src\tests> - build all tests in the
directory.

3) tree <directory relative to src\tests> - build all tests in the
given subtree.

4) all - use clean rebuild (i.e. don't apply incrementalism)
when building the tests.

Thanks

Tomas

2 years agoupdate Windows ARM build requirements (#57275)
Adam Sitnik [Thu, 12 Aug 2021 11:19:48 +0000 (13:19 +0200)]
update Windows ARM build requirements (#57275)

* update Windows ARM build requirements

* Apply suggestions from code review

Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
2 years agoAdd build check for System.Private.CoreLib.pdb before including it (#57161)
Mansoor Saqib [Thu, 12 Aug 2021 10:32:33 +0000 (03:32 -0700)]
Add build check for System.Private.CoreLib.pdb before including it (#57161)

- Fixes build failure with /p:DebugType=embedded (#56998)
- Author of fix: @danmoseley

2 years agoFix fgRemoveUnreachableBlocks to detect all changes (#57199)
Jakob Botsch Nielsen [Thu, 12 Aug 2021 09:09:16 +0000 (11:09 +0200)]
Fix fgRemoveUnreachableBlocks to detect all changes (#57199)

When 'removing' a BBF_DONT_REMOVE block we change it to BBJ_THROW. After
this it is possible that other blocks become unreachable, so we should
keep looking for such blocks.

In #57061 that manifested in a case where the unreachable block did not
have SSA built for it, but downstream the compiler was relying on SSA
being built.

Fix #57061

2 years ago[HTTP/3] Flush sends buffered data (#57234)
Marie Píchová [Thu, 12 Aug 2021 08:35:18 +0000 (10:35 +0200)]
[HTTP/3] Flush sends buffered data (#57234)

HTTP/3 write stream will send buffered headers if flush is called.

Fixes #56969

2 years ago[mono][jit] Fix clearing of LastError (#57127)
Vlad Brezae [Thu, 12 Aug 2021 08:22:41 +0000 (11:22 +0300)]
[mono][jit] Fix clearing of LastError (#57127)

* [mono][jit] Fix clearing of LastError

The clearing was added as part of CEE_CALL and CEE_CALLVIRT opcodes instead of CEE_CALLI which is actually used for pinvoke calls.

* Disable test

We can't enable this test on wasm due to dynamic library lookup limitation

On android we seem to have some sort of issue with the runtime tests causing the pinvokes failing to be resolved