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
Adeel Mujahid [Thu, 11 Jun 2020 13:31:12 +0000 (16:31 +0300)]
Implement RID for SunOS-derived operating systems (#37016)
* Implement RID for SunOS-derived operating systems
* Use official capitalization in all strings
* Compile get rid functions separately
Steve Pfister [Thu, 11 Jun 2020 11:58:55 +0000 (07:58 -0400)]
Disable System.Security.Cryptography.* tests for wasm. (#37723)
Since we aren't shipping openssl and browser crypto interop requires sync over async, we need to disable the tests until a viable solution is found.
Tomáš Rylek [Thu, 11 Jun 2020 10:16:55 +0000 (12:16 +0200)]
Fix libraries config for the R2R pipelines (#37737)
Michal Strehovský [Thu, 11 Jun 2020 08:35:48 +0000 (10:35 +0200)]
Annotate LoadFrom/Load from byte array as linker unsafe (#37704)
Tomas Weinfurt [Thu, 11 Jun 2020 06:53:20 +0000 (23:53 -0700)]
flush SslStream between messages (#37632)
* flush SslStream between messages
* add flush when we create tls alert
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
Levi Broderick [Thu, 11 Jun 2020 06:44:27 +0000 (23:44 -0700)]
Clean up Latin1Encoding implementation and vectorize its logic (#32994)
* Clean up Latin1Encoding implementation
- Vectorizes Latin1 narrowing / widening code paths
- Re-plumbs Latin1Encoding to use refactored Encoding workhorses
- Removes unused EncodingNLS type
- Removes unused DecoderBestFitFallback type
- Uses "? replacement" behavior for all Encoding subclassed types by default, except Latin1Encoding which still uses best-fit
- Also includes perf improvements for vectorized ASCII transcoding logic
Santiago Fernandez Madero [Thu, 11 Jun 2020 03:46:25 +0000 (20:46 -0700)]
Update dotnet SDK with MSBuild fix (#37726)
Olivia Chen [Thu, 11 Jun 2020 02:32:00 +0000 (19:32 -0700)]
turn off composite scenario since it's flaky (#37728)
* turn off composite scenario since it's flaky
* delete composite scenario
Andrew Au [Thu, 11 Jun 2020 02:07:10 +0000 (19:07 -0700)]
Avoid checking per object heap limit if the commit is not related to a specific object heap (#37725)
Maryam Ariyan [Thu, 11 Jun 2020 01:07:17 +0000 (18:07 -0700)]
Add readme for DI project (#37729)
Layomi Akinrinade [Wed, 10 Jun 2020 21:50:15 +0000 (14:50 -0700)]
Fix VeryLargeAmountOfEnumsToSerialize test (#37710)
* Fix VeryLargeAmountOfEnumsToSerialize test
* User Parallel.For and correct indices
Benjamin Bartels [Wed, 10 Jun 2020 21:09:09 +0000 (22:09 +0100)]
Added fast path to BinaryWriter.Write(string) (#37705)
Steve Harter [Wed, 10 Jun 2020 20:48:49 +0000 (15:48 -0500)]
Merge pull request #37708 from steveharter/FixAssert
Fix Debug.Assert when using ReflectionMemberAccessor
Benjamin Bartels [Wed, 10 Jun 2020 20:39:15 +0000 (21:39 +0100)]
Added support for splitting on ReadOnlySpan<char> (#295)
* Added initial implementation of SpanSplitEnumerator
* Merged SpanSplitEnumerator and SpanSplitSequenceEnumerator
* Reordered .projitems entry
* Exposed System.Memory API additions
* Added SpanSplitEnumerator Tests
* Apply suggestions from code review
Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
* Apply suggestions from code review
Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
* Moved SpanSplitEnumerator to separate file
* Applied feedback to ReadOnlySpan.Split tests
* Renamed parameters/fields
* Removed mistaken compile include
* Fixed incorrect namespace on GetEnumeartor() return type
* Applied feedback for ReadOnlySpan.Split tests
* Added XML Documentation to public members
* Fixed cref reference to SpanSplitEnumerator in XML Documentation
* Fixed System.Memory.cs entries missing fully qualified identifier
* Apply suggestions from code review
Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
* Moved SpanSplit Tests to correct file
* Applied review feedback
* Removed trailing whitespace
* Fixed Unit Tests
Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
Tomáš Rylek [Wed, 10 Jun 2020 19:15:24 +0000 (21:15 +0200)]
Crossgen2 ARM64 runs & initial cross-targeting support (#37331)
This change introduces initial provisions for dynamically loading
the native JIT based on the targeting OS and architecture; the change
expects the potentially multiple versions of clrjit to coexist with
Crossgen2 in the same folder, marked by a OS / arch suffix. Based
on these prerequisites the change adds ARM64 jobs to the Crossgen2
pipeline.
Thanks
Tomas
monojenkins [Wed, 10 Jun 2020 19:13:25 +0000 (15:13 -0400)]
[llvm] Emit a descriptive name for MONO_PATCH_INFO_JIT_ICALL_ADDR_NOCALL as well. (#37701)
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Tomas Weinfurt [Wed, 10 Jun 2020 19:11:04 +0000 (12:11 -0700)]
improve TLS frame parser (#36201)
* improve TLS frame parser
* retire SniHelper.cs
* feedback from review
* feedback from review
* feedback from review
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
Olivia Chen [Wed, 10 Jun 2020 17:25:05 +0000 (10:25 -0700)]
add crossgen2 perf jobs (#37678)
dotnet-maestro[bot] [Wed, 10 Jun 2020 17:24:03 +0000 (19:24 +0200)]
[master] Update dependencies from mono/linker Microsoft/vstest dotnet/llvm-project dotnet/xharness (#37643)
* Update dependencies from https://github.com/mono/linker build
20200609.1
Microsoft.NET.ILLink.Tasks
From Version 5.0.0-preview.3.20306.1 -> To Version 5.0.0-preview.3.20309.1
* Update dependencies from https://github.com/microsoft/vstest build
20200609-09
Microsoft.NET.Test.Sdk
From Version 16.7.0-preview-
20200608-10 -> To Version 16.7.0-preview-
20200609-09
* Update dependencies from https://github.com/dotnet/llvm-project build
20200608.1
runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk
From Version 9.0.1-alpha.1.20301.1 -> To Version 9.0.1-alpha.1.20308.1
* Update dependencies from https://github.com/dotnet/xharness build
20200608.1
Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.20305.1 -> To Version 1.0.0-prerelease.20308.1
* Update dependencies from https://github.com/mono/linker build
20200609.3
Microsoft.NET.ILLink.Tasks
From Version 5.0.0-preview.3.20306.1 -> To Version 5.0.0-preview.3.20309.3
* Update dependencies from https://github.com/microsoft/vstest build
20200610-06
Microsoft.NET.Test.Sdk
From Version 16.7.0-preview-
20200608-10 -> To Version 16.8.0-preview-
20200610-06
* Update dependencies from https://github.com/dotnet/xharness build
20200609.4
Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.20305.1 -> To Version 1.0.0-prerelease.20309.4
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
David Wrighton [Wed, 10 Jun 2020 17:20:36 +0000 (10:20 -0700)]
Profile driven method layout (#37469)
* Profile driven layout
- Update to mpgo file format to hold weighted call graph data, and exclusive hit sample data
- Implementation of call graph data capture from both jitted and R2R code
- Add mechanism for parsing entrypoints from R2R files into arbitrary type systems insetad of just strings
- Update command line parser in dotnet-pgo to use named properties on class instead of arguments to main method
- Update dotnet-pgo to be able to use a etl.zip file
- Implement infrastructure for performing layout of PE file based on profile guided information
- Implement various profile guided method ordering routines
- There are a variety of possible algorithms, these are simple to
implement. More capable ones will generally use the call graph data.
- Sort by exclusive weight
- Sort by Hot (known to be used) and cold (not known to be used)
- Sort by Hot (known to be used for more than 128 sample) Warm (known
to be used) and Cold (not known to be used)
- Since the BulkType logging lock seems to be losing some types, skip the lock for MethodDetails data
Kevin Jones [Wed, 10 Jun 2020 17:00:44 +0000 (13:00 -0400)]
Make invalid RSAParameters exception more informative.
Eric Erhardt [Wed, 10 Jun 2020 16:24:42 +0000 (11:24 -0500)]
Add ILLink.Substitutions.xml files for System.Private.CoreLib. (#37615)
* Add ILLink.Substitutions.xml files for System.Private.CoreLib.
Ported the settings from https://github.com/mono/mono/blob/
eaa32d13659f0a6b6b5e62ddb49af68b1f9efb6c/sdks/wasm/src/linker-subs.xml and split them out as appropriate to reduce duplication across the different platform builds.
Contributes to #31785
* Remove all Platforms other than wasm to workaround linker bug.
See https://github.com/mono/linker/issues/1260
Steve Harter [Wed, 10 Jun 2020 16:21:21 +0000 (11:21 -0500)]
Fix Debug.Assert when using ReflectionMemberAccessor
Tanner Gooding [Wed, 10 Jun 2020 15:30:39 +0000 (08:30 -0700)]
Moving the System.Runtime.Intrinsics.Arm namespace in box (#37656)
* Moving the System.Runtime.Intrinsics.Arm namespace in box
* Removing System.Runtime.Intrinsics.Experimental
Layomi Akinrinade [Wed, 10 Jun 2020 15:14:00 +0000 (08:14 -0700)]
Add (de)serialization test for ArraySegment<T> (#37684)
Michal Strehovský [Wed, 10 Jun 2020 14:00:34 +0000 (16:00 +0200)]
Sync shared compiler file (#37700)
Michal Strehovský [Wed, 10 Jun 2020 09:46:38 +0000 (11:46 +0200)]
Add dataflow annotations to System.Runtime (#37642)
Tomas Weinfurt [Wed, 10 Jun 2020 09:43:44 +0000 (02:43 -0700)]
remove ClientAsyncAuthenticate_SslStreamClientServerNone_UseStrongCryptoSet (#37692)
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
Layomi Akinrinade [Wed, 10 Jun 2020 02:18:49 +0000 (19:18 -0700)]
Use [SkipLocalsInit] & remove code for ILLink to strip locals init (#37541)
* Use [SkipLocalsInit] & remove code for ILLink to strip locals init
* Address review feedback
* Simply condition
* Clean up
* Fix condition
Zoltan Varga [Wed, 10 Jun 2020 01:00:47 +0000 (21:00 -0400)]
[wasm] Testing improvements. (#37662)
* Add System.Security.Cryptography.Algorithms to the pinvoke generator.
* Fix a stack overflow in WasmAppBuilder.
* [wasm] Unset MONO_LOG_MASK when running tests.
Its set to 'gc' by default which causes extra log messages to be added to the testResult.xml file.
* Turn off GC logging by default.
Layomi Akinrinade [Tue, 9 Jun 2020 22:49:49 +0000 (15:49 -0700)]
Strip the ILLinkTrim.xml from the System.Diagnostics.StackTrace assembly (#37659)
Anirudh Agnihotry [Tue, 9 Jun 2020 22:13:51 +0000 (15:13 -0700)]
adding the new version to avoid build failure (#37663)
* adding the new version to avoid build failure
* update the assemblyin Pakcage version
Santiago Fernandez Madero [Tue, 9 Jun 2020 20:59:26 +0000 (13:59 -0700)]
Fix global-build official build arg evaluation (#37665)
Eugene Rozenfeld [Tue, 9 Jun 2020 20:17:01 +0000 (13:17 -0700)]
Track promoted fields when struct local is no longer referenced. (#37280)
This is a follow-up to #36918. It addresses one of the examples in #1007
where we remove a struct zero initialization but fail to clean up a dead
field assignment.
The change is not to mark a dependently promoted field as untracked
if we know that the struct local is no longer referenced.
I also addressed a couple of late cosmetic review comments from #36918.
No diffs in framework and benchmarks.
Zoltan Varga [Tue, 9 Jun 2020 19:31:36 +0000 (15:31 -0400)]
Preserve PlatformNotSupportedException in the linker. (#37657)
Kunal Pathak [Tue, 9 Jun 2020 19:02:51 +0000 (12:02 -0700)]
ARM64: fix the alignment for Vector64 to 8 bytes (#37649)
monojenkins [Tue, 9 Jun 2020 19:00:58 +0000 (15:00 -0400)]
[interp] Don't save ip twice in InterpFrame (#37416)
We had frame->ip used by EH and debugger and frame->state.ip used to save the ip of the next instruction to be executed when we return from the call. Since both represent more or less the same thing, unify them and avoid duplicate storing inside InterpFrame for each call. Because we use this ip with exception handling, we need to subtract 1 (similar to the jit) so the ip ends up being in the call instruction and not the next.
Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
Mitchell Hwang [Tue, 9 Jun 2020 17:41:46 +0000 (13:41 -0400)]
[libraries] Skip GetOpenSslVersion on Apple OS (#37646)
Extend the `PlatformNotSupportedException` for `OpenSslVersion` from `OSX` to `OSX, iOS, and tvOS`, as none of these Apple OS support OpenSsl.
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Alexander Köplinger [Tue, 9 Jun 2020 17:06:46 +0000 (19:06 +0200)]
[mono] Add back sys/types.h include for clockid_t (#37653)
Looks like it was accidentally removed in https://github.com/dotnet/runtime/pull/37457
John Kelly [Tue, 9 Jun 2020 16:08:21 +0000 (17:08 +0100)]
Optimise MathF.CopySign and Math.CopySign using SSE intrinsics (#35456)
* Optimise MathF.CopySign and Math.CopySign
* Fix namespace error
* Clear up constant
* Remove x64 dependency for MathF method
* Remove unnecessary constant and unsafe from Math
* Remove unnecessary constant and unsafe from MathF
* Add ARM32/64 paths, and SSE41 path. Change integral constant to FP for perf and add integral constant for fallback
* Move conditional select to seperate helper methods, remove incorrect use of blendv
* Inline mask constants
* Correctly handle ISA not supported
* Remove old comment
* Fix syntax error
* Var -> explicit type
* Move helper method to sep class
As discussed w tanner
* move helper method
* Remove locals
* Fix namespace
* namespace
* Inline locals
* Change helper method to only accept float/double
* fix formatting
* fix sybntax
Fan Yang [Tue, 9 Jun 2020 15:08:25 +0000 (11:08 -0400)]
Check the existence of clocked_t (#37457)
* Use a macro more widely used by unix platforms
* If time.h exists, clock_it must have been defined
* Check the existence of clockit_t
* Move type check to the location near other time checks
Kenneth Pouncey [Tue, 9 Jun 2020 14:26:05 +0000 (16:26 +0200)]
[browser][wasm] Find the correct CoreLib (#37644)
Need to load `System.Private.Corlib`
closes: https://github.com/dotnet/runtime/issues/37636
Tom Deseyn [Tue, 9 Jun 2020 13:27:27 +0000 (15:27 +0200)]
SocketAsyncContext.Unix: remove Lock from IsReady (#36705)
* SocketAsyncContext.Unix: remove Lock from IsReady
* Make QueueState an int
* Update comment
* cleanup comment
* Update for rebase
* Decrement sequenceNumber instead of using nullable int
* PR feedback
Alexander Nikolaev [Tue, 9 Jun 2020 11:57:23 +0000 (13:57 +0200)]
Disable GetAsync_UnicodeHostName_SuccessStatusCodeInResponse (#37487)
SocketsHttpHandlerTest_HttpClientHandlerTest_Http2.GetAsync_UnicodeHostName_SuccessStatusCodeInResponse is periodically failing with TimeoutException. It seems to be caused by the target server unavailability, this PR disables the test until a new unicode test host is found.
Stephen Toub [Tue, 9 Jun 2020 11:54:17 +0000 (07:54 -0400)]
Fix TestExited_SynchronizingObject test (#37639)
Fix race condition.
Sean Hall [Tue, 9 Jun 2020 11:48:19 +0000 (21:48 +1000)]
Enable calling get_runtime_delegate from app context (#37473)
* Add ability for hostfxr_get_runtime_delegate to block on invalid delegate types.
This is required so that the runtime isn't loaded if the request has no chance of succeeding.
Fix spelling of initialization_options_t.
Add context_contract_version_set flag to initialization_options_t.
This allows hostpolicy to know whether it can rely on the version field of corehost_context_contract to be valid.
Also always initialize corehost_context_contract to {}.
* Allow app-based context to call hostfxr_get_runtime_delegate.
Currently, it may only request the load_assembly_and_get_function_pointer delegate.
Fix discrepancy in design doc.
Add error code HostApiUnsupportedScenario for blocks that might be removed. This gives the native host better information on why the request failed.
Add tests for running a component from an app context.
Marek Safar [Tue, 9 Jun 2020 11:03:18 +0000 (13:03 +0200)]
More cleanups and optimizations for System.Runtime.InteropServices.JavaScript (#37613)
Alexander Köplinger [Tue, 9 Jun 2020 10:40:44 +0000 (12:40 +0200)]
Use ConditionalFact/Theory for skipping RemoteExecutor on unsupported platforms (#37479)
RemoteExecutor doesn't work on platforms that can't spawn processes like iOS/Android/WebAssembly.
Stephen Toub [Tue, 9 Jun 2020 10:40:01 +0000 (06:40 -0400)]
Annotate System.ServiceProcess.ServiceController for nullable reference types (#37595)
* Annotate System.ServiceProcess.ServiceController for nullable reference types
* Address PR feedback
Aleksey Kliger (λgeek) [Tue, 9 Jun 2020 10:19:16 +0000 (06:19 -0400)]
[mono] Delete culture/ directory files (#37565)
Related to #37437 - we use libICU for culture information in`dotnet/runtime`, and now we don't sync `src/mono/mono/culture` back to the mono/mono repository, so we can delete all these files.
Viktor Hofer [Tue, 9 Jun 2020 10:10:33 +0000 (12:10 +0200)]
Create Microsoft.NetCore.App.Ref targeting pack for NetCoreAppCurrent in libraries (#37600)
* Create Microsoft.NetCore.App.Ref
Binplace reference assemblies into a Microsoft.NetCore.App.Ref folder
and also copy data files like the RuntimeList.xml and the
PlatformManifest.txt there.
Rename the runtime pack to microsoft.netcore.app.runtime.$(RID)
Fixing a restore issue in the wasm builder (restore and build should
not happen in the same msbuild invocation).
Stephen Toub [Tue, 9 Jun 2020 10:00:01 +0000 (06:00 -0400)]
Enable nullable reference types for full facades (#37589)
Some of our full facades are missing `<Nullable>enable</Nullable>`. I don't think the lack of these causes any issues, but having them makes it easy to confirm what ref assemblies remain to be annotated.
Michal Strehovský [Tue, 9 Jun 2020 09:39:28 +0000 (11:39 +0200)]
Add linker annotations to some of CoreLib (#36532)
Some of these are handled as linker intrinsics, so they'll actually keep less than what the annotation declares. The annotation mostly serves to suppress warnings when linker analyzes the body of the method itself.
Stephen Toub [Tue, 9 Jun 2020 09:28:21 +0000 (05:28 -0400)]
Use [MemberNotNull] to reduce use of `= null!;` (#37490)
* Exclude MemberNotNull from various tools
* Use [MemberNotNull] to reduce use of `= null!;`
Michal Strehovský [Tue, 9 Jun 2020 07:30:54 +0000 (09:30 +0200)]
Reflection annotate more of CoreLib (#37418)
Tomas Weinfurt [Tue, 9 Jun 2020 06:56:41 +0000 (23:56 -0700)]
allow access to crypto props from RemoteCertificateValidationCallback (#37580)
Levi Broderick [Tue, 9 Jun 2020 04:43:59 +0000 (21:43 -0700)]
Obsolete RuntimeHelpers.OffsetToStringData (#35722)
Jeremy Barton [Tue, 9 Jun 2020 04:33:48 +0000 (21:33 -0700)]
Make System.Formats.Asn1 library public
* Move current ASN src and tests into new tree with no modifications
AsnReader partials are named AsnDecoder to better match the final name
for the core logic they contain.
* Make System.Formats.Asn1 package
* Apply changes from API review
Some additional tests were written to increase code coverage after the changes
* Move AsnReader consumers to public API
Aaron Robinson [Tue, 9 Jun 2020 04:21:21 +0000 (21:21 -0700)]
Accept NativeCallableInternalAttribute to support legacy scenario (#37621)
* Accept NativeCallableInternalAttribute to support legacy scenario
* Feedback
Stephen Toub [Tue, 9 Jun 2020 02:22:27 +0000 (22:22 -0400)]
Revert "Update "LICENSE.txt" so that it's recognized as MIT" (#37626)
* Revert "Update "LICENSE.txt" so that it's recognized as MIT"
* Add LICENSE.TXT to global build
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Tarek Mahmoud Sayed [Tue, 9 Jun 2020 02:21:01 +0000 (19:21 -0700)]
Support the Encoding enumeration in the Encoding Providers (#37528)
* Support the Encoding enumeration in the Encoding Providers
* Fix build
* Fix netstandard build
* Address the feedback
* More Feedback
* More Feedback
Santiago Fernandez Madero [Tue, 9 Jun 2020 01:58:42 +0000 (18:58 -0700)]
Don't produce windows runtime packs for mono (#37627)
Ivan Diaz Sanchez [Tue, 9 Jun 2020 00:58:50 +0000 (17:58 -0700)]
Make build scripts' -help information more helpful (#37377)
* Sorted the build scripts' help alphabetically, and made the subset error
message softer and without metrics.
* Added simple examples to the scripts' helps.
* Moved short flags to the flag column and rephrased a bit.
* Removed remains of old code.
* Added more examples and rephrased some things for better clarity.
* Added gcc example to build.sh.
* Corrected definition of the Checked configuration.
* Added --clangx to build.sh
Tanner Gooding [Tue, 9 Jun 2020 00:32:54 +0000 (17:32 -0700)]
Fix the remaining jitstress-isas-x86 failures (#37459)
* Ensure the right SIMD size is used for the AsVector256 AVX code
* Don't create GT_SIMD nodes if the baseline ISAs are not supported.