Marek Safar [Sat, 4 Jul 2020 22:33:58 +0000 (00:33 +0200)]
Remove redundant initializations in SPC (#38759)
* Remove redundant initializations in SPC
* Update comment
Marek Safar [Sat, 4 Jul 2020 22:32:56 +0000 (00:32 +0200)]
Make CultureData properties static to allow illinker to more dead code (#38778)
Maxim Lipnin [Sat, 4 Jul 2020 13:58:43 +0000 (16:58 +0300)]
Skip System.Configuration.ConfigurationManager tests on WASM (#38749)
Marek Safar [Sat, 4 Jul 2020 07:49:23 +0000 (09:49 +0200)]
Clean up System.Net.Http build a bit for browser (#38775)
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.
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
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
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>
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
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
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.
Michal Strehovský [Fri, 3 Jul 2020 13:10:59 +0000 (15:10 +0200)]
Annotate more Mono reflection for trimming (#38431)
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
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
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>
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
Stephen Toub [Fri, 3 Jul 2020 00:45:55 +0000 (20:45 -0400)]
Enable SA1404 Code analysis suppression should have justification (#38537)
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.
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`
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
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.
Santiago Fernandez Madero [Thu, 2 Jul 2020 23:41:20 +0000 (16:41 -0700)]
Don't ship experimental packages to nuget (#38724)
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)
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.
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>
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)
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
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
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)
Nicolas Portmann [Thu, 2 Jul 2020 13:27:04 +0000 (15:27 +0200)]
Use full MD5 to compare bitmap rotate results (#38699)
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>
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.
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
Shay Rojansky [Thu, 2 Jul 2020 10:45:23 +0000 (12:45 +0200)]
NRT annotations for main System.Data.Common types (#689)
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
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.
Zoltan Varga [Thu, 2 Jul 2020 02:15:25 +0000 (22:15 -0400)]
[wasm] Ignore missing assemblies in the wasm app builder. (#38672)
Bruce Forstall [Thu, 2 Jul 2020 02:14:59 +0000 (19:14 -0700)]
Fix interpreter build (#38673)
Fix interpreter build
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
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
Levi Broderick [Thu, 2 Jul 2020 00:35:16 +0000 (17:35 -0700)]
Remove dead code paths in System.Transactions.Local (#38685)
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
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>
Tomáš Rylek [Wed, 1 Jul 2020 22:14:27 +0000 (00:14 +0200)]
Disable the two remaining CG2 composite failure buckets (#38299)
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
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.
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
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
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()
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
Carol Eidt [Wed, 1 Jul 2020 19:37:52 +0000 (12:37 -0700)]
Fix scalar check when fixing up struct return. (#38644)
Fix #38455
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
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)
Eirik Tsarpalis [Wed, 1 Jul 2020 17:07:33 +0000 (18:07 +0100)]
Tidy up ARM tools installation instructions (#38676)
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
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
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>
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)
Anirudh Agnihotry [Wed, 1 Jul 2020 07:06:44 +0000 (00:06 -0700)]
fixes genapi for project with corelib reference (#38656)
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.
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.
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
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.
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.
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.
Maryam Ariyan [Tue, 30 Jun 2020 23:31:59 +0000 (16:31 -0700)]
[EventSourceLogger] Adding FormattedMessage for json message (#38509)
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
Günther Foidl [Tue, 30 Jun 2020 23:09:08 +0000 (01:09 +0200)]
Optimize TextEncoder.FindFirstCharacterToEncodeUtf8 (#284)
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>
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.
Jan Kotas [Tue, 30 Jun 2020 22:38:21 +0000 (15:38 -0700)]
Add missing string resources to the ILVerify tool (#38630)
Fixes #38623
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>
Vladimir Sadov [Tue, 30 Jun 2020 20:36:19 +0000 (13:36 -0700)]
Do not override CoreCLRArtifactsPath if RuntimeIdentifier is empty (#38602)
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
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.
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", ...)
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
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>
Jarret Shook [Tue, 30 Jun 2020 18:38:33 +0000 (11:38 -0700)]
Disable test based off of #38455 (#38580)
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.
Elinor Fung [Tue, 30 Jun 2020 17:41:53 +0000 (10:41 -0700)]
Fix packaging of PDBs for host binaries (#38589)
xtqqczze [Tue, 30 Jun 2020 17:37:30 +0000 (18:37 +0100)]
Markdown: Close anchor tags correctly (#38619)
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
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
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
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
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
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)
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
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>
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.
Vlad Brezae [Tue, 30 Jun 2020 11:56:09 +0000 (14:56 +0300)]
[interp] Intrinsify ClearWithReferences (#38569)
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)
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
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>
Stephen Toub [Tue, 30 Jun 2020 09:35:49 +0000 (05:35 -0400)]
Remove some stale pragma warning disables (#38551)
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>
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
Elinor Fung [Tue, 30 Jun 2020 05:17:09 +0000 (22:17 -0700)]
Remove dead code in binder (#38557)
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