Tomas Weinfurt [Tue, 16 Jun 2020 22:44:48 +0000 (15:44 -0700)]
reduce use of TRACE_VERBOSE in SslStream (#37917)
* reduce use of TRACE_VERBOSE
* add NetEventSource.Verbose
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
Jose Perez Rodriguez [Tue, 16 Jun 2020 22:00:46 +0000 (15:00 -0700)]
Adding linker correctness tests to test library annotations for the linker (#37618)
Tanner Gooding [Tue, 16 Jun 2020 21:53:54 +0000 (14:53 -0700)]
Exclude the AdvSimd_Part* tests for mono (#37979)
John Salem [Tue, 16 Jun 2020 21:46:26 +0000 (14:46 -0700)]
Enable startup events over EventPipe (#36720)
* Add PauseOnStart inside ceemain
* Add DOTNET_ env vars for opting out of pause on start
* Add Resume command to Diagnostics IPC
Sven Boemer [Tue, 16 Jun 2020 19:52:12 +0000 (12:52 -0700)]
Use DynamicDependencyAttribute (#37780)
* Use DynamicDependencyAttribute
* PR feedback
- Use typeof in more places
- Add comments about DynamicallyAccessedMembers
- Add comments about cases where we work around linker limitations
- Also move AssemblyBuilder`s DynamicDependency closer to where it
is actually needed.
* Add issue links
* Include internal attribute for OOB packages
On down-level platforms where DynamicDependencyAttribute doesn't exist
in corelib, this includes it in the OOB assemblies.
Marek Safar [Tue, 16 Jun 2020 19:45:19 +0000 (21:45 +0200)]
Help illinker remove all ICU dependencies in Invariant mode (#37832)
* Help illinker remove all ICU dependencies in Invariant mode
Data for browser-wasm hello world
|Mode | SPC Size | Delta
|-|-|-|
|Default| 1449 KB | |
|Invariant| 1345 KB| -50 KB |
* Review feedback
Nathan Ricci [Tue, 16 Jun 2020 19:43:00 +0000 (15:43 -0400)]
[eng] Build Mono Arm64 Release on runtime test builds (#37916)
This change will build Mono on Arm64 if the runtime tests are changed. This is required so that the runtime tests will run on arm64 if the tests are changed.
Anton Lapounov [Tue, 16 Jun 2020 19:03:43 +0000 (12:03 -0700)]
Fix a bug in 64-bit signed integer division. (#37570)
Calculation of `absNc` involves adding the sign bit of the denominator. It incorrectly used bit 31 of the denominator instead of bit 63.
Vlad Brezae [Tue, 16 Jun 2020 18:32:56 +0000 (21:32 +0300)]
Disable test on mono interpreter (#37957)
Which relies on a particular locals init behavior. Fixing this naively right now could have a noticeable perf regression, so we should postpone fixing this, until we have a better optimization pass design.
Zoltan Varga [Tue, 16 Jun 2020 18:07:36 +0000 (14:07 -0400)]
Move the Buffer.Memmove<T> implementation into the runtime specific files since it requires a runtime specific BulkMoveWithWriteBarrier icall. (#37920)
The mono version has an extra type argument since it uses copy functions which are type specific.
Also add an elementCount > 0 check to avoid icall overhead if possible.
Eric Erhardt [Tue, 16 Jun 2020 18:02:00 +0000 (13:02 -0500)]
Allow X509Certificates to be trimmed in HttpClientHandler. (#37909)
* Allow X509Certificates to be trimmed in HttpClientHandler.
When DangerousAcceptAnyServerCertificateValidator is never used, the backing static field won't be trimmed by the ILLinker. This will keep empty X509Certificate2 and X509Chain types around, which is the only thing in the X509Certificates assembly.
See https://github.com/mono/linker/issues/1270
t-mustafin [Tue, 16 Jun 2020 17:55:06 +0000 (20:55 +0300)]
[crossgen2][arm32]Fix nonGcOffset (#37980)
Fix DomainLocalModuleNormalDynamicEntryOffsetOfDataBlobArm offset for public
variables in class.
Fixes dotnet#37161
Signed-off-by: Timur <t.mustafin@partner.samsung.com>
Layomi Akinrinade [Tue, 16 Jun 2020 17:49:39 +0000 (10:49 -0700)]
Strip the ILLinkTrim.xml file from the System.Private.Xml.Linq assembly (#37935)
Viktor Hofer [Tue, 16 Jun 2020 17:42:50 +0000 (19:42 +0200)]
Use Microsoft prefix for merge conflict SDK entry (#37948)
Use the Microsoft prefix which is reserved on NuGet for Microsoft employees.
Sergey Andreenko [Tue, 16 Jun 2020 17:28:14 +0000 (10:28 -0700)]
2 small CQ optimizations. (#37967)
* `REF(0)==INT(0)` for reg reuse.
* Avoid field by field init when not profitable.
David Wrighton [Tue, 16 Jun 2020 17:08:13 +0000 (10:08 -0700)]
Fix generic delegate and MD Address method handling (#37937)
- Fix delegates to generic methods defined in the same compilation unit
- Fix usage of taking the address of a multidimensional array
- Pull the generics test from CoreRT into the ready to run generics test
Fixes issue #31654
Carol Eidt [Tue, 16 Jun 2020 17:00:27 +0000 (10:00 -0700)]
Reserve return reg for cross-reg-file copy (#37863)
Fix #37829
Bruce Forstall [Tue, 16 Jun 2020 16:10:23 +0000 (09:10 -0700)]
Add JIT stress mode testing using libraries tests (#36486)
* Add JIT stress mode testing using libraries tests
There are three separate pipelines, with different sets of JIT
stress modes enabled for each:
- libraries-jitstress.yml
- libraries-jitstress2-jitstressregs.yml
- libraries-jitstressregs.yml
The live built Release libraries are used with a Checked CoreCLR.
The non-stress configuration is tested during normal PR testing.
The libraries `sendtohelix.proj` file is changed to take an optional
list of CoreCLR stress scenarios to run. If given, a set of environment
setting scripts is created and added to the Helix correlation payload.
Then, an auxiliary `sendtohelixhelp.proj` file is invoked for each
scenario (or just the default, empty scenario) to create and run the
Helix tasks.
* Remove remnants of old corefx-on-coreclr test run infrastructure
* Rename corefx-*.yml to libraries-*.yml
* Disable tests
```
src/libraries/System.Numerics.Vectors/tests/Matrix3x2Tests.cs
https://github.com/dotnet/runtime/issues/36587
Matrix3x2CreateRotationCenterTest()
https://github.com/dotnet/runtime/issues/36587
Matrix3x2CreateScaleCenterTest1()
https://github.com/dotnet/runtime/issues/36587
Matrix3x2CreateScaleCenterTest3()
src/libraries/System.Numerics.Vectors/tests/Matrix4x4Tests.cs
https://github.com/dotnet/runtime/issues/36586
Matrix4x4CreateFromAxisAngleTest()
```
* Fix run-test-job.yml
* Fix BuildAllConfigurations case
Pranav K [Tue, 16 Jun 2020 16:09:46 +0000 (09:09 -0700)]
Annotate Microsoft.Extensions.DependencyInjection.Abstractions for nu… (#37488)
* Annotate Microsoft.Extensions.DependencyInjection.Abstractions for nullable reference types
Contributes to https://github.com/dotnet/runtime/issues/2339
Kunal Pathak [Tue, 16 Jun 2020 15:12:42 +0000 (08:12 -0700)]
Optimize SpanHelpers.IndexOfAny() for byte (#37934)
Sean Hall [Tue, 16 Jun 2020 12:02:58 +0000 (22:02 +1000)]
Implement hdt_get_function_pointer (#37696)
Maxim Lipnin [Tue, 16 Jun 2020 11:03:42 +0000 (14:03 +0300)]
[wasm] Make some System.Console test pass with accordance to WASM PNSE behavior (#37645)
* Add a separate wasm-specific test
* Address feedback
Kunal Pathak [Tue, 16 Jun 2020 06:40:16 +0000 (23:40 -0700)]
Replace Create(ulong) with CreateScalar(uint) in PopCount (#37912)
* Replace Create(ulong) with CreateScalar(uint)
* Add CreateScalar() in shim
Kenneth Pouncey [Tue, 16 Jun 2020 04:33:41 +0000 (06:33 +0200)]
Fix JavaScript core object creation and interop binding. (#37885)
- Missing parameter for ownsHandle.
Tomas Weinfurt [Tue, 16 Jun 2020 02:10:26 +0000 (19:10 -0700)]
improve correlation for EventSource events in SslStream (#36633)
* improve corelation for EventSource events in SslStream
* fix UnitTests build
* feedback from review
* add line
* add missing reference
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
Jeff Handley [Mon, 15 Jun 2020 23:55:52 +0000 (16:55 -0700)]
Use jeffhandley (GitHub handle) for Lead column (#37931)
Zoltan Varga [Mon, 15 Jun 2020 23:33:07 +0000 (19:33 -0400)]
Implement timers for wasm. (#37811)
Jan Kotas [Mon, 15 Jun 2020 22:27:32 +0000 (15:27 -0700)]
Fix detection of static readonly field re-initialization via reflection (#37849)
Move the check for static readonly field re-initialization after the static constructor is triggered.
Fixes #37796
Swaroop Sridhar [Mon, 15 Jun 2020 21:59:50 +0000 (14:59 -0700)]
Bundler: Fix a path computation.
The bundler recognizes json config files based on the input host-name as follows:
baseName = Path.GetFileNameWithoutExtension(hostName).
depsJsonName = baseName + "deps.json"
On Linux, since executables don't have an .exe extension, this logic is incorrect for apps whose name contains a . in their name.
For example, if hostName is Some.App, depsJson is incorrectly computed as Some.deps.json instead of Some.App.deps.json.
This change fixes the problem.
Jan Kotas [Mon, 15 Jun 2020 20:42:50 +0000 (13:42 -0700)]
Improve performance of Enum.CompareTo (#37845)
Enum.CompareTo was rewritten in C# recently. This set of fixes gets the performance on par with the previous C++ implementation
- Add optimization for obj1.GetType() == obj2.GetType() pattern the JIT
- Optimize FCall used by Enum.CompareTo
Fixes https://github.com/DrewScoggins/performance-2/issues/525
Swaroop Sridhar [Thu, 4 Jun 2020 08:19:14 +0000 (01:19 -0700)]
SingleFileBundler: Fix a path computation.
The bundler recognizes json config files based on the input host-name as follows:
```C#
baseName = Path.GetFileNameWithoutExtension(hostName).
depsJsonName = baseName + "deps.json"
```
On Linux, since executables don't have an `.exe` extension, this logic is incorrect for apps whose name contains a `.` in their name.
For example, if `hostName` is `Some.App`, `depsJson` is incorrectly computed as `Some.deps.json` instead of `Some.App.deps.json`.
This change fixes the problem.
Lee Coward [Mon, 15 Jun 2020 18:09:39 +0000 (11:09 -0700)]
update area-SDK entries (#37908)
Tanner Gooding [Mon, 15 Jun 2020 18:05:43 +0000 (11:05 -0700)]
Updating the ARM HWIntrinsic test generation script to automatically split the tests (#37859)
* Updating the ARM HWIntrinsic test generation script to automatically split the tests
* Removing the combined Program.AdvSimd.cs and Program.AdvSimd.Arm64.cs files
* Fixing the csproj to use the file group name
* Regenerate the ARM HWIntrinsic test projects
Jan Vorlicek [Mon, 15 Jun 2020 17:35:13 +0000 (19:35 +0200)]
Revert "Fix tizen rootfs build (#37891)" (#37902)
This reverts commit
279940471dacb387d78e00fd2c2dff724eafa251.
Tarek Mahmoud Sayed [Mon, 15 Jun 2020 17:09:42 +0000 (10:09 -0700)]
Fix CultureInfo creation with special Windows LCID values (#37834)
* Fix CultureInfo creation with special Windows LCID values
* Restrict the test to Windows 10.
Carol Eidt [Mon, 15 Jun 2020 16:13:36 +0000 (09:13 -0700)]
Use RELOAD tree when unspilling multi-reg node (#37773)
* Use RELOAD tree when unspilling multi-reg node
Jan Kotas [Mon, 15 Jun 2020 15:08:00 +0000 (08:08 -0700)]
Delete dead code (#37847)
xtqqczze [Mon, 15 Jun 2020 12:44:48 +0000 (13:44 +0100)]
.editorconfig: replace invalid `refactoring` severity (#37367)
Valid severity levels are: `error`, `warning`, `suggestion`, `silent`, `none`
https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-language-conventions?view=vs-2019#severity-levels
Kenneth Pouncey [Mon, 15 Jun 2020 12:20:44 +0000 (14:20 +0200)]
[browser][wasm] Fix key already exists error (#37889)
* [browser][wasm] Fix key already exists error
- During the last cleanup the key that was added for bridged object was messed up.
* Address review comments
Gleb Balykov [Mon, 15 Jun 2020 11:32:10 +0000 (14:32 +0300)]
Fix tizen rootfs build (#37891)
Jan Vorlicek [Mon, 15 Jun 2020 11:10:01 +0000 (13:10 +0200)]
Update covariant returns - add support for pointers (#37454)
* Update covariant returns - add support for pointers
This change adds support for managed, unmanaged and function pointers as
return values. It also adds related tests.
Zoltan Varga [Mon, 15 Jun 2020 09:50:29 +0000 (05:50 -0400)]
[wasm] Disable aot support in release builds. (#37765)
Maxim Lipnin [Mon, 15 Jun 2020 09:05:38 +0000 (12:05 +0300)]
[wasm] Update library tests for System.Runtime.InteropServices.JavaScript namespace (#37740)
* Update library tests for System.Runtime.InteropServices.JavaScript namespace
* Add using
* Make the tests wasm-specific
* Make the tests wasm-specific
* Remove commented out tests
Eugene Rozenfeld [Mon, 15 Jun 2020 03:30:16 +0000 (20:30 -0700)]
Fix propagation of basic block flags for inlinee return expressions. (#37840)
block flags from inlinee return expressions. The assumption there
was that `fgUpdateInlineReturnExpressionPlaceHolder` is the only
place where `GT_RET_EXPR`'s are replaced with the actual nodes
from inlinees. That assumption was incorrect and this change fixes
the remaining places.
Fixes #37574.
Adeel Mujahid [Sun, 14 Jun 2020 23:11:02 +0000 (02:11 +0300)]
Include libnethost.lib in apphost package (#37878)
Olivia Chen [Sat, 13 Jun 2020 15:08:11 +0000 (08:08 -0700)]
disable crossgen2 composite scenario (#37842)
Michal Strehovský [Sat, 13 Jun 2020 15:00:57 +0000 (17:00 +0200)]
Prevent use of LINQ in managed type system (#37854)
//
// The type system needs to be low level enough to be usable as
// an actual runtime type system.
//
// LINQ is not low level enough to be allowable in the type system.
//
// It also has performance characteristics that make it a poor choice
// in high performance components such as the type system.
//
Michal Strehovský [Sat, 13 Jun 2020 09:41:06 +0000 (11:41 +0200)]
Sync shared compiler files (#37850)
Levi Broderick [Sat, 13 Jun 2020 05:57:52 +0000 (22:57 -0700)]
Add StringSplitOptions.TrimEntries (#35740)
Also changes some existing string.Split call sites to use new API
Sean Hall [Sat, 13 Jun 2020 03:50:17 +0000 (13:50 +1000)]
Refactor ComponentActivator (#37784)
* Refactor ComponentActivator.
* Add ComponentActivation test for initialization from self-contained app.
* Rename tests around load_assembly_and_get_function_pointer.
* Update app ComponentActivation tests to initialize from an app.
Address PR feedback.
* Rely on PtrToStringAuto to call Uni or UTF8
John Kelly [Sat, 13 Jun 2020 01:25:51 +0000 (02:25 +0100)]
Fix Vector2/4 Lerp methods (#37764)
* Fix LERP and add appropriate tests
* Fix syntax error
All tests passed :white_check_mark:
Dan Moseley [Sat, 13 Jun 2020 01:00:00 +0000 (18:00 -0700)]
Update area owners to include lead owners column (#37760)
* prettify
* add leads
* single owner for system.runtime
* jared
* note
* Update area-owners.md
* Sort and add some more leads
* Update area-owners.md
* Add more leads
* s.r.m and s.ds
* couple more
* Fix lee/jeff
* S.DS
* Add David-Engel
* tweaks
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Santiago Fernandez Madero [Sat, 13 Jun 2020 00:50:08 +0000 (17:50 -0700)]
Balance out arm jobs due to number of machines we have available (#37835)
Eugene Rozenfeld [Fri, 12 Jun 2020 23:58:50 +0000 (16:58 -0700)]
Fixes and improvements for removal of redundant zero inits (#37786)
1. Bug fix: when processing a zero assignment to a field of a promoted struct,
check the reference count of the parent struct.
2. Bug fix: when processing a zero assignment to a promoted struct, check the
reference counts of all fields.
3. Bug fix and improvement: a dependently promoted field is initialized in the prolog
iff its parent struct is initialized in the prolog so we can remove a field zero initialization
if the parent struct is already zero initialized.
4. Improvement: keep track of explicitly zero-initialized locals so that duplicate
explicit zero initializations can be eliminated.
Fixes #37666.
Drew Scoggins [Fri, 12 Jun 2020 22:56:14 +0000 (15:56 -0700)]
Plumb interpreter support into perf runs (#37514)
* Plumb interpreter support into perf runs
* Add interpreter variable to Linux
* Fix space issue
* Pass codeGenType to final yaml
* Fix whitespace issue
* Fix auth
* Fix log name
* Fix log name
* Update HelixPreCommand steps
Alexander Köplinger [Fri, 12 Jun 2020 22:29:43 +0000 (00:29 +0200)]
Android: align xharness output folder name to iOS/WASM (#37799)
Use `xharness-output` instead of `TestResults`.
monojenkins [Fri, 12 Jun 2020 22:08:22 +0000 (18:08 -0400)]
[interp] Refactor ldfld from vt (#37788)
Add separate faster opcode and remove use of MINT_VTRESULT
Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
Carol Eidt [Fri, 12 Jun 2020 21:15:28 +0000 (14:15 -0700)]
Fix HFA/HVA classification (#37499)
* Fix HFA/HVA classification
Fix #35144
Rikki Gibson [Fri, 12 Jun 2020 21:05:16 +0000 (14:05 -0700)]
Add System.Runtime.CompilerServices.IsExternalInit (#37763)
David Wrighton [Fri, 12 Jun 2020 21:00:01 +0000 (14:00 -0700)]
Huge page support for composite images loaded on Linux (#37673)
Add support for loading composite R2R images utilizing huge pages on Linux
Support is broken into 3 major portions
- Changes to the compiler to add a switch which can compile the composite image with higher than normal alignment
- Changes to the runtime to make some slight tweaks to PE file loading on Linux to support these images correctly
- Documentation on how to tie these various features together to achieve large page loading on Linux
Stephen Toub [Fri, 12 Jun 2020 20:49:10 +0000 (16:49 -0400)]
Consistently use inline stackallocs with ValueStringBuilder (#37795)
Primarily for style consistency.
Jeremy Barton [Fri, 12 Jun 2020 20:48:23 +0000 (13:48 -0700)]
Add ability to disable AIA retrieval in X509Chain
Viktor Hofer [Fri, 12 Jun 2020 20:36:17 +0000 (22:36 +0200)]
Delete dead mscorlib winrt facade (#37660)
Viktor Hofer [Fri, 12 Jun 2020 20:08:56 +0000 (22:08 +0200)]
Fix refpack construction in libraries (#37800)
* Fix refpack construction in libraries
Viktor Hofer [Fri, 12 Jun 2020 20:08:02 +0000 (22:08 +0200)]
Remove ILC hack for FileVersionInfo test (#37798)
Steve Harter [Fri, 12 Jun 2020 20:05:39 +0000 (15:05 -0500)]
Merge pull request #37758 from steveharter/XGenSize
Remove JsonParameterInfo.ReadJson and ReadJsonTyped
Steve Harter [Fri, 12 Jun 2020 20:05:02 +0000 (15:05 -0500)]
Merge pull request #37751 from steveharter/PropertyPolicy
Change additional PropertyPolicy terminology
Kunal Pathak [Fri, 12 Jun 2020 18:53:47 +0000 (11:53 -0700)]
ARM64: Optimize IndexOf(byte) and IndexOf(char) APIs using intrinsics. (#37624)
* Optimize SpanHelpers.IndexOf() for byte/char
* Updated the implementation to use addp
Also moved the code in a common method that can be used
to `FindFirstMatchedLane` in other APIs as well.
* correct implementation
* updated comment and code cleanup
* converted condition to an assert
* switch to optimal implementation
* Use result of AddPairwise instead of MaxPairwise to decide if there is any match
* Use AdvSimd.Arm64.IsSupported
dotnet-maestro[bot] [Fri, 12 Jun 2020 18:40:32 +0000 (20:40 +0200)]
[master] Update dependencies from dotnet/arcade mono/linker Microsoft/vstest dotnet/runtime-assets dotnet/xharness (#37747)
* Update dependencies from https://github.com/dotnet/arcade build
20200609.1
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.XUnitConsoleRunner
From Version 5.0.0-beta.20280.1 -> To Version 5.0.0-beta.20309.1
* Update dependencies from https://github.com/microsoft/vstest build
20200610-07
Microsoft.NET.Test.Sdk
From Version 16.8.0-preview-
20200610-06 -> To Version 16.8.0-preview-
20200610-07
* Update dependencies from https://github.com/dotnet/runtime-assets build
20200610.1
System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
From Version 5.0.0-beta.20258.1 -> To Version 5.0.0-beta.20310.1
* Update dependencies from https://github.com/dotnet/xharness build
20200611.1
Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.20309.4 -> To Version 1.0.0-prerelease.20311.1
* Update dependencies from https://github.com/mono/linker build
20200611.1
Microsoft.NET.ILLink.Tasks
From Version 5.0.0-preview.3.20309.3 -> To Version 5.0.0-preview.3.20311.1
* Update dependencies from https://github.com/mono/linker build
20200611.3
Microsoft.NET.ILLink.Tasks
From Version 5.0.0-preview.3.20309.3 -> To Version 5.0.0-preview.3.20311.3
* Update dependencies from https://github.com/microsoft/vstest build
20200612-02
Microsoft.NET.Test.Sdk
From Version 16.8.0-preview-
20200610-06 -> To Version 16.7.0-release-
20200612-02
* Update dependencies from https://github.com/dotnet/xharness build
20200611.3
Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.20309.4 -> To Version 1.0.0-prerelease.20311.3
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Eric Erhardt [Fri, 12 Jun 2020 18:34:24 +0000 (13:34 -0500)]
Add an ILLinkTrim.xml file for InteropServices.JavaScript. (#37776)
* Add an ILLinkTrim.xml file for InteropServices.JavaScript.
Fix #37775
* Remove redundant DynamicDependency
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Eric StJohn [Fri, 12 Jun 2020 18:10:42 +0000 (11:10 -0700)]
Add Microsoft.Extensions.HostFactoryResolver.Sources package (#37793)
Adds package and enables tests for HostFactoryResolver
Carol Eidt [Fri, 12 Jun 2020 18:03:23 +0000 (11:03 -0700)]
Fix SIMD store to spilled multi-reg local (#37781)
Fix #37761
Anirudh Agnihotry [Fri, 12 Jun 2020 17:17:27 +0000 (10:17 -0700)]
Tfm clean up (#37623)
* cross targting removed
* sln update and remove system.numeric.vectors
* cross targeting interop project
Jose Perez Rodriguez [Fri, 12 Jun 2020 15:40:10 +0000 (08:40 -0700)]
Fix BeginSendRequest and EndSendRequest on LdapConnection (#37774)
* Fix BeginSendRequest and EndSendRequest on LdapConnection
* Fix PR Feedback
* Fix case where timeout is set to infinite
* Fix condition and address more feedback
* Fixing netcoreap2.0 build error due to missing references
Steve Harter [Fri, 12 Jun 2020 15:33:26 +0000 (10:33 -0500)]
Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonPropertyInfo.cs
Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
Steve Harter [Fri, 12 Jun 2020 15:30:25 +0000 (10:30 -0500)]
Address feedback
Michal Strehovský [Fri, 12 Jun 2020 09:44:03 +0000 (11:44 +0200)]
Sync annotations to Mono CoreLib (#37748)
Stephen Toub [Fri, 12 Jun 2020 09:34:54 +0000 (05:34 -0400)]
Reduce allocation in NegotiateStream.Read/Write{Async} (#37772)
* Avoid new byte[] per Write{Async}
Hold onto and reuse our write buffer.
* Avoid byte[][] allocation per Read/Write{Async}
* Avoid two boxing allocations per Read{Async}
The default interface method on the interface results in boxing a struct that implements that interface on each call to the method.
monojenkins [Fri, 12 Jun 2020 08:23:34 +0000 (04:23 -0400)]
[merp] Add API methods for getting hashcode/reason of last crash (#37682)
Contributes to https://github.com/mono/mono/issues/18715
Co-authored-by: alexischr <alexischr@users.noreply.github.com>
Kenneth Pouncey [Fri, 12 Jun 2020 07:56:08 +0000 (09:56 +0200)]
[browser][wasm] Implement JavaScript managed object reference counting (#37417)
* Add Browser specific files to the project
* Browser specific file modification to not include Quic support
* Add Browser specific support files for Http Handler code
* Add Interop code for JavaScript support
* Remove unused reference
* Add Http handler bindings implementation
- This still needs to have the code implement nullable
* Nullable support
* Add browser files back after upstream merge conflict
* Use attribute Link syntax for Common files to bring in sync with existing format
* Address Missing license header
* Code formatting and removal of comment code.
* Address PR comments.
* Address commit comments
* Add blank line between License and first line of code. Address comments
* Replace SocketsHttpHandler build for Browser.
- Throws `PlatformNotSupportedException` for properties and methods of the HttpMessageHandler abstract implementation.
* Cleanup SendAsync code when doing the call out to JavaScript Fetch.
- Addresses commit comments.
* Refactor BrowserHttpHandler code.
* Cleanup
* Remove null check as it should be checked in outer classes
* Cleanup var usage to use explicit type. Address commit comments
- For all of these vars, please replace them with the actual type, except when the type is obvious from a new or explicit cast on the right-hand side.
* Move `.ConfigureAwait(true)` to `.ConfigureAwait(false)`
- Address review comments
* Change accessor of Runtime javascript interop methods.
* Change accessor of Runtime javascript interop methods.
* Address review comments for unused code
* Cleanup leftover debug WriteLines
* Remove the AllowNull attributes as per review comments.
* Update src/libraries/Common/src/Interop/Browser/Interop.Runtime.cs
Co-Authored-By: Marek Safar <marek.safar@gmail.com>
* throw different exception type as per review comment
* use char[] array instead and return new string(array).
- Address review comments
* Initial addition of Browser Interop library
* use char[] array instead and return new string(array).
- Address review comments
* Add project references so the Interop.JavaScript project builds
* Coding Style update
* Split the runtime methods into two modules.
- .Api contains the methods that are only used internally from JavaScript bindings code.
* Move System.Runtime.Interop.JavaScript to \src\libraries
- Address review comments
* Change preprocessor to upper case TARGETS_BROWSER
- Address review comments
* Update src/libraries/Common/src/Interop/Browser/Interop.Runtime.Api.cs
Co-authored-by: Marek Safar <marek.safar@gmail.com>
* Update src/libraries/Common/src/Interop/Browser/Interop.Runtime.Api.cs
Co-authored-by: Marek Safar <marek.safar@gmail.com>
* Update src/libraries/Common/src/Interop/Browser/Interop.Runtime.Api.cs
Co-authored-by: Marek Safar <marek.safar@gmail.com>
* Rename from .Api to .Bridge to address review comments
* Modify .csproj files to reflect .Bridge.cs change.
* Remove unnecessary constant
* Add docs
* Update Bridge link
* Collapse code as per review comment.
* Address review comments on `Task.ConfigureAwait(continueOnCapturedContext: true)`.
- Added comment in source code.
* Address review comment about using PropertyInfo reflection.
- GetMethod("get_Result") is less expensive to use.
* Coding Style - Address review comments
* Part of code style and object documentation to partially address review comments.
* Update src/libraries/Common/src/Interop/Browser/Interop.JavaScript.JSObject.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/Common/src/Interop/Browser/Interop.Runtime.Bridge.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Add class docs and code style updates
- Address review comments
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Fix badly formed XML
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Remove unnecessary Property implementations.
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update code style involving the use of `var`
* Modify the underlying sockets field name.
- address review comments.
* Style and address review comments
* Remove reliance on ConnectHelper.cs code as it is not supported on Browser
- This removes the reliance on the QUIC support.
* Update src/libraries/Common/src/Interop/Browser/Interop.Runtime.Bridge.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Remove null check for httpresponse.Content as it is always assigned to.
- Address review comments
* Address review comments
* Remove methods that will not be implemented right now,
* Add properties back to fix build error
- error : MembersMustExist : Member 'public System.Boolean System.Net.Http.SocketsHttpHandler.XXXXXXXXXXXX.get()' does not exist in the implementation but it does exist in the contract.
* Remove tcs TaskCompletionSource to address review comments
* code style change
* Remove disposing of _abortCts here as it causes runtime errors as being disposed of too early
* Address review comment for GetType()
* Rename library as per discussions
* Add lock around the _boundObjects and _rawToJS access.
- Address concurrency review comments
* Address review comments for disposing of CancellationTokenSource
* Address new HttpContent overloads in .NET 5 that take CancellationToken
* Add project and test structure for JavaScript InteropServices
* Remove previous modification as it is no longer needed.
* Update src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Remove custom message passed to the PNSE .ctor
* Update `mono` to dotnet or .NET
* Address review comment for internal sealed class
* Address extra message text
* Move these source modules to System.Runtime.InteropServices.JavaScript
* Add interop source modules to System.Runtime.InteropServices.JavaScript project
* Remove placeholder source
* Reference System.Runtime.InteropServices.JavaScript project
* Address review comments Unsafe.SizeOf
* Finish move of sources to InteropServices.JavaScript
* Remove ActiveIssue to address review comments
* Add core implementations
* Add core object implementation for Map
* Remove unused targetframework
* Fix PNSE in HttpClientHandler .ctor
- When creating an instance of the browser webassembly `System.Net.Http.BrowserHttpHandler` the following error is thrown.
```
System.PlatformNotSupportedException: Operation is not supported on this platform.
at System.Net.Http.BrowserHttpHandler.get_SslOptions()
at System.Net.Http.HttpClientHandler.ThrowForModifiedManagedSslOptionsIfStarted()
at System.Net.Http.HttpClientHandler.set_ClientCertificateOptions(ClientCertificateOption value)
at System.Net.Http.HttpClientHandler..ctor()
at System.Net.Http.HttpClient..ctor()
```
* Remove extra parameters to `PlatformNotSupportedException`
* Fix tests due to underlying field name changing and reflection being used to obtain the socket field
* Initial commit of reference counting code.
* Update code formatting
* Update solution formatting
* [browser][wasm] Add support for marshaling the AnyRef SafeHandle
- When calling into the bindings from managed code the` JSObject` reference handle is incremented.
- After execution of the call the `JSObject` reference is decremented.
- Special processing for the `GlobalObject` where the object is set with `ownsHandle` = false so that it is not released.
- Release reference counts on javascript exceptions.
* Code cleanup and formatting.
* Clean up
* Fix delegate code and address review comments
* Code clean up and change accessor on AnyRefHandle
* Move outside block
* Remove unused method
* Remove nullable type from dictionary
* Remove comments
* Marking methods with Linker-friendly reflection by using DynamicDependency attribute
* address redundant using
* Address lock review comment
* Address review comments
* remove nullable code
* Address review comments
* Add Debug.Assert to address review comment
* Address assert comments and code formatting
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Elinor Fung [Fri, 12 Jun 2020 05:07:47 +0000 (22:07 -0700)]
Add IDynamicInterfaceCastable interface (#37042)
- Add IDynamicInterfaceCastable and DynamicInterfaceCastableImplementationAttribute
- IDynamicInterfaceCastable.IsInterfaceImplemented is called as a fallback for isinst and castclass
- IDynamicInterfaceCastable.GetInterfaceImplementation is called as a fallback for interface dispatch
- Add tests
Carol Eidt [Fri, 12 Jun 2020 00:24:04 +0000 (17:24 -0700)]
Kill REG_PROFILER_RET_SCRATCH (#37679)
Eric Erhardt [Thu, 11 Jun 2020 23:20:18 +0000 (18:20 -0500)]
Update mono CoreLib.sln to make VS happy (#37713)
VS will modify the .sln every time it is opened, which forces developers to have to fight VS to undo the changes. This fix will stop VS from editing the .sln file.
Rikki Gibson [Thu, 11 Jun 2020 23:04:57 +0000 (16:04 -0700)]
Add System.Runtime.CompilerServices.ModuleInitializerAttribute (#37625)
* Add System.Runtime.CompilerServices.ModuleInitializerAttribute
* Update ModuleInitializerAttribute.cs
* Escape angle brackets inside <remarks>
* Update src/libraries/System.Runtime/ref/System.Runtime.cs
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Root out all the angle brackets
* Update ModuleInitializerAttribute.cs
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Update src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/ModuleInitializerAttribute.cs
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Simon Nattress [Thu, 11 Jun 2020 22:58:49 +0000 (15:58 -0700)]
R2RTest - compile-serp large composite images (#37722)
Add new compilation scenario, `SingleSerpAspNetSharedFrameworkComposite`, which compiles a single composite image containing Serp Core, Asp.Net, and Shared Fx. This is the closest to a shipping scenario and what we should run performance tests with. `SerpAspNetSharedFramework` is now less important but we can keep it around for a little while in case we want to compare the two.
Marek Safar [Thu, 11 Jun 2020 22:05:12 +0000 (00:05 +0200)]
Simplify calendar construction for Invariant mode (#37527)
* Simplify calendar construction for Invariant mode
Allows illinker to save about 50k in invariant globalization mode
* Fix nullable warning
* Add simple negative Calendar set test
* Retain setting of invariant calendar in non-invariant mode
* Fix initialization of DateTimeFormat for Invariant CultureInfo
to initialize Calendar values only once.
Before CultureInfo::DateTimeFormat and DateTimeFormatInfo::InvariantInfo
would return different value under Invarint mode because of
```
at System.Globalization.DateTimeFormatInfo.set_Calendar(Calendar value)
at System.Globalization.DateTimeFormatInfo..ctor(CultureData cultureData, Calendar cal)
at System.Globalization.DateTimeFormatInfo..ctor()
at System.Globalization.DateTimeFormatInfo.get_InvariantInfo()
at System.Globalization.CultureInfo.get_DateTimeFormat()
at System.Globalization.CultureInfo.GetFormat(Type formatType)
at System.Globalization.DateTimeFormatInfo.get_CurrentInfo()
```
* Clarify existing assert
* Simplify dependencies when reading current era value
* Review feedback on the assert placement
* Fix setting Calendar to same type in InvariantMode
* Fix odd behaviour where setting calendar to same value resets user values
Tom Deseyn [Thu, 11 Jun 2020 21:54:44 +0000 (23:54 +0200)]
Socket.Unix: stackalloc IoVector/GCHandle for multi-buffer send/receives. (#37583)
* Socket.Unix: stackalloc IoVector/GCHandle for multi-buffer send/receives.
* PR feedback
* More fixed stackalloc length
* Only free pinned handles
Stephen Toub [Thu, 11 Jun 2020 21:53:46 +0000 (17:53 -0400)]
Fix BoundedChannel race condition between writes and canceled reads (#37716)
* Fix BoundedChannel race condition between writes and canceled reads
When BoundedChannelWriter has an item to be written, if there are readers waiting, it needs to try to transfer that item to a waiting reader. When it dequeues the next waiting reader, it needs to check to see if that reader has already been canceled, as that's the only way a reader in the queue might not be completable by the writer. Our current check, however, is flawed, in that we're assuming that the reader's IsCompleted will have synchronously transitioned to true as part of cancellation being requested; however, due to an implementation detail of the AsyncOperation that represents the reader, it might _asynchronously_ transition to true, in which case we have a race condition where we might see the reader as not having been canceled even though it has been, and that causes us to lose data by the writer trying to complete the reader with its data and failing to do so (this condition would assert in debug builds but isn't checked in release builds as it should never happen). The fix is simply changing the condition we check to factor in the right information.
* Add stress test for canceled reads
This fails quickly before the fix and succeeds after.
Layomi Akinrinade [Thu, 11 Jun 2020 20:24:24 +0000 (13:24 -0700)]
Revert "Added support for splitting on ReadOnlySpan<char> (#295)" (#37757)
This reverts commit
78ed8e8ab18ae6a944e04aaa1c66928acef7da18.
Tamar Christina [Thu, 11 Jun 2020 18:44:56 +0000 (19:44 +0100)]
Arm64: Implement shift and insert intrinsics (#36818)
Simon Nattress [Thu, 11 Jun 2020 18:14:45 +0000 (11:14 -0700)]
Rename Crossgen2 dependency graph ETW event source (#37731)
When crossgen2 is run with `Microsoft-ILCompiler-Perf` provider enabled, events are not named properly in PerfView (`Microsoft-ILCompiler-Perf/EventID(1)` instead of `Compilation/Start`) and an error event indicating multiple EventSource instances with the same GUID are enabled:
```
ERROR: Exception in Command Processing for EventSource Microsoft-ILCompiler-Perf: An instance of EventSource with Guid
607164a4-cacb-5f22-92fb-
62a11541e285 already exists.
```
Name the dependency analysis EventSource `Microsoft-ILCompiler-Graph-Perf` to distinguish between the two.
Stephen Toub [Thu, 11 Jun 2020 18:11:14 +0000 (14:11 -0400)]
Remove CopyTo{Async} delegate overloads (#37750)
We added these earlier in the .NET 5 cycle, but they're not providing the benefits we hoped, and are likely to cause confusion and actually result in de-optimizations in some cases. We can re-add them in the future should a stronger need / impact present itself.
Stephen Toub [Thu, 11 Jun 2020 17:29:58 +0000 (13:29 -0400)]
Annotate System.IO.Packaging for nullable reference types (#37654)
* Annotate System.IO.Packaging for nullable reference types
* Address PR feedback
Tom Deseyn [Thu, 11 Jun 2020 16:18:23 +0000 (18:18 +0200)]
Remove SocketAsyncEngine.Token (#36339)
* Remove SocketAsyncEngine.Token
This removes SocketAsyncEngine.Token. The token ensured each socket
has a unique key for receiving events on a poll thread.
These unique tokens were introduced to deal with fd recyling leading
to false events being delivered to the new socket (when the fd is used
as the key).
This is not an issue for most operations because they can be retried.
It is an issue specifically for the connect operation which is an
on-going operation for which the status must be read using SO_ERROR
socket option when the socket becomes writable.
The connect-case is solved by checking the socket is writable
before reading the SO_ERROR socket option.
By using the fd as handles we can remove the logic for generated
unique tokens, which includes spinning up additional poll threads
in case unique handles are exhausted.
* Remove handle from dictionary when TryChangeSocketEventRegistration fails
* Remove _isRegistered field
* Update after merge
* Remove double TryRemove
* Throw on duplicate handle add
* Add comment about thread-safety between Register and StopAndAbort
Kevin Jones [Thu, 11 Jun 2020 15:58:58 +0000 (11:58 -0400)]
Remove quirks for macOS Sierra. (#37688)
* Remove functional quirks for macOS Sierra.
* Fix other operating systems.
Carol Eidt [Thu, 11 Jun 2020 15:16:37 +0000 (08:16 -0700)]
Enregister multireg lclVars (#36862)
* Enregister multireg lclVars
Allow struct lclVars that are returned in multiple registers to be
enregistered, as long as the fields are a match for the registers.
Fix #34105
Mitchell Hwang [Thu, 11 Jun 2020 14:30:19 +0000 (10:30 -0400)]
[libraries] Add assembly level ActiveIssue for System.Globalization (#37715)
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Mitchell Hwang [Thu, 11 Jun 2020 14:29:25 +0000 (10:29 -0400)]
[libraries] Extend PlatformDetection.IsOSX to include all Apple OS (#37707)
* [libraries] Replacee IsNotApple with IsApple
* [libraries] Extend PlatformDetection.IsOSX to include all Apple OS
* [libraries] Remove test case from DateTimeFormatInfoData
* [Libraries] Rename IsApple to IsOSXLike
* [libraries] Revert GdiplusTests condition from IsOSXLike to IsOSX
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Steve Harter [Wed, 10 Jun 2020 23:01:53 +0000 (18:01 -0500)]
Reduce CrossGen assembly size
Steve Harter [Thu, 11 Jun 2020 14:01:26 +0000 (09:01 -0500)]
Remove PropertyPolicy naming