David Wrighton [Fri, 14 May 2021 00:39:04 +0000 (17:39 -0700)]
Move copy of Crossgen2 tasks/targets to runtime repo and build composite image for runtime repo in parallel path (#52579)
* Move all crossgen2 tasks/targets used in Runtime repo to be local to the repo
* Move ResolveReadyToRunCompilers task into the Crossgen2Tasks dll
* Create composite bundle and package
- Note that it doesn't build properly, but hopefully that's a crossgen2 task bug
* Composite image production
* Refactor how composite image creation works
- Move it to allow mixed composite and non-composite r2r in the same build, controlled by the PublishReadyToRunCompositeExclusions list
- Enhance the accuracy of how msbuild tracks which files are input vs reference for composite images
- Implement the R2R exclusion list for composite images
- Remove the always on usage of --inputbubble when compiling a composite image
* - Add a scheme to perform public signing with a PublicKeyToken to a composite of the composite image if required
- Required adding a new parameter to crossgen2
Gleb Balykov [Fri, 14 May 2021 00:16:08 +0000 (03:16 +0300)]
Multicorejit unification (#48326)
* Unify simple and generic methods in multicorejit
* Disable NDirect methods in MulticoreJit
Current multicorejit implementation in master has multiple flaws with NDirect methods:
- exception might be thrown inside GetStubForInteropMethod at some point for NDirect method, which will kill background thread, thus, reducing effectiveness of multicorejit (for example, occurs when multicorejit is used with crossgen2)
- some NDirect methods can lead to asserts during load inside GetStubForInteropMethod (for example, EvpMdCtxDestroy (0x6000044 token) from System.Security.Cryptography.Algorithms.dll)
* Add MultiCoreJitMinNumCpus env variable with default value =2 to configure minimum allowed number of cpus for MultiCoreJit.
On arm with cpu hotplug it should be set to 1.
* Do not save overall record length for methods
This change reduces mcj profile size
* Store non-generic methods using token instead of signatures
This change reduces mcj profile size
David Mason [Thu, 13 May 2021 23:59:30 +0000 (16:59 -0700)]
Add diagnostics IPC set environment variable command (#52567)
İlkay İlknur [Thu, 13 May 2021 23:57:00 +0000 (02:57 +0300)]
Add IServiceScopeFactory.CreateAsyncScope (#52719)
* CreateAsyncScope extension method added for IServiceScopeFactory
* add CreateAsyncScope extension method for IServiceScopeFactory
* test added for IServiceScopeFactory.CreateAsyncScope
Pavel Savara [Thu, 13 May 2021 22:45:53 +0000 (00:45 +0200)]
Refresh network tests server code to Kestrel (#52642)
* copy from https://github.com/davidsh/corefx-net-endpoint/commit/
999f8356816be739ec65dae5a1a89782b3936a66
* license headers
* missing md5 test
* issue for missing functionality
Bruce Forstall [Thu, 13 May 2021 22:11:30 +0000 (15:11 -0700)]
Fix mcs merge error for missing pattern (#52715)
1. Print the Unicode pattern properly
2. Return an error code
Jose Perez Rodriguez [Thu, 13 May 2021 21:51:35 +0000 (14:51 -0700)]
Resolve ILLink Warnings on Microsoft.Extensions.Http (#52658)
* Resolve ILLink Warnings on Microsoft.Extensions.Http
Maryam Ariyan [Thu, 13 May 2021 21:46:09 +0000 (17:46 -0400)]
Improve logging source generator error messages (#52684)
Filip Navara [Thu, 13 May 2021 20:47:42 +0000 (22:47 +0200)]
Use same logic on iOS and macOS for dual-mode sockets in Ping (#52619)
* Use same logic on iOS and macOS for dual-mode sockets in Ping
* Address feedback
dotnet-maestro[bot] [Thu, 13 May 2021 20:43:31 +0000 (13:43 -0700)]
[main] Update dependencies from 7 repositories (#52440)
* Update dependencies from https://github.com/dotnet/arcade build
20210506.13
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageValidation , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21256.13
* Update dependencies from https://github.com/dotnet/xharness build
20210507.1
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21257.1
* Update dependencies from https://github.com/dotnet/llvm-project build
20210506.1
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-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
From Version 9.0.1-alpha.1.21253.1 -> To Version 9.0.1-alpha.1.21256.1
* Update dependencies from https://github.com/dotnet/arcade build
20210507.5
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageValidation , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21257.5
* Update dependencies from https://github.com/dotnet/xharness build
20210507.2
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21257.2
* Update dependencies from https://github.com/dotnet/runtime-assets build
20210507.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.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
From Version 6.0.0-beta.21230.1 -> To Version 6.0.0-beta.21257.1
* Update dependencies from https://github.com/dotnet/runtime build
20210510.1
Microsoft.NETCore.ILAsm , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.DotNetHost , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Runtime.CompilerServices.Unsafe , System.Text.Json
From Version 6.0.0-preview.5.21253.1 -> To Version 6.0.0-preview.5.21260.1
* Update dependencies from https://github.com/dotnet/arcade build
20210510.1
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageValidation , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21260.1
* Update dependencies from https://github.com/dotnet/icu build
20210510.1
Microsoft.NETCore.Runtime.ICU.Transport
From Version 6.0.0-preview.5.21253.1 -> To Version 6.0.0-preview.5.21260.1
* Update dependencies from https://github.com/dotnet/xharness build
20210510.1
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21260.1
* Update dependencies from https://github.com/dotnet/llvm-project build
20210510.1
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-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
From Version 9.0.1-alpha.1.21253.1 -> To Version 9.0.1-alpha.1.21260.1
* Update dependencies from https://github.com/dotnet/runtime-assets build
20210510.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.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
From Version 6.0.0-beta.21230.1 -> To Version 6.0.0-beta.21260.1
* Update dependencies from https://github.com/dotnet/hotreload-utils build
20210510.2
Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
From Version 1.0.1-alpha.0.21257.1 -> To Version 1.0.1-alpha.0.21260.2
* Update dependencies from https://github.com/dotnet/arcade build
20210511.6
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21261.6
* Update dependencies from https://github.com/dotnet/xharness build
20210511.1
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21260.1 -> To Version 1.0.0-prerelease.21261.1
* Update dependencies from https://github.com/dotnet/hotreload-utils build
20210511.2
Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
From Version 1.0.1-alpha.0.21260.2 -> To Version 1.0.1-alpha.0.21261.2
* Update dependencies from https://github.com/dotnet/xharness build
20210510.1
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21260.1
* Update dependencies from https://github.com/dotnet/hotreload-utils build
20210510.2
Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
From Version 1.0.1-alpha.0.21257.1 -> To Version 1.0.1-alpha.0.21260.2
* Update dependencies from https://github.com/dotnet/xharness build
20210511.1
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21260.1 -> To Version 1.0.0-prerelease.21261.1
* Update dependencies from https://github.com/dotnet/hotreload-utils build
20210511.2
Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
From Version 1.0.1-alpha.0.21260.2 -> To Version 1.0.1-alpha.0.21261.2
* Fix attribute diffs
* Update dependencies from https://github.com/dotnet/arcade build
20210513.1
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
From Version 6.0.0-beta.21256.1 -> To Version 6.0.0-beta.21263.1
* Update dependencies from https://github.com/dotnet/xharness build
20210513.1
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21255.1 -> To Version 1.0.0-prerelease.21263.1
* Fix package testing on net46*
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
Steve Pfister [Thu, 13 May 2021 20:30:21 +0000 (16:30 -0400)]
Bring Android arm64 tests back into PR builds (#52709)
Kevin Jones [Thu, 13 May 2021 20:09:12 +0000 (16:09 -0400)]
Detect presence of OpenSSL for AEAD algorithms on macOS
This makes the IsSupported values for AesCcm and AesGcm return false on macOS when the
OpenSSL shim library can't find a suitable OpenSSL, and makes AesCcm/AesGcm throw an
informative exception in those cases.
Additionally it fixes the IsSupported on ChaCha/Poly to not tear down the process when
OpenSSL isn't found on macOS.
Co-authored-by: Filip Navara <filip.navara@gmail.com>
David Fowler [Thu, 13 May 2021 20:06:08 +0000 (13:06 -0700)]
Make the callsite cache more thread safe (#52691)
* Make the callsite cache more thread safe
- Previously we would create duplicate callsites and because they weren't used to for anything critical, now we're using them as a lock per type and slot and to store singleton values cheaply. This means we need to make sure they are unique. Duplicates were being created in situations where there were connected graphs and lots of concurrency because there was no lock to ensure that only a single type would be processed at a time. This change adds that lock and adds tests.
Steve Harter [Thu, 13 May 2021 20:02:48 +0000 (15:02 -0500)]
Fix trimming issue with extension data (#52673)
Jo Shields [Thu, 13 May 2021 19:39:25 +0000 (15:39 -0400)]
Add MacCatalyst functional test (#52552)
Radek Doulik [Thu, 13 May 2021 19:24:51 +0000 (21:24 +0200)]
[tests] Fix CRLF issues in SM.Syndication (#52705)
Fixes: https://github.com/dotnet/runtime/issues/52135
When running `System.ServiceModel.Syndication` tests on windows and
targeting `Browser`, the line ending differs between host and target
systems. Use helper `LineEndingsHelper.Normalize` method to update
expected strings.
The `Browser` Environment.NewLine is `\n`, while windows use `\r\n`.
https://github.com/dotnet/runtime/blob/
5bd0edfe860e41bdfd690d3743e730594307292e/src/libraries/System.Private.CoreLib/src/System/Environment.UnixOrBrowser.cs#L51
Also set `BrowserHost` property for the build as well. It is also used
in `src/libraries/tests.proj`.
Aaron Robinson [Thu, 13 May 2021 19:04:46 +0000 (12:04 -0700)]
Low level API support for Objective-C interop. (#52146)
* Add Objective-C interop support.
* Include handling of HNDTYPE_REFCOUNTED when FEATURE_OBJCMARSHAL is defined (#47534)
* Allow overriding of Objective-C message send P/Invokes (#47721)
* Add new flag to MethodTable for types with ObjectiveCTrackedTypeAttribute.
Discover attribute during type load and set bit.
Update EagerFinalizer callout to query bit.
* Add testing for API
* Bridge API for propagating managed exception to native.
* Update GCEE interface to support GCServer scenario for Objective-C.
The new callbacks now fire when before the GC scans handles and is
non-concurrent.
* Comment added for ExceptionTracker non-NULL condition.
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Sergey Andreenko [Thu, 13 May 2021 17:02:11 +0000 (10:02 -0700)]
add support for genReg1/genReg2->SIMD8 store on x86 windows. (#52581)
* add a standart header for inst_RV_RV
* add support for EAX/EDX->SIMD8 store on x86 windows.
* fix the header.
Prashanth Govindarajan [Thu, 13 May 2021 17:01:41 +0000 (10:01 -0700)]
BinaryFormatter deprecation for System.Configuration.ConfigurationManager (#50531)
* First cut of deprecating BF usage
* Address comments
* sq
Eric Erhardt [Thu, 13 May 2021 16:34:06 +0000 (11:34 -0500)]
Move s_defaultSerializerOptions to JsonHelpers. (#52557)
This allows for JsonContent to be trimmed in a default Blazor WASM app.
Eric Erhardt [Thu, 13 May 2021 15:24:40 +0000 (10:24 -0500)]
Remove Alt-Svc parser on browser-wasm. (#52681)
Contributes to #44534
Radek Doulik [Thu, 13 May 2021 15:11:48 +0000 (17:11 +0200)]
[tests] Fix CRLF vs LF issues (#52536)
* Fixes: https://github.com/dotnet/runtime/issues/52134
When running `System.Numerics.Tensors` tests on windows and targeting
`Browser`,the line ending differs between host and target systems.
Compensate for that by using
`Assert.Equal(..., ignoreLineEndingDifferences: true)`.
Also replace the compile time new line when creating `expectedNoSpace`
string.
The `Browser` Environment.NewLine is `\n`, while windows use `\r\n`.
https://github.com/dotnet/runtime/blob/
5bd0edfe860e41bdfd690d3743e730594307292e/src/libraries/System.Private.CoreLib/src/System/Environment.UnixOrBrowser.cs#L51
* Use LineEndingsHelper, make CompiledNewline public
* Enable fixed tests
Matt Thalman [Thu, 13 May 2021 13:56:34 +0000 (08:56 -0500)]
Add section to interop guidelines about tracking dependencies (#52302)
* Add section to interop guidelines about tracking dependencies
* Set code owner
* Update wording
Kia Panahi Rad [Thu, 13 May 2021 13:26:32 +0000 (17:56 +0430)]
Fix typo (#52694)
Under "What should be in a BotR chapter" heading.
Mitchell Hwang [Thu, 13 May 2021 13:16:09 +0000 (09:16 -0400)]
Test ios tvos simulator functional tests (#52655)
* [iOS][tvOS][AOT] Run simulator AOT tests with TreatAsLocalProperty
* [tvOS] Include tvOS in MonoAOTCompiler arguments
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
dotnet-maestro[bot] [Thu, 13 May 2021 10:20:16 +0000 (10:20 +0000)]
Update dependencies from https://github.com/dotnet/emsdk build
20210512.1 (#52657)
[main] Update dependencies from dotnet/emsdk
Peter Sollich [Thu, 13 May 2021 08:43:11 +0000 (10:43 +0200)]
Stresslog fixes (#52601)
- Make regular (non-memory-mapped file based) stresslog work for clrgc.dll
- Fix interaction issue between GC and thread filters in StressLogAnalyzer
- Interpret small numbers for COMPlus_StressLogSize and COMPlus_TotalStressLogSize as GB rather than bytes
- Increment SOS_BREAKING_CHANGE_VERSION
Miha Zupan [Thu, 13 May 2021 07:01:21 +0000 (09:01 +0200)]
Fix empty byte[] bug in EventSource (#52602)
* Fix empty byte[] bug in EventSource
* Add some non-zero data to byte[] tests
* Remove leftover usings from testing
* Return Array.Empty for empty byte[]
* Pass correct pointer to Marshal copy
Miha Zupan [Thu, 13 May 2021 06:59:20 +0000 (08:59 +0200)]
Reduce UriBuilder allocations (#51826)
* Reduce UriBuilder allocations
* Make _uri field nullable
* Add Debug.Assert(success)
Zoltan Varga [Thu, 13 May 2021 06:48:51 +0000 (02:48 -0400)]
[mono] Fix generating invalid cpu description tables if two opcodes have the same name. (#52670)
Fixes https://github.com/dotnet/runtime/issues/52454.
Larry Ewing [Thu, 13 May 2021 01:28:14 +0000 (20:28 -0500)]
Be explicit about platform support (#52686)
we're standing up the msi builds and finalizing details that are important for that tooling
Nikola Milosavljevic [Thu, 13 May 2021 01:11:06 +0000 (18:11 -0700)]
New deps package for Fedora 34 (#52674)
Larry Ewing [Thu, 13 May 2021 01:08:14 +0000 (20:08 -0500)]
remove tvos-x64 pack (#52663)
WhiteBlackGoose [Wed, 12 May 2021 23:32:36 +0000 (02:32 +0300)]
Replacing `BOOL` with `bool` (#52585)
* Replaces all BOOL to bool in RyuJIT
Replaced all Windows' BOOL to bool in RyuJIT except
for WIN API related cases.
Fix #48317
* Replaced `TRUE` and `FALSE` constants
Replaced `TRUE` with `true` and `FALSE`
with `false` constants in RyuJIT except
Windows-specific cases.
* A couple of BOOLs replaced to bool
* Format issue fixed
Formatting patch applied
according to the instruction.
Thays Grazia [Wed, 12 May 2021 22:58:33 +0000 (19:58 -0300)]
[debugger][interpreter] Generate seq_points even when doesn't have debug information (#52632)
* Trying to generate seq_points even without debug info as it's done in methor-to-ir.
Sergey Andreenko [Wed, 12 May 2021 22:06:37 +0000 (15:06 -0700)]
Don't reset stack level when it is already set to the required value. (#52594)
Radek Doulik [Wed, 12 May 2021 21:58:03 +0000 (23:58 +0200)]
[tests] Fix CRLF issues in System.CodeDom tests (#52540)
Fixes: https://github.com/dotnet/runtime/issues/52107
When running `System.CodeDom` tests on windows and targeting
`Browser`, the line ending differs between host and target systems.
Add helper `LineEndingsHelper.Normalize` method to update expected
strings.
The `Browser` Environment.NewLine is `\n`, while windows use `\r\n`.
https://github.com/dotnet/runtime/blob/
5bd0edfe860e41bdfd690d3743e730594307292e/src/libraries/System.Private.CoreLib/src/System/Environment.UnixOrBrowser.cs#L51
John Tur [Wed, 12 May 2021 21:41:17 +0000 (17:41 -0400)]
Add obsoletions for System.Runtime (#52014)
* Add obsoletions for System.Runtime
* Fix tests
* Fix
* Update AppDomain obsoletion to SYSLIB0024 and augment message
* Add missing period to the SYSLIB0024 obsoletion message
* Update obsoletion message per feedback
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Vitek Karas [Wed, 12 May 2021 21:20:27 +0000 (23:20 +0200)]
Annotate required APIs with DynamicallyAccessedMemberTypes.Interfaces (#52461)
After the basic annotation of `Type.GetInterface` and `Type.GetInterfaces` this propagates this annotation to all places which require it. It also resolves warnings in all the places where this shows up.
For the most part this is just blindly propagating the annotations.
Most of the suppressions rely on the fact that is `IFoo` is referenced (and thus the `Type` instance of it exists at runtime), trimmer guarantees that it will keep it on all types which implement that interface. And also on additional fact that if `IFoo<>` is preserved, then all instantiations of it are also preserved. This is true for linker, but not necessarily true for AOT - that is we can do better if we don't have to make that assumption. For now I rely on that assumption.
Jan Vorlicek [Wed, 12 May 2021 21:04:12 +0000 (14:04 -0700)]
Modify JIT to support double mapped memory (#52600)
* Modify JIT to support double mapped memory
This change modifies JIT so that it can generate code into
double mapped memory. The code is written into RW mapped memory,
but the relative offsets are computed using the related RX locations.
The change doesn't modify the runtime to provide double mapped memory
yet, the JIT2EE interface allocMem returns the same addresses as RW and
RX. The runtime changes will be part of follow-up PRs. However, it was
already tested with the double mapping enabled locally.
It also changes signature of allocMem to pass everything in a single structure
Tomas Weinfurt [Wed, 12 May 2021 20:06:27 +0000 (13:06 -0700)]
fix pinning in quic (#52368)
* fix pinning in quic
* remove SafeMsQuicBufferHandle
* Update src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs
Co-authored-by: Cory Nelson <phrosty@gmail.com>
* Apply suggestions from code review
* more feedback from review
Co-authored-by: Cory Nelson <phrosty@gmail.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Larry Ewing [Wed, 12 May 2021 19:03:26 +0000 (14:03 -0500)]
Use the existing workload-id for now (#52660)
Mitchell Hwang [Wed, 12 May 2021 19:00:00 +0000 (15:00 -0400)]
[iOS][tvOS][tests] Re add ios tvos simulator functional tests (#52606)
* Revert "[iOS][tvOS] Remove AOT functional test projects (#52574)"
This reverts commit
16083f91a8c7b1cf246d8f8138950e1dcd7721d1.
* Cleanup iOS tvOS functional tests and test proj file
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Mitchell Hwang [Wed, 12 May 2021 18:49:27 +0000 (14:49 -0400)]
[Android][libraries] Active issue remaining android failing tests (#52654)
* [Android][libraries] Add System.Net.Http.Json.Functional.Tests ActiveIssue
* [Android][libraries] Add System.Runtime.Caching.Tests ActiveIssue
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Natalia Kondratyeva [Wed, 12 May 2021 18:24:41 +0000 (20:24 +0200)]
Put failing WebSockets tests under ActiveIssue for Android (#52647)
As per https://github.com/dotnet/runtime/pull/52052#issuecomment-
838655841, putting the failing tests under ActiveIssue.
Tracking issue: https://github.com/dotnet/runtime/issues/52645
Santiago Fernandez Madero [Wed, 12 May 2021 18:15:58 +0000 (11:15 -0700)]
React to API Compat bug fix around attribute diffing in members (#52629)
Bruce Forstall [Wed, 12 May 2021 16:36:19 +0000 (09:36 -0700)]
Introduce enum for BasicBlock and loop flags (#52410)
* Introduce enum for BasicBlock and loop flags
This gives a better debugging experience in Visual Studio. It
also improves type checking: there were a few places still using
`unsigned` instead of `unsigned __int64` when manipulating
BasicBlock flags.
* Make sure debugreturn and contracts are disabled for the JIT build
* Convert GenTree flags, debug flags, and call flags to enums
* Remove bad GT_HWINTRINSIC copy/paste code from GenTree::GetRegSpillFlagByIdx
Mitchell Hwang [Wed, 12 May 2021 15:40:55 +0000 (11:40 -0400)]
[iOS][libraries] Skip failing iOS tests with ActiveIssues and proj level skips (#51491)
In effort to assess the state of the iOS library tests, a number of tests will be skipped
Test suites that crash, hang, or have a significant number of failures (mostly 20+ failing unique test methods) are skipped on at the `tests.proj` level. Otherwise, `[ActiveIssue]` attributes have been attached to either the individual test methods that fail or the entire class if the whole test class fails. Any pre-existing `ActiveIssue` attribute associated with iOS had been reassessed to either remain or be closed.
A few test suites have been skipped because they fail with some form of `PlatformNotSupportedException`. `[SkipOnPlatform]` attributes are attached to the failing test methods.
All of the Issues can be tracked at https://github.com/dotnet/runtime/projects/48#column-9236436
The ActiveIssues and `tests.proj` exclusions have been tested on https://github.com/dotnet/runtime/pull/49917 as well.
-----------
This PR makes the following changes in the following files:
`src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj` - Removed `$(NetCoreAppCurrent)-iOS` from target frameworks as it is stated to currently only supported on Windows.
`src/libraries/tests.proj` - Update the test suites that need to be skipped at the project level, reducing the number and categorizing as a skip due to PNSE, a skip due to numerous failures, and a skip due to the suite crashing.
The remaining files changed are either:
`[ActiveIssue("<issue-url>", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)]`
`[SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS, "Not supported on iOS or tvOS.")]`
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Tammy Qiu <tammy.qiu@yahoo.com>
Ivan Zlatanov [Wed, 12 May 2021 15:36:34 +0000 (18:36 +0300)]
Fixed a bug in websocket receive, when a compressed frame with no payload is received. (#52621)
Fixed a bug where compressed frame of size 0, would have been prematurely marked as processed.
Compressed frames should always go through inflation in order to make sure
there is no leftover from previous receives.
Created a test that verifies the correct handling of empty compressed frame.
Fixes #52551
Marek Habersack [Wed, 12 May 2021 15:28:38 +0000 (17:28 +0200)]
[Android] Improve memory & pointer handling in Cryptography.Native.Android (#52638)
Context: https://github.com/dotnet/runtime/pull/52449
Context: https://github.com/dotnet/runtime/commit/
5d213e6761c5393619e476b766b8778446155503
This commit makes sure that all memory allocation via the standard POSIX
APIs is checked and, should the allocation fail, the application is
aborted. This strategy is chosen because whenever Unix allocation
fails, the memory resources are really exhausted and it is safer to
abort the application than risking thrashing memory and causing
unpredictable behavior of the application.
The same strategy is used with the string, byte and object array
allocation using Java JNI APIs. Allocator functions for these objects
return `NULL` whenever allocation fails and, additionally, throw a Java
`OutOfMemory` exception. The inline functions introduced to handle
allocation of the above objects check the return result, print
exceptions (if any) and abort the application. The `NewObject` JNI
function doesn't get the same kind of treatment because there's no way
for us to detect whether the object creation failed because of an
out-of-memory error or because its constructor threw an exception - in
both cases JNI will return `NULL`.
Additionally, some internally used functions are decorated with the
`nonnul` attribute (if supported by the compiler) to indicate which
function pointer arguments mustn't be `NULL`. This will not help
runtime invalid pointer detection, but it makes it harder to make
mistakes in code of passing a `NULL` value to a function that doesn't
expect it.
At the same time, the internal (static or hidden) functions not always
validate their pointer parameters. They instead rely on the calling
code to do it for them.
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
--- Addendum ---
Commit
5d213e6761c5393619e476b766b8778446155503 was accidentally merged
without a commit message, so to not miss the information/context that
was included there, here's the commit message:
POSIX `assert(3)` is used frequently throughout the code to check
validity of certain parameters or assumptions but also to control the
flow of the program. However, this approach works only in debug
builds (or, rather, when the `NDEBUG` macro is not defined during
compilation). In release builds (or when the `NDEBUG` macro is
defined), `assert` calls turn into no-ops. Therefore, they must not be
used to ensure that a certain code path is valid or a return value from
some function is correct etc.
Fix the above use of `assert` by replacing the calls with an inline
function that will check the assertion at all times and `abort()` the
application should the condition be `false`. This is a desired
behavior, because assertions are used only in places which absolutely
must meet the condition and if not, it's a serious bug either in the
library or the application.
Additionally, add validation checks (using the same assertion mechanism)
for all the pointers passed from the managed/external code that are
dereferenced locally passed to Java functions which require the pointers
to not be `NULL`.
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Maxim Lipnin [Wed, 12 May 2021 15:14:30 +0000 (18:14 +0300)]
Annotate FileStream.Lock/Unlock as unsupported on iOS/tvOS (#52433)
Part of #47910.
FileStream.Lock/Unlock methods throw PNSE with Locking/unlocking file regions is not supported on this platform. Use FileShare on the entire file instead.
Andy Ayers [Wed, 12 May 2021 15:13:20 +0000 (08:13 -0700)]
JIT: work around issues invoking the unboxed entry when prejitting (#52605)
If the jit devirtualizes a call to a value class method, it will try
and update the call to invoke the unboxed entry for the method. This
entry sometimes requires an explicit type context argument.
There are cases where the prejit host seemingly does not properly deduce
when the unboxed entry requires this extra argument. Until this is resolved,
defer this optimization when prejitting.
See #52483 for details.
Jose Perez Rodriguez [Wed, 12 May 2021 14:41:20 +0000 (07:41 -0700)]
Removing some linker warnings that are no longer needed (#52457)
* Removing all shared framework linker noWarns
* Addressing feedback and fixing Browser and windows legs
* Renaming ILLinkDescriptors file
Anthony Shaw [Wed, 12 May 2021 13:38:31 +0000 (23:38 +1000)]
Use of WCHAR in `corinfo.h` leaves consumer with dependency on pal_mstypes/windows.h (#52630)
* WCHAR usage leaves dependency on <windows.h>/pal_mstypes
* Cast on return
Radek Doulik [Wed, 12 May 2021 12:26:45 +0000 (14:26 +0200)]
[wasm] Make windows wasm build run tests on helix (#51951)
Some of the tests were disabled for now: https://github.com/dotnet/runtime/issues/52138
* Make windows wasm build run tests on helix
* Update sendtohelixhelp.proj
* More changes for wasm/windows
* More changes to run on windows
* Fix xharness output paths
* Disable failing tests
* Use ProjectExclusions when adding wasm samples
* Restore platform matrix
* Disable the tests only on windows/helix
Also make the new property groups conditional to improve perf
Marek Habersack [Wed, 12 May 2021 09:53:31 +0000 (11:53 +0200)]
[Android] Improve assumption handling in Cryptography.Native.Android (#52449)
Johan Lorensson [Wed, 12 May 2021 09:21:01 +0000 (11:21 +0200)]
Add streaming support for EventPipe env trace file. (#52443)
* Add streaming support for EventPipe env trace file.
Using EventPipeOutputPath and EventPipeConfig it is possible to setup
an EventPipe file session running during complete runtime execution.
There was however no logic that would flush this session, so if number
of events included in file exceeded max buffer all subsequent events
would be lost. Depeding on use case (like startup profiling) that could
be acceptable, unless rundown events where needed, since they would
likely be lost unless buffer size was way biffer than default limit (1MB).
Adding ability to run a streaming thread (similar to IPC) together with
file sessions would greatly increase usage of the default file session
and could then be real useful in cases where regular diagnostic
tooling won't work or increase the complexity of the profilig task.
In order to preserve old behavior, a new EventPipeSessionType has been
introduced, EP_SESSION_TYPE_FILESTREAM and that will work similar to
existing EP_SESSION_TYPE_FILE, but also start a streaming thread,
making sure buffer content is periodically flushed into file, reduce
risk of getting a flooded buffer manager triggering lost events.
For the default trace file, old behavior is kept and there is a new env
variable, COMPlus_EventPipeOutputStreaming that can be used to enable
using EP_SESSION_TYPE_FILESTREAM instead of EP_SESSION_TYPE_FILE for the
default file session.
Miha Zupan [Wed, 12 May 2021 05:09:46 +0000 (07:09 +0200)]
Event listener overhead reduction pt. 3 (#52455)
* Remove unused field
* Reduce common-case EventWrittenEventArgs overheads
Store PayloadNames on EventMetadata instead of EventWrittenEventArgs
* Avoid duplication around TraceLoggingEventTypes
* Move GetParameterNames into property getter
* While => For
* Add EventMetadata.ParameterTypes
* Defer fetching ParameterTypes
* Add RequiresUnreferencedCode attribute to TraceLoggingEventTypes getter
* Revert init => get
* ActivityId => RelatedActivityId
* Remove eventId arg from DispatchToAllListeners
* Store the first caller's ActivityId in EventWrittenEventArgs
* Move ActivityId from MoreInfo to base object
Daniel Hix [Wed, 12 May 2021 00:12:21 +0000 (19:12 -0500)]
Update the exception thrown to be more useful when AsnEncodedData has a null Oid value
Kevin Jones [Wed, 12 May 2021 00:11:03 +0000 (20:11 -0400)]
Use "OR_GREATER" conditional compilation instead of explicit legacy build conditionals
Drew Scoggins [Tue, 11 May 2021 23:50:32 +0000 (16:50 -0700)]
Fix timeout for Pizza app and add min app (#52626)
Steve Pfister [Tue, 11 May 2021 23:37:30 +0000 (19:37 -0400)]
Multi-target RuntimeConfigParser task (#52618)
Fixes https://github.com/dotnet/runtime/issues/52571
Anton Lapounov [Tue, 11 May 2021 22:32:46 +0000 (15:32 -0700)]
Allow overriding processor count via configuration setting (#52492)
Kevin Jones [Tue, 11 May 2021 22:25:46 +0000 (18:25 -0400)]
Support ChaCha20 Poly1305 on Unix
Like AES-GCM and AES-CCM, the macOS build uses OpenSSL for the implementation.
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Mike McLaughlin [Tue, 11 May 2021 21:37:55 +0000 (14:37 -0700)]
Fix Thread::SetProfilerFilterContext usage (#52607)
Add holder to catch exceptions and clear context.
Issue: https://github.com/dotnet/runtime/issues/47895
Steve Pfister [Tue, 11 May 2021 19:39:49 +0000 (15:39 -0400)]
Make sure the RuntimeConfigParser is in the Mono workload (#52609)
It was defined as a pack before, but not included in the workload def
Sergio Pedri [Tue, 11 May 2021 19:10:40 +0000 (21:10 +0200)]
Optimize System.HexConverter.IsHexChar on 64 bits (#52470)
Karel Zikmund [Tue, 11 May 2021 18:57:33 +0000 (20:57 +0200)]
GetLinuxNetworkInterfaces - avoid crash when /proc/net/route is inaccessible (#52376)
Ignore UnauthorizedAccessException when reading route files.
Fixes #49946
Jan Vorlicek [Tue, 11 May 2021 18:26:30 +0000 (11:26 -0700)]
Remove unused InterceptStub (#52401)
This stub is not used anywhere in the current runtime.
Steve Pfister [Tue, 11 May 2021 18:15:51 +0000 (14:15 -0400)]
Ensure MacCatalyst default http handler is the same as iOS (#52229)
Andrii Kurdiumov [Tue, 11 May 2021 17:08:59 +0000 (23:08 +0600)]
Add list of prerequisites for Gentoo (#50317)
Annchous [Tue, 11 May 2021 17:04:54 +0000 (20:04 +0300)]
Unnecessary cryptographic derived types obsoletions (#52303)
* add new obsoletion ID
* nowarn for new obsoletion
* add obsoletions to csproj
* AesCryptoServiceProvider obsoletion
* DESCryptoServiceProvider obsoletion
* MD5CryptoServiceProvider obsoletion
* RC2CryptoServiceProvider obsoletion
* SHA1CryptoServiceProvider obsoletion
* SHA256CryptoServiceProvider obsoletion
* SHA384CryptoServiceProvider obsoletion
* SHA512CryptoServiceProvider obsoletion
* TripleDESCryptoServiceProvider obsoletion
* add obsoletions to csproj
* *Managed obsoletions
* add pragma suppress for types usages
* add nowarn in tests csproj
* add documentation
* add nowarn to new identified tests csproj
* add pragma suppress for types usages #2
* update documentation
* fix md5 usage
* Fix indentation
* fix obsoletions inclusion in csproj
* remove extra obsoletions inclusion in csproj
* De-dupe project items that were in both the browser and non-browser configs. Ensure Obsoletions.cs is included in all configs.
* Remove duplicate RandomNumberGeneratorImplementation.cs reference
* Update documentation
* Remove duplicate Obsoletions.cs from project file (introduced in merge)
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Co-authored-by: Jeff Handley <jeff.handley@microsoft.com>
Ivan Zlatanov [Tue, 11 May 2021 15:53:22 +0000 (18:53 +0300)]
Fix for failing WebSocket deflate test on ARM (#52052)
Reducing the number of times Random.Next is called to improve runtime performance of test on ARM.
Fixes #52031
Viktor Hofer [Tue, 11 May 2021 15:40:30 +0000 (17:40 +0200)]
Stop harvesting S.IO.Pipes.AccessControl (#52294)
* Stop harvesting S.IO.Pipes.AccessControl
The removed configurations (netstandard1.3, netcoreapp2.1, net46) aren't
built anymore. Instead the already built matching binaries from the
latest available packages are redistributed when packaging these
libraries.
Dropping these assets as the minimum supported set of platforms are ones
that support netstandard2.0 and are still in-support. As an example,
also dropping the netcoreapp2.1 asset which isn't supported anymore and
upgrading it to netcoreapp3.1.. For .NET Framework, there's still a
net461 configuration present to avoid binding redirect issues.
The ugly part of this change is that System.IO.Pipes.AccessControl
depends on an internal API of System.IO.Pipes for all .NETCoreApp
configurations. Because of that, for configurations that don't apply
to the current band (netcoreapp3.1, net5.0), the runtime packs need
to be downloaded so that runtime assembly can be referenced. Ideally
we will come up with a better solution to not require runtime packs
to be fetched as that adds 60MB of download size to the repo and breaks
source build.
Contributes to #47530
* Use non shipping refs for Pipes typeforwards
Levi Broderick [Tue, 11 May 2021 15:22:44 +0000 (08:22 -0700)]
Make RandomNumberGenerator.Create return a singleton
This makes the implementation of `RandomNumberGenerator.Create()` return a singleton instance.
So apps which need to call `RandomNumberGenerator.Create()` instead of using the static accelerator
APIs can still take advantage of a non-allocating factory.
Attempting to dispose of the returned singleton instance will no-op. The implementation of
`RandomNumberGenerator.Create(string)` is not changed. Using that API will continue to go through
the normal `CryptoConfig` activation code paths.
Karel Zikmund [Tue, 11 May 2021 14:52:14 +0000 (16:52 +0200)]
Disable SocketsHttpHandlerTest_Http2.SocketSendQueueFull_RequestCanceled_ThrowsOperationCanceled on OSX (#52556)
Disable test SocketsHttpHandlerTest_Http2.SocketSendQueueFull_RequestCanceled_ThrowsOperationCanceled on OSX
Disabled test tracked by #44352
Aleksey Kliger (λgeek) [Tue, 11 May 2021 13:45:14 +0000 (09:45 -0400)]
[aot] Add JustInterp Mode to the MonoAOTCompiler task (#52560)
In this mode we pass `--aot=interp` to the AOT compiler. This will _not_ AOT
the managed methods in the specified assemblies, but it will AOT the
trampolines and wrappers necessary for the interpreter to run the methods and
to interoperate with native P/Invokes and unmanaged callbacks.
Mitchell Hwang [Tue, 11 May 2021 13:11:42 +0000 (09:11 -0400)]
[iOS][tvOS] Remove AOT functional test projects (#52574)
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Anthony Shaw [Tue, 11 May 2021 13:03:23 +0000 (23:03 +1000)]
Fix typo in interface for ICorDynamicInfo::getBoundaries() (#52583)
Vitek Karas [Tue, 11 May 2021 11:51:55 +0000 (13:51 +0200)]
Improve trimmer suppressions in async code (#52432)
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Anton Firszov [Tue, 11 May 2021 10:30:38 +0000 (12:30 +0200)]
Relax Socket.DualMode exception behavior (#50585)
Stop throwing from Socket.DualMode getter for IPV4 sockets, return false instead.
Anton Firszov [Tue, 11 May 2021 09:03:08 +0000 (11:03 +0200)]
HttpStress: Disable firewall in Windows runs (#52381)
#50854 seems to be rooted in an unknown firewall problem, and from the POV of http stress testing it's a false negative. We need a quick solution to remove this failure type, because the high amount failures renders our stress test reports useless. Since the build agents do not have a public IP, it seems OK to disable the Windows firewall for the runs.
Karel Zikmund [Tue, 11 May 2021 08:57:10 +0000 (10:57 +0200)]
Disable System.Net.Sockets.Tests.LoggingTest.EventSource_EventsRaisedAsExpected (#52563)
Karel Zikmund [Tue, 11 May 2021 08:24:58 +0000 (10:24 +0200)]
Disable Http2_MultipleConnectionsEnabled_IdleConnectionTimeoutExpired_ConnectionRemovedAndNewCreated (#52555)
Disable test System.Net.Http.Functional.Tests.SocketsHttpHandlerTest_Http2.Http2_MultipleConnectionsEnabled_IdleConnectionTimeoutExpired_ConnectionRemovedAndNewCreated
Disabled test tracked by #43877
Mike McLaughlin [Tue, 11 May 2021 03:18:03 +0000 (20:18 -0700)]
Fix Thread::SetProfilerFilterContext usage (#52575)
Issue: https://github.com/dotnet/runtime/issues/47895
Maoni Stephens [Tue, 11 May 2021 02:51:02 +0000 (19:51 -0700)]
fixing assert for accounting (#52573)
I was going to change this in my last checkin but accidentally missed it. in `sweep_region_in_plan` I had an assert that says the survived we calculate should be exactly the same as what we recorded but this is not necessarily the case for server GC - the recorded could be a bit bigger as multiple threads might try to mark the same object and both are counting the size.
Bruce Forstall [Mon, 10 May 2021 23:57:01 +0000 (16:57 -0700)]
Improve JIT debugging under SuperPMI (#52427)
Add a `compMethodSuperPMIIndex` Compiler member that gets set to
the current SuperPMI method context index if running under
SuperPMI.
Steve Pfister [Mon, 10 May 2021 23:54:40 +0000 (19:54 -0400)]
Update mono workload id and version to match the workload spec (#52468)
The id of the package we produce will be Microsoft.NET.Workload.Mono.ToolChain.Manifest-<sdk-band>
Egor Bogatov [Mon, 10 May 2021 22:29:23 +0000 (01:29 +0300)]
Fold "cmp & 1" to "cmp" (#52524)
Kunal Pathak [Mon, 10 May 2021 21:46:11 +0000 (03:16 +0530)]
Include register selection heuristics in "Allocating Registers" table (#52513)
* Print Heuristic used to allocate register in table
* some more fixes to heuristics
* Fixed all problems
* Better formatting
* cleanup
* Rename RegSel_ to STAT_
Adam Sitnik [Mon, 10 May 2021 21:32:58 +0000 (23:32 +0200)]
change if order to improve FileStream perf for cases when both buffers are of the same size (#51489)
* change if order to improve the perf for case where buffer.Length == _bufferSize
* add comment that explains what we are doing and why
* apply the optimization to ReadAsync as well
Prashanth Govindarajan [Mon, 10 May 2021 20:52:35 +0000 (13:52 -0700)]
Introduce the preview feature attribute (#52419)
* Introduce RequiresPreviewFeaturesAttribute
* Address comments and add a unit test
* Include Delegate and Interface
Address comments
Koundinya Veluri [Mon, 10 May 2021 20:48:05 +0000 (13:48 -0700)]
Remove JitBench (#52400)
It has been broken since a couple of years. The one from the `coreclr` repo still works to some degree if it is needed.
Aaron Robinson [Mon, 10 May 2021 20:31:39 +0000 (13:31 -0700)]
NSAutoreleasePool instance should be added to all threads. (#52023)
Add an NSAutoreleasePool to all managed create threads including the Main and Finalizer.
This expands the current support where support was only added to ThreadPool threads.
New feature switch was created and the ThreadPool one was removed.
- System.Threading.Thread.EnableAutoreleasePool
Updated AutoReleaseTest for the new scenarios.
dotnet-maestro[bot] [Mon, 10 May 2021 20:21:52 +0000 (20:21 +0000)]
Update dependencies from https://github.com/dotnet/emsdk build
20210426.1 (#52547)
[main] Update dependencies from dotnet/emsdk
t-mustafin [Mon, 10 May 2021 19:43:32 +0000 (22:43 +0300)]
Crossgen2 pipeline optimize (#51154)
* Initial implementation of crossgen2 pipeline mode
- Add --out-near-input option, which adds .ni. suffix to input filepath
and stores resulting ni.dll near original dll. In this mode --out option can be skipped.
- Add --single-file-compilation mode, which allows to compile all input files separately.
* [crossgen2] Optimize pipeline mode
Load input and reference modules only once by crossgen2 start.
Signed-off-by: Timur Mustafin <t.mustafin@partner.samsung.com>
* Feedback: make typeSystemContext with opened files
Construct new typeSystemContext with already opened PEReaders and PDBReaders.
Signed-off-by: Timur Mustafin <t.mustafin@partner.samsung.com>
Co-authored-by: Gleb Balykov <g.balykov@samsung.com>
Eric Erhardt [Mon, 10 May 2021 19:00:48 +0000 (14:00 -0500)]
Remove the HTTP2 and HTTP3 implementations on browser-wasm. (#52420)
* Remove the HTTP2 and HTTP3 implementations on browser-wasm.
This allows for HPackEncoder and QPackEncoder to be trimmed in browser wasm.
Contributes to #44534
Aleksey Kliger (λgeek) [Mon, 10 May 2021 18:58:06 +0000 (14:58 -0400)]
[System.Runtime.Loader] Add hot reload test infrastructure (#51144)
Adding infrastructure for hot reload testing.
For each test we define a new library assembly project. The `.csproj` has a `DeltaScript` property that specifies a JSON file that lists the name of an initial source file, and a list of updated versions of that file. The https://github.com/dotnet/hotreload-utils Microsoft.DotNet.HotReload.Utils.Generator.BuildTool nuget .targets file will run a generator tool during the build to read the delta script and creates metadata, IL and PDB deltas that incorporate the updates.
The main testsuite references all the test assemblies, and when a test runs, it calls `ApplyUpdateUtil.ApplyUpdate` to load subsequent deltas and then compares the results before and after an update.
Dependencies:
- https://github.com/dotnet/hotreload-utils - there is now a `Microsoft.DotNet.HotReload.Utils.Generator.BuildTool` MSBuild targets nupkg on the `dotnet6-transport` nuget feed.
- If `DOTNET_MODIFIABLE_ASSEMBLIES` is not set in the environment, we use remote executor to run the tests.
Mono is technically enabled, but practically it's not running anywhere:
- We have not enabled the MonoMetadataUpdate feature support on desktop linux or macos
- For wasm, ios and Android since we don't have remote executor support, we would need to adjust the test pipelines to pass the `DOTNET_MODIFIABLE_ASSEMBLIES` flag via xharness (and the app builder tasks).
- For ios and Android we would need to enable the interpreter as the execution engine, otherwise the tests are skipped.
To try it out locally with CoreCLR run:
```
./dotnet.sh build src/libraries/System.Runtime.Loader/tests /t:Test
```
For mono, build the runtime with `/p:MonoMetadataUpdate=true` and setenv `MONO_ENV_OPTIONS=--interp`
---
* [System.Runtime.Loader] Add hot reload test infrastructure
Adding infrastructure for hot reload testing.
* Make a proper task for computing hotreload-delta-gen output files
* Don't need DeltaCount property, compute from json
Compute the number of deltas that hotreload-delta-gen will produce by parsing the json script and counting the number of changes.
* Add dependency on hotreload-delta-gen tool
* use 'dotnet tool run hotreload-delta-gen' to generate EnC deltas
* Use remote executor if DOTNET_MODIFIABLE_ASSEMBLIES is not set
* Use DotNetTool property to run hotreload-delta-gen
just `dotnet tool run hotreload-delta-gen` can fail on 6.0 preview 2 because of borked argument parsing
* Don't run on Mono for now
1. mobile devices and wasm will need xharness or the app builder tasks to set the DOTNET_MODIFIABLE_ASSEMBLIES environment variable.
2. for console apps, we need the hot reload capabilities API to check if the current runtime can do updates
* bump hotreload-delta-gen package version
* Run tests on Mono if feature enabled and interp is used
* fix remote executor detection
just calling RemoteExecutor.IsSupported on wasm throws
```
System.TypeInitializationException: The type initializer for 'Microsoft.DotNet.RemoteExecutor.RemoteExecutor' threw
an exception.
---> System.PlatformNotSupportedException: System.Diagnostics.Process is not supported on this platform.
```
* remove unneeded DefineConstants
* Use `$(TargetPath)` as input to ComputeDeltaOutputNames
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
* drop "BuildingProject" property check
It's for the old project style, only
* Use Microsoft.DotNet.HotReload.Utils.Generator.BuildTool instead of hotreload-delta-gen
Use an msbuild target nuget instead of the CLI tool
* Use well known version for Generator BuiltTool version
* Use published Generator.BuildTool package
* fix typos, indentantion; add copyright headers
* Remove ComputeDeltaFileOutputNames use nuget version
The Microsoft.DotNet.HotReload.Utils.Generator.BuildTool nuget now includes a task to compute the output names. So the targets in the nuget are entirely self-contained now - incremental builds and project references should work now.
Bump to version 1.0.1 of Generator.BuildTool which has the necessary targets
* Fix style nits; add more copyright headers
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Juan Hoyos [Mon, 10 May 2021 18:39:41 +0000 (11:39 -0700)]
Fix binlog names and paths for clr managed assets (#52341)
Ryan Lucia [Mon, 10 May 2021 18:35:09 +0000 (14:35 -0400)]
[mono] Add monovm_initialize_preparsed for Android (#52304)
* [mono] Add monovm_initialize_preparsed for Android
Naming on the new structs TBD
* Fixes