platform/upstream/dotnet/runtime.git
4 years agoSkip System.Configuration.ConfigurationManager tests on WASM (#38749)
Maxim Lipnin [Sat, 4 Jul 2020 13:58:43 +0000 (16:58 +0300)]
Skip System.Configuration.ConfigurationManager tests on WASM (#38749)

4 years agoClean up System.Net.Http build a bit for browser (#38775)
Marek Safar [Sat, 4 Jul 2020 07:49:23 +0000 (09:49 +0200)]
Clean up System.Net.Http build a bit for browser (#38775)

4 years agox86 P/Invokes marked with UnmanagedCallersOnly require marshalling (#38740)
Aaron Robinson [Fri, 3 Jul 2020 23:09:19 +0000 (16:09 -0700)]
x86 P/Invokes marked with UnmanagedCallersOnly require marshalling (#38740)

* x86 P/Invokes marked with UnmanagedCallersOnly require marshalling
Fix generated IL for test.

* Always throw NotSupportedException for UnmanagedCallersOnly usage on
  P/Invokes.

4 years agoReturn true for PlatformDection.IsMonoInterpreter on WASM (#38768)
Alexander Köplinger [Fri, 3 Jul 2020 21:21:24 +0000 (23:21 +0200)]
Return true for PlatformDection.IsMonoInterpreter on WASM (#38768)

The property only checked for the `MONO_ENV_OPTIONS=--interpreter` env var which isn't set on WebAssembly.

This needed an arcade fix to correct an inverted condition in the ActiveIssue discoverer: https://github.com/dotnet/arcade/pull/5744

4 years ago[Test] Reverse EventPipe test improvements (#38474)
John Salem [Fri, 3 Jul 2020 17:18:10 +0000 (10:18 -0700)]
[Test] Reverse EventPipe test improvements (#38474)

* generalize clean env check

* Remove in-test timeouts
* timeouts will show up as test failures and trigger dump collection
* Add notification of and diagnostics on early subprocess exit

* move pathologic test to outer loop

* Turn back on other reverse tests

* Respond to PR feedback

4 years agoAsk about prior art in API review template (#38727)
Dan Moseley [Fri, 3 Jul 2020 15:48:44 +0000 (08:48 -0700)]
Ask about prior art in API review template (#38727)

* Ask about prior art in API review template

As an example, https://github.com/dotnet/runtime/issues/35088 described an analogous pattern in the Go ecosystem. While we have distinct patterns and rules for .NET API, if there's analogous prior art it may be interesting to compare approaches.

* Update .github/ISSUE_TEMPLATE/02_api_proposal.md

Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years agoMake DependencyInjection more linker trimmable (#38729)
Eric Erhardt [Fri, 3 Jul 2020 15:28:45 +0000 (10:28 -0500)]
Make DependencyInjection more linker trimmable (#38729)

* Make DependencyInjection more linker trimmable

Allow the unused ServiceProviderEngine strategy types to be trimmed by the ILLinker.

This allows for System.Linq.Expressions to be completely removed in a default Blazor application. It also removes one of two usages of System.Reflection.Emit.

Fix #38678

4 years agoReplace linker descriptor for AssemblyBuilder with DynamicDependency (#38710)
Marek Safar [Fri, 3 Jul 2020 15:11:38 +0000 (17:11 +0200)]
Replace linker descriptor for AssemblyBuilder with DynamicDependency (#38710)

* Replace linker descriptor for AssemblyBuilder with DynamicDependency

for better linking when AssemblyBuilder is not instantiated.

Contributes to #38692

* Review feedback

4 years agoWASM: Add PNSE for System.Net.Mail (#38207)
Alexander Köplinger [Fri, 3 Jul 2020 14:50:58 +0000 (16:50 +0200)]
WASM: Add PNSE for System.Net.Mail (#38207)

It's not supported on WebAssembly so throw PlatformNotSupportedException.

4 years agoAnnotate more Mono reflection for trimming (#38431)
Michal Strehovský [Fri, 3 Jul 2020 13:10:59 +0000 (15:10 +0200)]
Annotate more Mono reflection for trimming (#38431)

4 years agoCreate CLR interpreter Azure DevOps Pipeline (#38650)
Bruce Forstall [Fri, 3 Jul 2020 04:47:02 +0000 (21:47 -0700)]
Create CLR interpreter Azure DevOps Pipeline (#38650)

* Create CLR interpreter Azure DevOps Pipeline

This builds the runtime using:
```
-cmakeargs "-DFEATURE_INTERPRETER=1"
```
and runs Pri-0 tests using the interpreter.

* Replace C++ `assert` with VM-standard `_ASSERTE` in interpreter

4 years agoHonor user setting overrides for current culture when using ICU on Windows (#38372)
Santiago Fernandez Madero [Fri, 3 Jul 2020 03:57:04 +0000 (20:57 -0700)]
Honor user setting overrides for current culture when using ICU on Windows (#38372)

* Honor user setting overrides for current culture when using ICU on Windows

* Fix mono build

* PR Feedback, fix builds

* PR Feedback and fix build errors

* Remove using statement

* Fix Invariant tests

* Fix get time formats and PR feedback

* Revert test changes that are not needed

* PR Feedback and cleanup

* Move invariant check for UserDefaultLocaleName to helper method

4 years agoPorting additional SIMD Intrinsics to use SimdAsHWIntrinsic (#37882)
Tanner Gooding [Fri, 3 Jul 2020 02:49:39 +0000 (19:49 -0700)]
Porting additional SIMD Intrinsics to use SimdAsHWIntrinsic (#37882)

* Moving SIMDIntrinsicInit to use SimdAsHWIntrinsic

* Optimize the simple case of Create(0) and Create(-1) to get_Zero and get_AllBitsSet

* Adding a new gtNewSimdCreateBroadcastNode method

* Updating SIMDIntrinsicGetOne to use SimdAsHWIntrinsic

* Fixing build errors

* Ensure all forms of ToScalar are intrinsic on x86

* Moving SIMDIntrinsicDot to use SimdAsHWIntrinsic

* Removing SIMDIntrinsicDot, SIMDIntrinsicAdd, SIMDIntrinsicMul, and SIMDIntrinsicDiv

* Removing SIMDIntrinsicGetCount, SIMDIntrinsicGetOne, SIMDIntrinsicGetAllOnes, and SIMDIntrinsicGetZero

* Default TYP_SIMD12 constants to be 16 bytes

* Get the simdType from the size for LowerHWIntrinsicDot

* Applying formatting patch

* Use AddPairwise for floating-point dot product

* Applying formatting patch

* Correctly handle decomposed long constants on x86

* Check JitConfig.EnableHWIntrinsic when in impSIMDIntrinsic or impSimdAsHWIntrinsic

* Ensure AdvSimd.Arm64.Multiply is used for TYP_DOUBLE

* Applying formatting patch

* Updating LowerHWIntrinsicCreate to handle TYP_SIMD8 retyped as TYP_DOUBLE and fixing VectorT128_get_One

* Ensure the CreateBroadcast SimdAsHWIntrinsic nodes have the correct gtType

* Applying formatting patch

* Apply suggestions from code review

Co-authored-by: Carol Eidt <carol.eidt@microsoft.com>
* Adding some additional clarifying comments

* Breaking NI_Vector256_ToScalar importation logic into its own checks

* Applying formatting patch

Co-authored-by: Carol Eidt <carol.eidt@microsoft.com>
4 years agoFix memberref resolution involving substitution (#38688)
David Wrighton [Fri, 3 Jul 2020 01:38:02 +0000 (18:38 -0700)]
Fix memberref resolution involving substitution (#38688)

n .NET it is not considered a breaking change to move a method from a derived type to its base type. This is reflected by the behavior of memberref processing.

The previous implementation of this in crossgen2 did not correctly handle the substitutions required when processing this form of memberref in the case where the base type is a generic type not instantiated over the same set of generic parameters as the derived type.

This change fixes that, and adds a unit test to that effect.

Fixes #38648

4 years agoEnable SA1404 Code analysis suppression should have justification (#38537)
Stephen Toub [Fri, 3 Jul 2020 00:45:55 +0000 (20:45 -0400)]
Enable SA1404 Code analysis suppression should have justification (#38537)

4 years agoFix race condition in BatchBlock's handling of completion (#38651)
Stephen Toub [Fri, 3 Jul 2020 00:45:37 +0000 (20:45 -0400)]
Fix race condition in BatchBlock's handling of completion (#38651)

When a BatchBlock is marked for completion, it will no longer consume postponed messages.  But the BatchesNeedProcessing method, which factors in the number of postponed messages, is accidentally ignoring the _decliningPermanently flag that indicates completion was requested.  As a result, with just the right sequence of operations, the BatchBlock can get stuck in a state where it sees postponed messages and queues a task to process them, but that task then sees that it's declining permanently and so doesn't touch any of the postponed messages, and then upon checking to see if it can complete, sees there are postponed messages, and loops again, resulting in a potentially infinite asynchronous loop.  The fix is just to check _decliningPermanently in BatchesNeedProcessing when considering postponed messages.

4 years agoWASM: Enable System.Threading.Tasks.Dataflow tests (#38723)
Alexander Köplinger [Fri, 3 Jul 2020 00:01:38 +0000 (02:01 +0200)]
WASM: Enable System.Threading.Tasks.Dataflow tests (#38723)

With the recent async Tasks fix we can now skip just a handful of tests to get the testsuite to passing: `Tests run: 317, Errors: 0, Failures: 0, Skipped: 18. Time: 18.780363s`

4 years agoEnable ilasm/ildasm round trip testing in new AzDO pipeline (#38490)
Bruce Forstall [Thu, 2 Jul 2020 23:51:20 +0000 (16:51 -0700)]
Enable ilasm/ildasm round trip testing in new AzDO pipeline (#38490)

* Enable ilasm/ildasm round trip testing in new AzDO pipeline

Pipeline is `runtime-coreclr ilasm`.

Also, add an optional `IlasmRoundTripIncompatible` msbuild
property to allow disabling tests for the IlasmRoundTrip test.

* Disable tests for ilasm round-trip testing

Tracking issues:
https://github.com/dotnet/runtime/issues/11412
https://github.com/dotnet/runtime/issues/38515
https://github.com/dotnet/runtime/issues/38506
https://github.com/dotnet/runtime/issues/38507
https://github.com/dotnet/runtime/issues/38508
https://github.com/dotnet/runtime/issues/38529

4 years agoAdd new Unmanaged MD calling convention value (#38357)
Aaron Robinson [Thu, 2 Jul 2020 23:44:39 +0000 (16:44 -0700)]
Add new Unmanaged MD calling convention value (#38357)

* Respect new MD bit in runtime

* Throw "not implemented".

* Update parser for ILAsm
Add text based grammar file for IL tooling

* Update ILDasm

* Add disabled test project for function pointers.

* Add feature detection.

4 years agoDon't ship experimental packages to nuget (#38724)
Santiago Fernandez Madero [Thu, 2 Jul 2020 23:41:20 +0000 (16:41 -0700)]
Don't ship experimental packages to nuget (#38724)

4 years agoupdate DacHeapWalker to know about POH, which will start returning POH segments and...
David Mason [Thu, 2 Jul 2020 23:12:59 +0000 (16:12 -0700)]
update DacHeapWalker to know about POH, which will start returning POH segments and objects in ICorDebug (#38146)

4 years agoAdded doc with instructions to run ASP.NET Benchmarks with crossgen2 (#38695)
Ivan Diaz Sanchez [Thu, 2 Jul 2020 23:05:39 +0000 (16:05 -0700)]
Added doc with instructions to run ASP.NET Benchmarks with crossgen2 (#38695)

* Added doc with instructions on running basic ASP.NET Benchmarks with crossgen2.

* Shortened clr+libs command in Asp.Net Benchmarks doc.

4 years ago[browser][wasm] Wasm websockets support (#37962)
Kenneth Pouncey [Thu, 2 Jul 2020 21:57:45 +0000 (23:57 +0200)]
[browser][wasm] Wasm websockets support (#37962)

* [browser][wasm] Initial addition of WebSockets support

* Clean up usings

* Create and use a WebSocketHandle.Browser.cs module

* Add conditional TARGETS_BROWSER so as not to throw Proxy PNSE during ClientWebSocket creation.

* Update WebSockets code

* Removing debug line

* Remove `ThrowIfReadOnly` method to address review comments

* Address review comments

- change accessor of _requestedSubProtocols to private
- condition more code in WebSocketHandle.Managed.cs to not access _requestedSubProtocols

* Address review comments

* Address review comments

* Change to be PlatformNotSupportedException

* Add ConnectAsync implementation to create a new instance of the BrowserWebSocket implementation.

* Address review comments

* Address subprotocols comments

* Remove internal custom class ActionQueue class in favor of using a Channel.

* Fix object leak.

- Lambdas are not being released automatically.

* Add doc for the constant that is being used.

- Address review comment

* Clean up SendAsync method.

- Validate the message type.
- Validate the array segment that is passed as the message.

* Add validation to ReceiveAsync for invalid buffer.

- remove unnecessary null checks from message buffering.

* Address review comments

* Address review comments about TCS

* Address camel case by using enum

* Address abort request

* Handle nullable

* Address review comment for removing cancellationtoken registration to the connect source.

* Use non-generic TaskCompletionSource

* Cleanup var usage

* Add string to .resx

* Inline dispose

* Fix WebSocket opening exception

* Remove the asynchronous completion from SendAsync.

* Fix object leak, exception on close and address review comments

* Handle race condition

* Address  TaskCompletionSource on connect review comments

* Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs

Co-authored-by: campersau <buchholz.bastian@googlemail.com>
* Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs

Co-authored-by: campersau <buchholz.bastian@googlemail.com>
* Fix Connect not completing task on error.

* Cleanup reference

* Remove redundant error check of memorystream buffer.

* cleanup

* Update src/libraries/System.Net.WebSockets.Client/src/System.Net.WebSockets.Client.csproj

Co-authored-by: Maxim Lipnin <mlipnin@gmail.com>
* Update src/libraries/System.Net.WebSockets.Client/src/System.Net.WebSockets.Client.csproj

Co-authored-by: Maxim Lipnin <mlipnin@gmail.com>
* Update src/libraries/System.Net.WebSockets.Client/src/System.Net.WebSockets.Client.csproj

Co-authored-by: Maxim Lipnin <mlipnin@gmail.com>
* Update src/libraries/System.Net.WebSockets.Client/src/System.Net.WebSockets.Client.csproj

Co-authored-by: Maxim Lipnin <mlipnin@gmail.com>
* Fix typo

* clean up buffer code

* Modify callbacks to use lambda function.

- These are now released properly after reference counting went in.

* Fix object leak of delegate and clean up deprecated code.

* extract lambda into method

* Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Review comments addressed

Co-authored-by: campersau <buchholz.bastian@googlemail.com>
Co-authored-by: Maxim Lipnin <mlipnin@gmail.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years agoTrivial fix and renaming (#38687)
Maoni Stephens [Thu, 2 Jul 2020 19:21:49 +0000 (12:21 -0700)]
Trivial fix and renaming (#38687)

+ When allocating in UOH free list we should do >= (min_obj_size) instead of >.
+ Renamed loh_a_fit_segment_end_p to uoh_a_fit_segment_end_p (should have been part of the refactoring work)

4 years agoEnable some System.Runtime.Loader tests for Mono (#38581)
Alexis Christoforides [Thu, 2 Jul 2020 17:26:44 +0000 (13:26 -0400)]
Enable some System.Runtime.Loader tests for Mono (#38581)

Contributes to https://github.com/mono/mono/issues/15142

4 years ago[Arm64] ASIMD InsertScalar and rename to ShiftLeftAndInsert ShiftRightAndInsert ...
Egor Chesakov [Thu, 2 Jul 2020 17:14:07 +0000 (10:14 -0700)]
[Arm64] ASIMD InsertScalar and rename to ShiftLeftAndInsert ShiftRightAndInsert  (#38680)

* Implements InsertScalar

* Uses InsertScalar to implement Vector128<T>.WithLower() and Vector128<T>.WithUpper()

* Renames ShiftLeftLogicalAndInsert to ShiftLeftAndInsert and ShiftRightLogicalAndInsert to ShiftRightAndInsert

4 years agoBump xharness to bring in https://github.com/dotnet/xharness/pull/282 (#38706)
Alexander Köplinger [Thu, 2 Jul 2020 14:22:18 +0000 (16:22 +0200)]
Bump xharness to bring in https://github.com/dotnet/xharness/pull/282 (#38706)

4 years agoUse full MD5 to compare bitmap rotate results (#38699)
Nicolas Portmann [Thu, 2 Jul 2020 13:27:04 +0000 (15:27 +0200)]
Use full MD5 to compare bitmap rotate results (#38699)

4 years ago[wasm] Add assembly level skip for System.Net.Requests on Browser (#38674)
Mitchell Hwang [Thu, 2 Jul 2020 12:25:08 +0000 (08:25 -0400)]
[wasm] Add assembly level skip for System.Net.Requests on Browser (#38674)

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
4 years agoWASM: Add an internal method to pump the threadpool (#38690)
Alexander Köplinger [Thu, 2 Jul 2020 12:19:20 +0000 (14:19 +0200)]
WASM: Add an internal method to pump the threadpool (#38690)

This can by used by the xharness xunit runner to make sure async tasks are executed.

We also need to tweak how `ThreadPoolTaskScheduler` handles `TaskCreationOptions.LongRunning` since the usual mode of starting a new thread doesn't work, instead we treat it like the option wasn't set and queue the task on the threadpool.

4 years ago[browser][wasm][bindings] Handle case where AsyncStateMachineBox`1 is… (#38655)
Kenneth Pouncey [Thu, 2 Jul 2020 11:23:30 +0000 (13:23 +0200)]
[browser][wasm][bindings] Handle case where AsyncStateMachineBox`1 is… (#38655)

* [browser][wasm][bindings] Handle case where AsyncStateMachineBox`1 is returned

- There are cases where AsyncStateMachineBox`1 is returned instead of instead of Task`1 within the bindings.  This was causing exceptions with Promise processing.

* Use `is_subclass_of` instead of strings to recognize Tasks

4 years agoNRT annotations for main System.Data.Common types (#689)
Shay Rojansky [Thu, 2 Jul 2020 10:45:23 +0000 (12:45 +0200)]
NRT annotations for main System.Data.Common types (#689)

4 years agoInitial support for SslStreamCertificateContext (#38364)
Tomas Weinfurt [Thu, 2 Jul 2020 03:36:34 +0000 (20:36 -0700)]
Initial support for SslStreamCertificateContext (#38364)

* initial support for SslStreamCertificateContext

* update openssl pal

* feedback from review

* fix unit tests

* fix platforms

* update ref

4 years agoFix SOS/managed debugging failures from PR #36847 (#38689)
Mike McLaughlin [Thu, 2 Jul 2020 02:30:12 +0000 (19:30 -0700)]
Fix SOS/managed debugging failures from PR #36847 (#38689)

Add PAL_GetApplicationGroupId() that returns null for Linux.

4 years ago[wasm] Ignore missing assemblies in the wasm app builder. (#38672)
Zoltan Varga [Thu, 2 Jul 2020 02:15:25 +0000 (22:15 -0400)]
[wasm] Ignore missing assemblies in the wasm app builder. (#38672)

4 years agoFix interpreter build (#38673)
Bruce Forstall [Thu, 2 Jul 2020 02:14:59 +0000 (19:14 -0700)]
Fix interpreter build (#38673)

Fix interpreter build

4 years agoTurn on argument exception analyzer on runtime, fix warnings found (#38578)
buyaa-n [Thu, 2 Jul 2020 01:36:56 +0000 (18:36 -0700)]
Turn on argument exception analyzer on runtime, fix warnings found (#38578)

* Turn on argument exception analyzer on runtime, fix failures found

4 years agoAlign native SpecializeComparer with managed ComparerHelpers (#38681)
Nicolas Portmann [Thu, 2 Jul 2020 00:37:54 +0000 (02:37 +0200)]
Align native SpecializeComparer with managed ComparerHelpers (#38681)

* Align SpecializeComparer with ComparerHelpers

* Align SpecializeEqualityComparer with ComparerHelpers

4 years agoRemove dead code paths in System.Transactions.Local (#38685)
Levi Broderick [Thu, 2 Jul 2020 00:35:16 +0000 (17:35 -0700)]
Remove dead code paths in System.Transactions.Local (#38685)

4 years agoadd two SslStream tests for custom validation (#38182)
Tomas Weinfurt [Wed, 1 Jul 2020 23:50:34 +0000 (16:50 -0700)]
add two SslStream tests for custom validation (#38182)

* add two SslStream tests for custom validation

* use BuildPrivatePki

* feedback from review

* disable on windows

4 years agoAdd platform-specific attributes (#38604)
William Li [Wed, 1 Jul 2020 23:48:42 +0000 (16:48 -0700)]
Add platform-specific attributes (#38604)

* Add platform-specific attributes

Spec https://github.com/dotnet/runtime/issues/33331

* Convert to xml doc

* Update src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MinimumOSAttribute.cs

Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
* Update src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/ObsoletedInPlatformAttribute.cs

Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
* Address code review

* Add to ref assembly, test and fix build errors

* Fix spacing, revert unwanted changes

* Namespace was wrong, updated

Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Co-authored-by: Buyaa Namnan <bunamnan@microsoft.com>
4 years agoDisable the two remaining CG2 composite failure buckets (#38299)
Tomáš Rylek [Wed, 1 Jul 2020 22:14:27 +0000 (00:14 +0200)]
Disable the two remaining CG2 composite failure buckets (#38299)

4 years agoFix type layout with explicitly sized structs and classes (#38632)
David Wrighton [Wed, 1 Jul 2020 22:06:24 +0000 (15:06 -0700)]
Fix type layout with explicitly sized structs and classes (#38632)

- Mimic the alignment and other algorithms present in coreclr
- Add tests to crossgen2smoke to cover these scenarios
- Update type system unit tests so that they can run in VS
- Fix issue #38450

4 years agofix for cg2 + sealed default interface methods (#38575)
Manish Godse [Wed, 1 Jul 2020 21:50:19 +0000 (14:50 -0700)]
fix for cg2 + sealed default interface methods (#38575)

* move the interface check to be before versionbubble

* updating fix to check for TypicalMethod of the target

* Adding a comment to clarify the check

* uncoditinoally invoke GetTypicalMethodDef

* Add a smoke test.

* moving the interface check to before version bubble

Also adding a cross module test.

4 years agoadd TargetHostName to SslStream (#38202)
Tomas Weinfurt [Wed, 1 Jul 2020 20:45:12 +0000 (13:45 -0700)]
add TargetHostName to SslStream (#38202)

* add TargetHostName to SslStream

* fix unit tests

* feedback from review

4 years ago[wasm] Make Common.Tests pass (#38667)
Maxim Lipnin [Wed, 1 Jul 2020 20:41:59 +0000 (23:41 +0300)]
[wasm] Make Common.Tests pass (#38667)

* Make Common.Tests pass

* Remove Common test project from the exclusion list

4 years ago[mono] Implement getting the type modifiers for DynamicMethod parameters (#38646)
Alexis Christoforides [Wed, 1 Jul 2020 20:14:30 +0000 (16:14 -0400)]
[mono] Implement getting the type modifiers for DynamicMethod parameters (#38646)

* [mono] Implement getting the type modifiers for DynamicMethod parameters

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

* Remove unused parameter from type_array_from_modifiers()

4 years agoBump Helix SDK with breaking change in XHarness SDK (#38665)
Přemek Vysoký [Wed, 1 Jul 2020 19:40:33 +0000 (21:40 +0200)]
Bump Helix SDK with breaking change in XHarness SDK (#38665)

There is a small breaking change in the SDK about how we run the XHarness tool - we are no longer installing the full .NET SDK to install the tool on every agent but rather installing it on the build machine and then shipping it as-is as Helix correlation payload. We then only need the .NET runtime to be installed on the Helix agents saving us bandwidth and cycles

4 years agoFix scalar check when fixing up struct return. (#38644)
Carol Eidt [Wed, 1 Jul 2020 19:37:52 +0000 (12:37 -0700)]
Fix scalar check when fixing up struct return. (#38644)

Fix #38455

4 years agoMono: reenable tests in System.ComponentModel.Composition.Registration that were...
Alexander Köplinger [Wed, 1 Jul 2020 17:37:55 +0000 (19:37 +0200)]
Mono: reenable tests in System.ComponentModel.Composition.Registration that were fixed (#38658)

Closes https://github.com/dotnet/runtime/issues/32744

4 years agoInclude System Directory in search dirs for app local ICU (#38649)
Santiago Fernandez Madero [Wed, 1 Jul 2020 17:09:30 +0000 (10:09 -0700)]
Include System Directory in search dirs for app local ICU (#38649)

4 years agoTidy up ARM tools installation instructions (#38676)
Eirik Tsarpalis [Wed, 1 Jul 2020 17:07:33 +0000 (18:07 +0100)]
Tidy up ARM tools installation instructions (#38676)

4 years ago[mono] Change default output encoding for ConsolePal.WebAssembly.cs to utf8 (#38641)
Egor Bogatov [Wed, 1 Jul 2020 16:12:56 +0000 (19:12 +0300)]
[mono] Change default output encoding for ConsolePal.WebAssembly.cs to utf8 (#38641)

* Change default output encoding to utf8 for wasm

4 years ago[docs] Fix wasm testing example directories (#38624)
Aleksey Kliger (λgeek) [Wed, 1 Jul 2020 16:04:16 +0000 (12:04 -0400)]
[docs] Fix wasm testing example directories (#38624)

And use a testsuite that passes for the example

4 years agoAdd ExcludeFromCodeCoverageAttribute.Justification property (#38520)
Stephen Toub [Wed, 1 Jul 2020 12:50:39 +0000 (08:50 -0400)]
Add ExcludeFromCodeCoverageAttribute.Justification property (#38520)

* Add ExcludeFromCodeCoverage.Justification property

Delete some ExcludeFromCodeCoverages that aren't warranted, and add justifications almost everywhere else (only not doing so where a project builds for targets without the member).

* Update src/libraries/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Types/PointerType.cs

Co-authored-by: Levi Broderick <GrabYourPitchforks@users.noreply.github.com>
Co-authored-by: Levi Broderick <GrabYourPitchforks@users.noreply.github.com>
4 years ago[wasm] Rename obsolete --llvm-lto 1 argument, lto is already enabled when -s WASM_OBJ...
Zoltan Varga [Wed, 1 Jul 2020 11:00:44 +0000 (07:00 -0400)]
[wasm] Rename obsolete --llvm-lto 1 argument, lto is already enabled when -s WASM_OBJECT_FILES=0 is used. (#38370)

4 years agofixes genapi for project with corelib reference (#38656)
Anirudh Agnihotry [Wed, 1 Jul 2020 07:06:44 +0000 (00:06 -0700)]
fixes genapi for project with corelib reference (#38656)

4 years agoFix 'varDsc->lvExactSize == 12' assert. (#38484)
Sergey Andreenko [Wed, 1 Jul 2020 05:25:48 +0000 (22:25 -0700)]
Fix 'varDsc->lvExactSize == 12' assert. (#38484)

* Require struct handler to be set after for CSE.

* Reenable the test.

* fix for empty cache

* Update the comment.

4 years agoAdd native runtime components to Crossgen2 package. (#38600)
Anton Lapounov [Wed, 1 Jul 2020 05:16:37 +0000 (22:16 -0700)]
Add native runtime components to Crossgen2 package. (#38600)

For Windows, add clrcompression.dll to the package. For Linux, add { libSystem.IO.Compression.Native.so, libSystem.Native.so, libSystem.Net.Security.Native.so, libSystem.Security.Cryptography.Native.OpenSsl.so } to the package and also remove the corresponding static libraries with the .a extension from crossgen2.deps.json.

4 years ago[browser][wasm][tests] Add tests for TypedArrays (#38612)
Kenneth Pouncey [Wed, 1 Jul 2020 04:42:58 +0000 (06:42 +0200)]
[browser][wasm][tests] Add tests for TypedArrays (#38612)

* [browser][wasm][tests] Add tests for TypedArrays

* Address review comments

4 years agoEnable PInvoke stub compilation for R2R (#35229)
Dong-Heon Jung [Wed, 1 Jul 2020 02:41:48 +0000 (11:41 +0900)]
Enable PInvoke stub compilation for R2R (#35229)

R2R doesn't generate PInvoke stub for arm because of crossbitness issue.
This patch enables PInvoke stub compilation for R2R,
and updates native size, field offset, and so on based on target machine's bitness.

4 years agoJit liveness fix. (#38591)
Eugene Rozenfeld [Wed, 1 Jul 2020 01:16:41 +0000 (18:16 -0700)]
Jit liveness fix. (#38591)

`fgComputeLifeUntrackedLocal` can be called multiple times for the same
`lclVarNode` since `fgLocalVarLiveness` may call
`fgInterBlockLocalVarLiveness` multiple times. Therefore,
`m_promotedStructDeathVars` may be updated more than once for the same
node.

Fixes #38496.

4 years agoBlock P/Invokes with UnmanagedCallersOnlyAttribute (#38493)
Aaron Robinson [Wed, 1 Jul 2020 00:35:10 +0000 (17:35 -0700)]
Block P/Invokes with UnmanagedCallersOnlyAttribute (#38493)

* Block support for a P/Invoke marked with UnmanagedCallersOnly.

* Update crossgen2.

4 years ago[EventSourceLogger] Adding FormattedMessage for json message (#38509)
Maryam Ariyan [Tue, 30 Jun 2020 23:31:59 +0000 (16:31 -0700)]
[EventSourceLogger] Adding FormattedMessage for json message (#38509)

4 years ago[Arm64] ASIMD ExtractNarrowingSaturate and ExtractNarrowingSaturateUnsigned (#38371)
Egor Chesakov [Tue, 30 Jun 2020 23:10:26 +0000 (16:10 -0700)]
[Arm64] ASIMD ExtractNarrowingSaturate and ExtractNarrowingSaturateUnsigned (#38371)

* ExtractNarrowingSaturateLower and ExtractNarrowingSaturateUpper

* ExtractNarrowingSaturateUnsignedLower and ExtractNarrowingSaturateUnsignedUpper

* ExtractNarrowingSaturateScalar and ExtractNarrowingSaturateUnsignedScalar

4 years agoOptimize TextEncoder.FindFirstCharacterToEncodeUtf8 (#284)
Günther Foidl [Tue, 30 Jun 2020 23:09:08 +0000 (01:09 +0200)]
Optimize TextEncoder.FindFirstCharacterToEncodeUtf8 (#284)

4 years agoAdding default string for stacktrace Word_At (#38634)
Jose Perez Rodriguez [Tue, 30 Jun 2020 23:05:32 +0000 (16:05 -0700)]
Adding default string for stacktrace Word_At (#38634)

* Adding default string for stacktrace Word_At

* Also adding defaults to other resources used on the stacktrace ToString method

* Apply suggestions from code review

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
4 years agoEnable warning 5038 on VS. (#38499)
Sergey Andreenko [Tue, 30 Jun 2020 23:03:42 +0000 (16:03 -0700)]
Enable warning 5038 on VS. (#38499)

* Enable w35038 on VS.

* fix for a contract.h

* FIx other places.

* another fix.

4 years agoAdd missing string resources to the ILVerify tool (#38630)
Jan Kotas [Tue, 30 Jun 2020 22:38:21 +0000 (15:38 -0700)]
Add missing string resources to the ILVerify tool (#38630)

Fixes #38623

4 years agoAdding qcalls-def.h to Makefile.am (#38621)
monojenkins [Tue, 30 Jun 2020 22:19:25 +0000 (18:19 -0400)]
Adding qcalls-def.h to Makefile.am (#38621)

Fixes mono/mono#20049

Co-authored-by: thaystg <thaystg@users.noreply.github.com>
4 years agoDo not override CoreCLRArtifactsPath if RuntimeIdentifier is empty (#38602)
Vladimir Sadov [Tue, 30 Jun 2020 20:36:19 +0000 (13:36 -0700)]
Do not override CoreCLRArtifactsPath if RuntimeIdentifier is empty (#38602)

4 years agoAdd exclusion category argument to interpreter runs (#38633)
Drew Scoggins [Tue, 30 Jun 2020 20:28:11 +0000 (13:28 -0700)]
Add exclusion category argument to interpreter runs (#38633)

* Add exclusion category argument to interpreter runs

* Add for Windows as well

4 years agoSpanify S.S.C.X509Certificates and S.S.C.Pkcs inputs
Jeremy Barton [Tue, 30 Jun 2020 20:13:03 +0000 (13:13 -0700)]
Spanify S.S.C.X509Certificates and S.S.C.Pkcs inputs

S.S.C.Pkcs.ContentInfo..ctor(byte[]) didn't get spanified because it holds
a reference to the array, and returns it via a property.

4 years agoObsolete Encoding.UTF7 property and UTF7Encoding ctors (#37535)
Levi Broderick [Tue, 30 Jun 2020 20:10:48 +0000 (13:10 -0700)]
Obsolete Encoding.UTF7 property and UTF7Encoding ctors (#37535)

- Disallow Encoding.GetEncoding("utf-7", ...) from returning an Encoding instance
- Minor code cleanup by removing unused ifdefs
- A compat switch is available to re-enable Encoding.GetEncoding("utf-7", ...)

4 years ago[wasm] Set a stack trace limit of 1000 for CI testing with V8 (#38625)
Aleksey Kliger (λgeek) [Tue, 30 Jun 2020 19:50:00 +0000 (15:50 -0400)]
[wasm] Set a stack trace limit of 1000 for CI testing with V8 (#38625)

The default 10 is not enough stack frames to make sense of failures

4 years agoAdding generation of substitution files for trimming out resources when feature switc...
Jose Perez Rodriguez [Tue, 30 Jun 2020 19:24:39 +0000 (12:24 -0700)]
Adding generation of substitution files for trimming out resources when feature switch is present (#38397)

* Adding generation of substitution files for trimming out resources when feature switch is present

* Adding support for CoreLib as well and fix issue with SR returning empty string

* Cache result of AppContext Switch lookup

* Fixing allConfigurations leg and addressing feedback

* Fixing thread safety issue by removing caching

* Addressing feedback

* Apply suggestions from code review

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Addressing feedback and adding tests

* Fix typo

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
4 years agoDisable test based off of #38455 (#38580)
Jarret Shook [Tue, 30 Jun 2020 18:38:33 +0000 (11:38 -0700)]
Disable test based off of #38455 (#38580)

4 years agoProperly disable test on mono (#38615)
Vlad Brezae [Tue, 30 Jun 2020 17:52:17 +0000 (20:52 +0300)]
Properly disable test on mono (#38615)

Fix issue link for wasm specific limitation.

4 years agoFix packaging of PDBs for host binaries (#38589)
Elinor Fung [Tue, 30 Jun 2020 17:41:53 +0000 (10:41 -0700)]
Fix packaging of PDBs for host binaries (#38589)

4 years agoMarkdown: Close anchor tags correctly (#38619)
xtqqczze [Tue, 30 Jun 2020 17:37:30 +0000 (18:37 +0100)]
Markdown: Close anchor tags correctly (#38619)

4 years agoAdd type layout stress mode to crossgen2/runtime (#38579)
David Wrighton [Tue, 30 Jun 2020 17:08:34 +0000 (10:08 -0700)]
Add type layout stress mode to crossgen2/runtime (#38579)

- New command line parameter --verify-type-and-field-layout
  - Intended for use diagnosing bugs in crossgen2 only, not for general
  production use
- New r2r precode fixups Verify_TypeLayout and Verify_FieldOffset
  - These allows the compiler to specify that a particular type/field
  layout must match with the runtime calculation.
  - If there is a mismatch, the runtime will failfast, even on release
  builds
- Add use of new switch to crossgen2smoke test
- Fix encoding bug in FieldFixupSignature. Check_FieldOffset and
Verify_FieldOffset use unsigned offsets, not signed offsets

4 years agoRemove AsyncCausalityTracer by logging into TplEventSource directly (#38313)
Sung Yoon Whang [Tue, 30 Jun 2020 17:06:53 +0000 (10:06 -0700)]
Remove AsyncCausalityTracer by logging into TplEventSource directly (#38313)

* Add AsyncCausalityTracer

* cleanup

* Handle multiple sessions

* CR feedback

* Remove AsyncCausalityTracer and replace it with direct calls to TplEventSource

4 years agoRemove decimal alignment quirk from the type loader (#38603)
Jan Kotas [Tue, 30 Jun 2020 16:45:01 +0000 (09:45 -0700)]
Remove decimal alignment quirk from the type loader (#38603)

System.Decimal fields did not match Win32 DECIMAL type for historic reasons. It required type loader to have a quirk to artificially inflate System.Decimal alignment to match the alignment of Win32 DECIMAL type to make interop work well.

This change is fixing the System.Decimal fields to match Win32 DECIMAL type and removing the quirk from the type loader since it does not belong there.

The downsides are:
- Slightly lower code quality on 32-bit platforms. 32-bit platforms are not our high performance targets anymore.
- Explicit implementation of ISerializable is required on System.Decimal for binary serialization compatibility.

Fixes #38390

4 years agoMarkdown: remove unused definitions (#38618)
xtqqczze [Tue, 30 Jun 2020 15:36:34 +0000 (16:36 +0100)]
Markdown: remove unused definitions (#38618)

* Update glossary.md

Remove unused markdown definitions introduced in https://github.com/dotnet/corefx/pull/38103

* Update source-generator-pinvokes.md

Remove unused markdown definitions introduced in https://github.com/dotnet/runtime/pull/33742

4 years agoARM64: Eliminate redundant opposite mov (#38179)
Kunal Pathak [Tue, 30 Jun 2020 15:07:30 +0000 (08:07 -0700)]
ARM64: Eliminate redundant opposite mov (#38179)

* Added IsOppositeOfPrevMov()

Added IsOppositeOfPrevMov() that will skip generating redundant mov.

* review comments

* Refactor code into IsRedundantMov()

* dont optimize beyong IG boundary

* add check to not cross IG boundary

* Add more checks:
- Change IG boundary check to exclude extended IGs.
- Check the operand size before removing redundant movs.

* fix the check

* review comments

* Add check to ensure if src/dst are both scalar or both vector

* minor comment

* Add check for insFormat

* fix the typo

* minor comments

4 years agoDisable two System.Linq.Parallel tests that fail on WASM due to forced parallelism...
Alexander Köplinger [Tue, 30 Jun 2020 13:58:27 +0000 (15:58 +0200)]
Disable two System.Linq.Parallel tests that fail on WASM due to forced parallelism (#38617)

4 years ago[interp] Small improvements around ByReference ctor (#38561)
Vlad Brezae [Tue, 30 Jun 2020 13:04:01 +0000 (16:04 +0300)]
[interp] Small improvements around ByReference ctor (#38561)

* [interp] Add stfld opcode for storing valuetypes without refs

* [interp] Remove MINT_VTRESULT use with byrefernce ctor intrinsic

4 years ago[wasm] Add assembly level skip for System.Threading.Tasks.Extensions (#38554)
Mitchell Hwang [Tue, 30 Jun 2020 12:38:00 +0000 (08:38 -0400)]
[wasm] Add assembly level skip for System.Threading.Tasks.Extensions (#38554)

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
4 years agoPort EventPipeBuffer, EventPipeBufferList, EventPipeBufferManager to Mono. (#37756)
Johan Lorensson [Tue, 30 Jun 2020 12:31:40 +0000 (14:31 +0200)]
Port EventPipeBuffer, EventPipeBufferList, EventPipeBufferManager to Mono. (#37756)

* Port EventPipeBuffer.
* Port EventPipeBufferList.
* Port EventPipeManager.
* Merge internals source files. Changed GETTER_SETTER to only mandate use
of inlined functions when calling betweeen source files for different types.
Upgraded all use within each source file for direct struct access.
* Changed function entry error checkin strategy. Only apply active checks
on outer library API, ep.h, and use EP_ASSERT for all other functions.
* Dropped requires_lock_held in function naming, switch to comment in header
or in forward declare for functions that validates that lock is held.
* Removed currently unused GETTER/SETTERS.
* Moved more comments into sources from corresponding CoreCLR EventPipe
sources.
* Add EventPipeBuffer/EventPipeBufferManager unit tests.
* Align to changes in native CoreCLR eventpipe* sources.
* Add support starting default file session using env variables.
* Disable eventpipe callback on WASM due to platform issues with delegates.

4 years ago[interp] Intrinsify ClearWithReferences (#38569)
Vlad Brezae [Tue, 30 Jun 2020 11:56:09 +0000 (14:56 +0300)]
[interp] Intrinsify ClearWithReferences (#38569)

4 years agoSDK base images upgraded to 5.0 and docker-compose logging fixed (#38389)
Alexander Nikolaev [Tue, 30 Jun 2020 11:51:43 +0000 (13:51 +0200)]
SDK base images upgraded to 5.0 and docker-compose logging fixed (#38389)

It does the following:
1. Upgrades the base image versions of HttpStress and SslStress tests containers to `nightly/sdk:5.0`
2. Wraps over `docker-compose` call to prevent it from accidentally reporting progress to `stderr `instead of `stdout` and thus breaking CI pipeline (see docker/compose#7346)

4 years ago[wasm] Disable test on browser (#38613)
Vlad Brezae [Tue, 30 Jun 2020 11:21:07 +0000 (14:21 +0300)]
[wasm] Disable test on browser (#38613)

It OOMs due to excessive allocations

4 years agoBring back previous debug_abbrev offset behavior on Apple platforms (#38454)
monojenkins [Tue, 30 Jun 2020 10:02:24 +0000 (06:02 -0400)]
Bring back previous debug_abbrev offset behavior on Apple platforms (#38454)

https://github.com/mono/mono/pull/19794 broke on iOS. Analyzing the result showed that, while the assembly was generated as expected, the linked result was different. Analyzing the LLVM code (which triggered the original fix) seems to imply that, on Apple platforms, they will not generate a label for it, only doing the 0-offset as we were doing before. Therefore, match the LLVM behavior by bringing back our previous logic when targetting Mach, otherwise use the new way of doing things.

Fixes mono/mono#8806 (again)

Co-authored-by: mathieubourgeois <mathieubourgeois@users.noreply.github.com>
4 years agoRemove some stale pragma warning disables (#38551)
Stephen Toub [Tue, 30 Jun 2020 09:35:49 +0000 (05:35 -0400)]
Remove some stale pragma warning disables (#38551)

4 years ago[wasm] Optimize interp->native transitions. (#38483)
monojenkins [Tue, 30 Jun 2020 08:13:39 +0000 (04:13 -0400)]
[wasm] Optimize interp->native transitions. (#38483)

* Generate tables of signatures/transition functions.
* Add mono_wasm_get_interp_to_native_trampoline () function to look up the transition function
for a signature.
* Cache the transition function in a imethod->method_data slot.

Previously, we were calling a mono_wasm_interp_to_native_trampoline () function and a generated
icall_trampoline_dispatch () function which added a lot of overhead.

<!--
Thank you for your Pull Request!

If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.

Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
4 years agoDisable Bundle_can_be_renamed_while_running test (#38300)
Swaroop Sridhar [Tue, 30 Jun 2020 07:10:45 +0000 (00:10 -0700)]
Disable Bundle_can_be_renamed_while_running test (#38300)

Disable the test due to non-deterministic failure in the CI.
Enabling tracked by: #38013

Fixes: #35068

4 years agoRemove dead code in binder (#38557)
Elinor Fung [Tue, 30 Jun 2020 05:17:09 +0000 (22:17 -0700)]
Remove dead code in binder (#38557)

4 years agoDisable reverse eventpipe test (#38583)
Simon Nattress [Tue, 30 Jun 2020 03:08:47 +0000 (20:08 -0700)]
Disable reverse eventpipe test (#38583)

The exclude list entry path was incorrect

4 years agoFix sizeof tests for arm and x86 (#38577)
Andy Ayers [Tue, 30 Jun 2020 02:26:10 +0000 (19:26 -0700)]
Fix sizeof tests for arm and x86 (#38577)

On these tests the arm class layout happens to match the x64/arm64 layout and
is different than the x86 layout.

So, introduce arm specific test projects for these tests.

Also in the recent test build conversion one project was overlooked, so update
that project to work with this new scheme as well.

Remove all exclusions for these and older variants of these tests.

Closes #37470.

4 years agoFixed IL bad format bug (#38560)
Yuchong Pan [Tue, 30 Jun 2020 02:04:41 +0000 (19:04 -0700)]
Fixed IL bad format bug (#38560)