Egor Bogatov [Tue, 23 Feb 2021 20:47:32 +0000 (23:47 +0300)]
Add progressbar to SuperPMI.py script (#48649)
Juan Hoyos [Tue, 23 Feb 2021 19:10:26 +0000 (11:10 -0800)]
Update workflow doc to include a rough disk size minimum requirement (#48657)
* Update workflow doc to include a rough disk size minimum requirement
Viktor Hofer [Tue, 23 Feb 2021 19:06:22 +0000 (20:06 +0100)]
Revert "Fix installer build on Alpine (#48505)" (#48651)
This reverts commit
c9fe433ebb3e5a489083fda8582861926596a41e.
Roman Marusyk [Tue, 23 Feb 2021 18:42:57 +0000 (20:42 +0200)]
Throw an ObjectDisposedException instead of InvalidOperationException after Process object has been disposed (#46593)
fixes #45149
SingleAccretion [Tue, 23 Feb 2021 17:25:02 +0000 (20:25 +0300)]
Make it clear the subset flag can be omitted (#47691)
* Make it clear the subset flag can be omitted
* Just mention that the subset flag can be implicit
dotnet-maestro[bot] [Tue, 23 Feb 2021 17:01:03 +0000 (17:01 +0000)]
Update dependencies from https://github.com/dotnet/icu build
20210222.1 (#48644)
[master] Update dependencies from dotnet/icu
Stephen Toub [Tue, 23 Feb 2021 16:31:17 +0000 (11:31 -0500)]
Enable char.Is{High}Surrogate(string, int) to be trimmed in default Blazor wasm app (#48621)
And simpler/faster code.
Marek Safar [Tue, 23 Feb 2021 15:22:27 +0000 (16:22 +0100)]
Compile native AppleCryptoNative_SecCopyErrorMessageString for ios/tvos
It's referenced from a lot of managed placed
Egor Bogatov [Tue, 23 Feb 2021 15:11:24 +0000 (18:11 +0300)]
Fix C# warning in Comparer_get_Default (#48643)
Adam Sitnik [Tue, 23 Feb 2021 14:40:59 +0000 (15:40 +0100)]
implement test for Long Paths support in ProcessModule.FileName (#46685)
Jo Shields [Tue, 23 Feb 2021 14:29:59 +0000 (09:29 -0500)]
Add a Mono ARM64 runtime pack & test build (#48532)
LateApexEarlySpeed [Tue, 23 Feb 2021 14:03:35 +0000 (22:03 +0800)]
issue-44801 EnsureCapacity Apis For List Stack Queue (#47149)
* issue-44801 Initial commit: public List.EnsureCapacity.
* Create Stack.EnsureCapacity().
* issue-44801 Fix comment for Stack.
* issue-44801 Fix comment: Move temp MaxArrayLength into near usage scope for Stack.
* issue-44801 Fix comment for List.
* issue-44801 Create EnsureCapacity for Queue.
* issue-44801 Create tests for List.EnsureCapacity.
* issue-44801 Create tests for Stack.EnsureCapacity.
* issue-44801 Create tests for Queue.EnsureCapacity.
* issue-44801 Update version if updating internal buffer.
* issue-44801 Update test cases to verify invalidating enumeration (List, Stack, Queue).
* issue-44801 Improve code change for List:
1. Avoid incrementing version number twice in one Insert (or Add) method call;
2. Avoid more capacity check for Insert (or Add) method.
* issue-44801 Fix comments: consider integer overflow; refactor methods.
* Update src/libraries/System.Private.CoreLib/src/System/Collections/Generic/List.cs
Fix comment: update xml doc.
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
* ensure same algorithm is used for all resize operations
* revert array length check in List.EnsureCapacityCore
* remove GrowFactor constant
* skip large capacity tests on mono.
* Fix overflow handling when capacity < MaxArrayLength; add clarifying comments
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
dotnet-maestro[bot] [Tue, 23 Feb 2021 13:38:32 +0000 (13:38 +0000)]
[master] Update dependencies from dotnet/runtime dotnet/xharness (#48585)
[master] Update dependencies from dotnet/runtime dotnet/xharness
- Merge branch 'master' into darc-master-
d9d4c102-0da3-4e51-b50a-
daa5955aadce
Jan Vorlicek [Tue, 23 Feb 2021 11:31:00 +0000 (03:31 -0800)]
Fix ArgIterator::GetNextOffset for macOS arm64 (#48632)
* Fix ArgIterator::GetNextOffset for macOS arm64
The ArgIterator::GetNextOffset method was not aligning offsets it returns
for reference types and some others. That was causing coreclr test failures
with GCStress mode 3.
This change fixes it by properly aligning the returned offsets.
* Fix indentation
Adeel Mujahid [Tue, 23 Feb 2021 09:00:28 +0000 (11:00 +0200)]
Fix installer build on Alpine (#48505)
* Fix installer build on Alpine
* Update src/tests/build.sh
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Marek Safar [Tue, 23 Feb 2021 08:09:59 +0000 (09:09 +0100)]
Build unsupported version of System.Security.Cryptography.OpenSsl for mobile targets (#48595)
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Carlos Sanchez [Tue, 23 Feb 2021 03:29:54 +0000 (19:29 -0800)]
CA1200 -> Info (#48612)
Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
Zoltan Varga [Tue, 23 Feb 2021 03:19:51 +0000 (22:19 -0500)]
Remove 'domain' arguments from the reflection object creation functions. (#48586)
* Remove 'domain' arguments from the reflection object creation functions.
* Remove some more domain usage.
Sergey Andreenko [Tue, 23 Feb 2021 03:13:49 +0000 (19:13 -0800)]
fix an old test (#48627)
Andy Ayers [Tue, 23 Feb 2021 02:47:17 +0000 (18:47 -0800)]
Refactor code that considers guarded devirtualization (#48611)
Merge two similar hunks of code.
Also, unblock guarded devirtualization when prejitting, as we may see class
guesses via static PGO.
Stephen Toub [Tue, 23 Feb 2021 01:43:50 +0000 (20:43 -0500)]
Special-case Enumerable.SequenceEqual for byte[] (#48287)
Tarek Mahmoud Sayed [Tue, 23 Feb 2021 00:49:17 +0000 (16:49 -0800)]
Add ActivitySource.CreateActivity methods (#48374)
* Add ActivitySource.CreateActivity methods
* Address the feedback
* Add IdFormat parameter to ActivitySource.Create and fix the whole IdFormat logic
* Address @noahfalk feedback
Viktor Hofer [Tue, 23 Feb 2021 00:37:40 +0000 (01:37 +0100)]
Set nuspec packaging properties correctly (#48625)
Define PackageProjectUrl which is the public facing property to specify
a project url in a nuspec. Arcade defaults PackageProjectUrl to
RepositoryUrl if it isn't set. RepositoryUrl was incorrectly set to
git://github.com/dotnet/runtime instead of
https://github.com/dotnet/runtime which cause PackageProjectUrl to use
that incorrect value as well which ultimately results in nuget.org
failing package validation and refusing to add the package.
Also changing ProjectUrl to the previous https://dot.net value which is
the expected url to the dotnet project. In addition to that, specifying
Owners which aren't set anymore in 6.0.
Adding the ProjectUrl property as well as the
Microsoft.DotNet.Build.Tasks.Packaging package depends on it. That line
can be removed after the fix to not override its value unconditionally
is merged and consumed.
Eric Erhardt [Mon, 22 Feb 2021 23:20:30 +0000 (17:20 -0600)]
Remove unnecessary msbuild-sdk from global.json (#48599)
* Remove unnecessary msbuild-sdk from global.json
This line was meant to delineate between sdks that were auto-updated by different PRs. But we have since switched to no longer auto-update these SDKs, so there is no reason for this line anymore.
* Reorder so hard-coded entries are in the middle.
Kevin Jones [Mon, 22 Feb 2021 20:54:33 +0000 (15:54 -0500)]
Use SHA256 one-shot for CrlCache
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Kevin Jones [Mon, 22 Feb 2021 20:53:59 +0000 (15:53 -0500)]
Add static PBKDF2 one-shot methods
This avoids the disposable object creation for Rfc2989DeriveBytes and the
state tracking.
Since the one-shots just call into platform routines (when available) it
should allow for higher iteration counts for the same clock time.
Kevin Jones [Mon, 22 Feb 2021 20:51:47 +0000 (15:51 -0500)]
EmptyAiaResponseIsIgnored should use incomplete chain.
Since the certificate names were the same, different tests were
colliding with caches since they had the same certificate name.
In addition to the simple fix, this changes the test to build a partial
chain using two intermediates. The leaf's issuing intermediate is
added to the ExtraStore and the second intermediate is expected
to be fetched by AIA (and fail with an empty response).
This is to help coerce chain builders treat it as a partial chain,
and can actually make some progress, as opposed to the leaf being
treated as an invalid root.
Zoltan Varga [Mon, 22 Feb 2021 20:35:17 +0000 (15:35 -0500)]
Make sure pal_icushim_static.c is linked in even if no symbols are used from it, so the EMSCRIPTEN_KEEPALIVE functions in it are actually kept. (#48550)
Fan Yang [Mon, 22 Feb 2021 20:01:10 +0000 (15:01 -0500)]
Support PolynomialMultiplyWideningLower and PolynomialMultiplyWideningUpper (#48525)
Viktor Hofer [Mon, 22 Feb 2021 19:38:21 +0000 (20:38 +0100)]
Minor msbuild code cleanup in installer partition (#48603)
* Minor code clean-up in installer partition
* Move prepare-artifacts.proj into installer root
David Wrighton [Mon, 22 Feb 2021 19:30:05 +0000 (11:30 -0800)]
Package dotnet-pgo as a dotnet tool (#48542)
- The package is marked as non-shipping as we're not ready to make it part of the official product at this time, but this should make it easier to consume in downstream repos.
Zoltan Varga [Mon, 22 Feb 2021 19:02:32 +0000 (14:02 -0500)]
Transition JIT memory management from domains to memory managers (#48483)
* [jit] Add a MonoJitMemoryManager structure, which is the same as the MonoJitDomainInfo structure, but owned by a MonoMemoryManager instead of a domain.
* Move static_rgctx_trampoline_hash to MonoJitMemoryManager.
* Move jump_target_hash to MonoJitMemoryManager.
* Move jump_trampoline_hash to MonoJitMemoryManager.
* Move jit_trampoline_hash to MonoJitMemoryManager.
* Move delegate_trampoline_hash to MonoJitMemoryManager.
* Move method_code_hash to MonoJitMemoryManager.
* Move more fields to MonoJitMemoryManager.
* Move llvm data to MonoJitMemoryManager.
* Move arch_seq_points field to MonoJitMemoryManager.
* Remove unused fields from MonoJitDomainInfo.
* Use the default alc memory manager only for now.
* Remove MonoJitDomainInfo which is now unused.
Elinor Fung [Mon, 22 Feb 2021 18:50:45 +0000 (10:50 -0800)]
Read basic properties of a X509 certificate using Android-built-in Crypto APIs (#48425)
Viktor Hofer [Mon, 22 Feb 2021 18:05:55 +0000 (19:05 +0100)]
Remove hardcoded PackageVersion in Platforms pkg (#48596)
Mapping the package to `$(ProductVersion)` would be wrong in servicing cases. Hence just removing the hardcoded value entirely.
Sung Yoon Whang [Mon, 22 Feb 2021 17:28:45 +0000 (09:28 -0800)]
Fix ThreadPool events validation test (#48588)
* Fix ThreadPool events validation test
* space
Sven Boemer [Mon, 22 Feb 2021 17:22:39 +0000 (09:22 -0800)]
Remove unaligned offsets for mapped layout (#42464)
* Remove unaligned offsets for mapped layout
* Assert on windows only
- Unix will use the mapped layout with an offset for bundled assemblies
- Windows still should't create a mapped layout for bundles
dotnet-maestro[bot] [Mon, 22 Feb 2021 17:12:32 +0000 (18:12 +0100)]
[master] Update dependencies from mono/linker (#48597)
Microsoft.NET.ILLink.Tasks
From Version 6.0.100-preview.2.21118.4 -> To Version 6.0.100-preview.2.21122.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Viktor Hofer [Mon, 22 Feb 2021 16:54:36 +0000 (17:54 +0100)]
Delete publish-final.proj and clean-up installer.tasks unused files (#48598)
* Delete publish-final.proj and delete unused installer.tasks files
* Avoid extra restore phase for tasks
The repo local tasks don't participate in the repo restore anymore,
hence avoiding the extra restore phase which should improve reliability
and build times.
Viktor Hofer [Mon, 22 Feb 2021 15:53:49 +0000 (16:53 +0100)]
Delete updateversions.proj (#48593)
dead code
Eric Mutta [Mon, 22 Feb 2021 13:54:03 +0000 (16:54 +0300)]
Fix doc comment typo in JsonSerializerOptions.cs (#48590)
The following sentence in the doc comments for the `IgnoreReadOnlyFields` member:
> A property is read-only if it isn't marked with the <c>readonly</c> keyword.
Should read:
> A field is read-only if it is marked with the <c>readonly</c> keyword.
Eric Mutta [Mon, 22 Feb 2021 13:52:10 +0000 (16:52 +0300)]
Fix another doc comment typo in JsonSerializerOptions.cs (#48591)
* Fix another doc comment typo in JsonSerializerOptions.cs
The following sentence in the doc comments for the `IncludeFields` member:
> Determines whether fields are handled serialization and deserialization.
Should read:
> Determines whether fields are handled **during** serialization and deserialization.
* Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
Dixin [Mon, 22 Feb 2021 13:43:14 +0000 (05:43 -0800)]
Add LINQ APIs for Index and Range (#28776) (#48559)
* Implement dotnet/runtime#28776: Implement LINQ APIs for index and range.
* Implement dotnet#28776: Implement LINQ APIs for index and range.
* Implement dotnet#28776: LINQ APIs for index and range.
* Implement dotnet#28776: LINQ APIs for index and range.
* Implement dotnet#28776: LINQ APIs for index and range.
* Implement dotnet#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Code review update.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Code review update.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Code review update.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Update ElementAt, keep the original behavior.
* Implement dotnet#28776: LINQ APIs for index and range. Update ElementAt, keep the original behavior.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Update ElementAt, keep the original behavior.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Add unit tests for ElementAt, ElementAtOrDefault.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Update unit tests.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Update unit tests.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Update unit tests.
* Implement dotnet/runtime#28776: LINQ APIs for index and range. Update for merge.
* Implement #28776: LINQ APIs for index and range. Update unit tests.
Vlad Brezae [Mon, 22 Feb 2021 13:34:08 +0000 (15:34 +0200)]
[interp] Inline more AggressiveInlining methods (#48513)
* [interp] Inline more AggressiveInlining methods
By default, the interpreter stops inlining when encountering a call that it cannot inline or a throw. Inline the method anyway if the aggressive inlining attribute is present.
* [interp] Fix some long conditional branch opcodes
Viktor Hofer [Mon, 22 Feb 2021 11:49:14 +0000 (12:49 +0100)]
Delete unused installer properties (#48569)
* Delete unused msbuild properties, targets and files
Dan Moseley [Mon, 22 Feb 2021 01:25:21 +0000 (17:25 -0800)]
Improve S.DS.P tests, fix async API, and improve error messages (#47703)
Geoff Kizer [Mon, 22 Feb 2021 00:17:48 +0000 (16:17 -0800)]
Simplify connection usability logic (#48446)
* simplify connection usability logic
Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
Andy Ayers [Sun, 21 Feb 2021 23:32:34 +0000 (15:32 -0800)]
JIT: remove JitGuardedDevirtualizationGuessBestClass (#48574)
And slightly rearrange the two bits of code that consider guarded
devirualization with the goal of eventually unifying them.
Fixes #48564.
Anirudh Agnihotry [Sun, 21 Feb 2021 21:47:14 +0000 (13:47 -0800)]
Add disabling test policy to the docs (#48575)
* add disabling test policy
* Update docs/infra/buildtriage.md
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Badre BSAILA [Sun, 21 Feb 2021 21:45:59 +0000 (22:45 +0100)]
Fix #28035 Refactor DLL imports interop classes (#48556)
* refactor interop classes
* move interop files to subdirectory
Tomáš Rylek [Sun, 21 Feb 2021 21:05:37 +0000 (22:05 +0100)]
Enable CG2 determinism tests on all architectures (#48526)
I have noticed that these two tests are still conditionally
executed on x64 only. I don't see why they shouldn't work on
other architectures.
Thanks
Tomas
Anirudh Agnihotry [Sun, 21 Feb 2021 19:00:48 +0000 (11:00 -0800)]
update branding to preview3 (#48530)
Adeel Mujahid [Sun, 21 Feb 2021 12:06:16 +0000 (14:06 +0200)]
Reuse SDK target for latest commit hash (#48561)
* Reuse SDK target for latest commit hash
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
* Further clean-up corehost.proj
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Bruce Forstall [Sat, 20 Feb 2021 21:56:50 +0000 (11:56 -1000)]
Add assembly name to SuperPMI collection (#48534)
* Add assembly name to SuperPMI collection
For each class, add JIT/EE calls to getAssemblyName so the SuperPMI
collections contain this information. This can be useful to try and track
down where a particular function in a large method context hive came
from.
Only do this when `COMPlus_EnableExtraSuperPmiQueries=1` is set.
* Formatting
Mike McLaughlin [Sat, 20 Feb 2021 21:51:39 +0000 (13:51 -0800)]
Enable Hot Reload API on Linux (#48497)
Enable Hot Reload API on Linux
Only define EnC_SUPPORTED for vm/ee on xplat. Doesn't enable the ENC ICorDebug API.
Enable hotreload api tests on Linux/MacOS. API not implemented on arm/arm64
Remove all the ENC_DELTA_HACK code. Remove more ENC_DELTA_HACK code from ilasm
Aleksey Kliger (λgeek) [Sat, 20 Feb 2021 20:26:30 +0000 (15:26 -0500)]
[mono] Remove MonoRuntimeUnhandledExceptionPolicy (#48555)
policy was always set to MONO_UNHANDLED_POLICY_CURRENT. The
legacy (pre-.NET 2.0) policy was not used.
Andy Ayers [Sat, 20 Feb 2021 17:17:32 +0000 (09:17 -0800)]
JIT: workaround for unreliable change detection in fgReorderBlocks (#48516)
This method costs trees, which can in turn modify the IR by swapping operands.
As a result the bool value returned doesn't properly reflect whether any
changes happened.
This impacts proper reporting phase status by `optOptimizeLayout'. Since phase
status just gates post-phase dumps and checks, we'll just claim this phase
always modifies IR.
Add similar workaround for `optInvertLoops`.
Fixes #48494.
Fixes #48495.
Adeel Mujahid [Sat, 20 Feb 2021 16:34:53 +0000 (18:34 +0200)]
Fix JIT rolling build (#48552)
Viktor Hofer [Sat, 20 Feb 2021 12:18:35 +0000 (13:18 +0100)]
Update hardcoded rids for targeting/runtime pks (#48459)
* Update hardcoded rids for targeting/runtime pks
Next Turn [Sat, 20 Feb 2021 05:07:06 +0000 (13:07 +0800)]
Format (#48548)
Vladimir Sadov [Sat, 20 Feb 2021 04:40:14 +0000 (20:40 -0800)]
Building singlefilehost with clr partition. (#48254)
* building single file host with clr partition
* make coreclr_static a STATIC lib again
Aleksey Kliger (λgeek) [Fri, 19 Feb 2021 20:11:03 +0000 (15:11 -0500)]
[mono] Implement public hot reload API (#48380)
* [mono] Implement public hot reload API
Also add ApplyUpdateSdb that takes byte[] arguments for use with
mono/debugger-libs as its awkward to call a ROS<byte> method from the debugger.
Contributes to https://github.com/dotnet/runtime/issues/45689
* Update src/mono/System.Private.CoreLib/src/System/Reflection/Metadata/AssemblyExtensions.cs
Co-authored-by: Marek Safar <marek.safar@gmail.com>
* Don't allow changes to System.Private.CoreLib
* formatting
* more formatting
* Add a TODO to remove ApplyUpdateSdb
* update DeltaHelper
* don't use ApplyUpdateSdb in DeltaHelper
* throw InvalidOpertionException for corlib changes with hot reload disabled
* Run the test on mono on all platoforms; CoreCLR windows only
* Use resource string
* Address review feedback
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Matt Galbraith [Fri, 19 Feb 2021 20:09:10 +0000 (12:09 -0800)]
Temporarily work around publishing issues with disk space (#48521)
Drew Scoggins [Fri, 19 Feb 2021 19:08:57 +0000 (11:08 -0800)]
Wasm download fix (#48514)
* Don't use container for WASM
* Remove dashes
* Remove comments for testing
Dan Moseley [Fri, 19 Feb 2021 18:59:19 +0000 (10:59 -0800)]
Disable TestOnExecuteCustomCommand() for WSC (#48501)
Stephen Toub [Fri, 19 Feb 2021 18:38:31 +0000 (13:38 -0500)]
Remove StringBuilderCache from Version.ToString (#48511)
Rather than using a StringBuilder in both ToString and TryFormat, we can just write ToString in terms of TryFormat and use stack space for the small string being generated. As part of this, I removed the extra code optimizing ToString(0) and ToString(1), as I can't find any real code anywhere that does that and it's not worth the extra lines.
Egor Bogatov [Fri, 19 Feb 2021 18:00:28 +0000 (21:00 +0300)]
Fix EqualityComparer<T>.Default for nullable (#48161)
Alex Covington [Fri, 19 Feb 2021 17:55:18 +0000 (09:55 -0800)]
No const arg to temp (#48308)
* Starting to add IsInvariant helper
* Finished IsInvariant helper. Starting testing
* Removed IsInvariant from GenTree to avoid asserts
* Formatting
* Fixed missing not operator
* Changed AsOp() call to 'this' to avoid failing assertions
* Formatting
* Update src/coreclr/jit/morph.cpp
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
* Update src/coreclr/jit/compiler.h
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
* Apply suggestions from code review
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
* Change arguments to const to avoid cast
* Formatting
* delete `IsInvariant` from Compiler.
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
Marek Safar [Fri, 19 Feb 2021 17:46:58 +0000 (18:46 +0100)]
Don't build Quic for platforms where it's not supported (#48480)
Sven Boemer [Fri, 19 Feb 2021 17:27:41 +0000 (09:27 -0800)]
Annotate framework assemblies as trimmable (#48428)
* Annotate framework assemblies as trimmable
This will opt them into trimming with the behavior described at https://github.com/mono/linker/blob/main/docs/design/trimmed-assemblies.md#assemblymetadataistrimmable-true.
* Add a condition to let projects opt out
A project just needs to set <SetIsTrimmable>false</SetIsTrimmable>, and
it won't get the trimmable metadata.
I also got rid of the SkipFrameworkAssemblyMetadata check since I don't
think the IsTrimmable metadata should be tied to whether we are building
a framework assembly, and this property was unused as far as I could tell.
Anton Firszov [Fri, 19 Feb 2021 16:37:05 +0000 (17:37 +0100)]
Fix Socket.SendFile test: SliceBuffers_Success (#48457)
* do not expect a single receive
* use expected.Length
* enable test
Eric Erhardt [Fri, 19 Feb 2021 15:10:48 +0000 (09:10 -0600)]
Remove trimming attributes from any assembly. (#48424)
* Remove trimming attributes from any assembly.
These attributes are allowed to be in any assembly, for assemblies that are built using older TFMs where the attributes didn't exist.
Fix #48399
* Remove nullable attributes as well.
Nathan Ricci [Fri, 19 Feb 2021 14:41:27 +0000 (09:41 -0500)]
Normalized names SIMD_OP_LLVM_* -> SIMD_OP_ARM64_* (#48489)
Co-authored-by: Nathan Ricci <naricc@xam-emag-01.redmond.corp.microsoft.com>
dotnet-maestro[bot] [Fri, 19 Feb 2021 10:51:53 +0000 (10:51 +0000)]
[master] Update dependencies from dotnet/xharness (#48452)
[master] Update dependencies from dotnet/xharness
Eirik Tsarpalis [Fri, 19 Feb 2021 10:02:52 +0000 (10:02 +0000)]
Expand PriorityQueue test coverage (#48420)
* make comparer field readonly
* abstract IComparer in PriorityQueue generic tests
does minor refactorings and adds new tests
* add PriorityQueue property tests
* address feedback
* add seed for deterministic runs
* apply var fixes in property tests
* replace FsCheck properties with theories
David Karlaš [Fri, 19 Feb 2021 09:24:33 +0000 (10:24 +0100)]
Removing myself from codeowners file (#48502)
In past I was involved in mono/debugger-agent.c, but not anymore, hence removing myself from CODEOWNERS file
Vlad Brezae [Fri, 19 Feb 2021 09:07:44 +0000 (11:07 +0200)]
[interp] Small interp tweaks (#48412)
* [interp] Fix overflow in PROFILE_INTERP log
* [interp] Replace LDFLDA of offset 0 field with MOV
Commonly used when accessing first field of valuetypes, eg span operations. Will help with cprop and remove redundant instruction.
* [interp] Remove redundant opcode
Marek Safar [Fri, 19 Feb 2021 08:51:54 +0000 (09:51 +0100)]
Remove redundant static ctor from LoggerFactory (#48478)
dotnet-maestro[bot] [Fri, 19 Feb 2021 05:04:51 +0000 (05:04 +0000)]
Update dependencies from https://github.com/mono/linker build
20210218.4 (#48493)
[master] Update dependencies from mono/linker
Elinor Fung [Fri, 19 Feb 2021 04:57:25 +0000 (20:57 -0800)]
Make ApkBuilder optionally generate debuggable apk (#48486)
Zoltan Varga [Fri, 19 Feb 2021 04:13:58 +0000 (23:13 -0500)]
[mono] More domain cleanups. (#48291)
* Remove the MonoClassRuntimeInfo structure, store the runtime vtable directly in MonoClass.
* Remove the 'domain' argument from mono_class_vtable_checked ().
* Remove the 'domain' argument from the object allocation functions.
* Remove the 'domain' argument from the m_.._alloc methods.
* Revert accidental changes.
* Remove more unused 'domain' parameters.
* Remove more remoting code.
* Remove shared code support.
* Remove the 'domain' argument from the IMT builder functions.
* Remove the 'domain' argument from the m_method_ functions.
* Remove more domain usage from the JIT backends.
* Remove the MONO_ARCH_HAVE_PATCH_CODE_NEW ifdef, all architectures support it now.
* Remove 'domain' argument from mini_jit_info_table_find ().
* Remove 'domain' argument from mono_arch_unwind_frame ().
* Remove unused/unfinished AOT cache code.
* Remove the 'domain' argument from mono_resolve_patch_target ().
* Remove domains from the stack walk/exception handling code.
* Remove domains from mono-debug.c.
The memory in mono-debug.c is now owned by a MonoMemoryManager instead of by a domain.
* Remove unused mono-mlist.{h,c}.
* Fix the coverage profiler build.
* Fix the build.
daveMueller [Fri, 19 Feb 2021 03:35:00 +0000 (04:35 +0100)]
JSON Console Logger not requiring scopes to implement IReadOnlyCollection (#48453)
Ankit Jain [Fri, 19 Feb 2021 02:40:41 +0000 (21:40 -0500)]
[wasm] Improve AOT builds (#48184)
* [wasm] pack: Let the workload configure the runtime pack path
* [wasm] update webassembly pack description
* [wasm] Makefile: fix being able to `make build`
* [wasm] Fix AOT compilation to work before publish
Instead of using runtime pack, and other assemblies from the
publish folder, we are now using them directly from the source
location. This means that `System.Private.CoreLib` can be in a different
directory, than the assembly being precompiled.
So, we need to set `MONO_PATH` to the relevant paths that will have the assemblies.
This manifests during blazor workload based builds.
* [wasm][aot] Don't strip the source assemblies in place
Currently we run `mono-cil-strip` on assemblies, in the AOT case, but we
do that in-place.
This is problematic because the assemblies from the runtime pack will
get modified in their original location (nuget/etc), since we don't use
them from the publish folder anymore.
- This would mean that a subsequent attempt to build with AOT would fail
because now the original assemblies are already stripped!
- this also becomes apparent if you have the runtime pack installed in a
system dotnet folder, eg. as a pack - `/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.browser-wasm/`,
because a regular user wouldn't have permissions to modify that.
Solution: Write the stripped assemblies into the obj dir
* [wasm] Make the final list of wasm assemblies as an item
- Blazor skips the generation of the app bundle when running
`WasmBuildApp` target.
- Because of the previous commit, the locations for the final assemblies
could be different (when aot+stripping), which needs to be surfaced
for blazor. So, generate a `@(WasmAssembliesFinal)` item for that.
* [wasm] Allow enabling assert messages with $(MonoEnableAssertMessages)
* [wasm][aot] WasmApp.targets: check that we have .bc file for each assembly
Just a sanity check to ensure that due to some build authoring error, we
are not building dotnet.js/wasm with no .bc files! That just shows up as
an assert:
`* Assertion at /Users/radical/dev/r3/src/mono/mono/mini/aot-runtime.c:2651, condition `<disabled>' not met`
.. which is:
`g_assert (info->version == MONO_AOT_FILE_VERSION);`
.. `0 != MONO_AOT_FILE_VERSION`
* [wasm] remove UsingTask for non-exitant WasmAOT
* MonoCrossAot pkg: use mono-aot-cross.exe on windows
* [wasm] Fix up emscripten command invocations for windows
* [wasm] WasmApp.targets: move some property inits closer to their use
* [wasm] fix build for browser-profile sample
* [wasm] fix emcc invocation for getting the version
* [wasm] Add new RunWithEmSdkEnv task
* [wasm] Use `RunWithEmSdkEnv` to run `emcc` commands
* [wasm] AotCompiler: use platform specific path separator
* [wasm] RunWithEmSdkEnv: quote path on windows
* [wasm] Use new ReadEmccVersion to get the versions
This simplifies the target too, and works on windows.
* Update src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.MonoCrossAOT.Sdk.props
Co-authored-by: Pranav K <prkrishn@hotmail.com>
* fix messageimportance for debug msg
* Fix emcc invocation on windows, thanks to @pranavkm
* Don't strip assemblies with mono-cil-strip for aotinterp mode
* [wasm] Remove ReadEmccVersion task, and use msbuild to get the version
.. string instead. We do this by looking for the line with `'emcc'` in
it, since the other lines are the license text. Hopefully, this isn't
too brittle, since we are invoking `emcc --version`.
* Fix emcc version extraction to not depend on a specific string
Co-authored-by: Pranav K <prkrishn@hotmail.com>
Egor Chesakov [Fri, 19 Feb 2021 02:27:07 +0000 (18:27 -0800)]
Do not emit Avx2 instruction `vpcmpeqd ymmReg, ymmReg, ymmReg` for `Vector256<T>.AllBitsSet` intrinsic when Avx2 is not supported (#48383)
Emit `vcmptrueps ymmReg, ymmReg, ymmReg` instead
Adeel Mujahid [Fri, 19 Feb 2021 01:41:07 +0000 (03:41 +0200)]
Probe libnuma.so.1.0.0 before its symlinks (#48133)
On Linux, libnuma.so{.1} are symlinks to libnuma.so.1.0.0.
When installed from default package manager; Ubuntu (libnuma-dev) and
Alpine (numactl-dev), found these two symlinks:
`{libnuma.so,libnuma.so.1} -> libnuma.so.1.0.0`
On Fedora (numactl-libs):
`libnuma.so.1 -> libnuma.so.1.0.0`
(there is no version-less variant)
PR adjusts probing fallback flow based on this info.
Kevin Jones [Fri, 19 Feb 2021 01:28:30 +0000 (20:28 -0500)]
Use newer microsoft.com certificate chain in X.509 tests
The old certificate chain used a root certificate that is deprecated
and is starting to disappear from some trust stores. The removal of
the root certificate led to a few failing tests, and other tests not
running since they were conditional on the trust of that certificate.
Drew Scoggins [Fri, 19 Feb 2021 00:47:58 +0000 (16:47 -0800)]
Add runs for Alpine performance measurement (#47304)
* WIP
* Add Alpine specific steps
* Fix musl string
* Fix musl string
* Add comment block
* Update Helix precommand for Alpine
* Add container support for Perf leg
* Remove dupe container
* Add apk installs
* Add libgdiplus
* Fix typo and remove --force-install from pip command
* Remove --force-reinstall from Alpine job
* Add pip upgrade step
* Add cargo install
* Add back full runs
* Remove PR line
* Remove temp files
* Fix spacing issue
Eric Erhardt [Thu, 18 Feb 2021 23:52:11 +0000 (17:52 -0600)]
Resolve ILLink warnings in System.Linq.Queryable (#48305)
* Resolve ILLink warnings in System.Linq.Queryable
Contributes to #45623
* Respond to PR feedback.
Annotate public AsQueryable() method as RequiresUnreferencedCode.
Mike McLaughlin [Thu, 18 Feb 2021 23:02:17 +0000 (15:02 -0800)]
Add hot reload apply changes API: AssemblyExtensions.ApplyUpdate (#48366)
Add hot reload apply changes API: AssemblyExtensions.ApplyUpdate
Issue: https://github.com/dotnet/runtime/issues/45689
Currently Windows only. Fail hot reload API if debugging.
Added some simple invalid parameter testing to the new ApplyUpdate API.
Sung Yoon Whang [Thu, 18 Feb 2021 22:38:43 +0000 (14:38 -0800)]
Fix AV in NativeRuntimeEventSource QCalls (#48414)
* Fix AV in NativeRuntimeEventSource QCalls
* Add test
* Use WriteEventCore APIs to emit events on Mono
* Separate out Mono/CoreCLR implementations to different files
* Fix wasm build
Stephen Toub [Thu, 18 Feb 2021 22:00:38 +0000 (17:00 -0500)]
Remove partitioning from CancellationTokenSource (#48251)
When CancellationTokenSource was original created, the expectation was that a majority use case would be lots of threads in parallel registering and unregistering handlers. This led to a design where CTS internally partitions its registrations to minimize contention between threads contending on its internal data structures. While that certainly comes up in practice, a much more common case is just one thread registering and unregistering at a time as a CancellationToken unique to a particular operation (e.g. a linked token source) is passed down through it, with various levels of the chain registering and unregistering from that non-concurrently-used token source. And having such partitioning results in non-trivial allocation overheads, in particular for a short-lived CTS with which only one or a few registrations are employed in its lifetime. This change removes that partitioning scheme; all scenarios end up with less memory allocation, and non-concurrent scenarios end up measurably faster... scenarios where there is contention do take a measurable hit, but given that's the rare case, it's believed to be the right trade-off (when in doubt, it's also the simpler implementation).
As long as I was refactoring a bunch of code, I fixed up a few other things along the way:
- Avoided allocating while holding the instance's spin lock
- Made WaitForCallbackAsync into a polling async method rather than an async-over-sync method
- Changed the state values to be 0-based to avoid needing to initialize _state to something other than 0 in the common case
- Used existing throw helpers in a few more cases
- Renamed a few methods, and made a few others to be local functions
Bruce Forstall [Thu, 18 Feb 2021 21:56:57 +0000 (11:56 -1000)]
Remove !CPU_HAS_FP_SUPPORT code (#48436)
* Remove !CPU_HAS_FP_SUPPORT code
CPU_HAS_FP_SUPPORT is always defined and we don't anticipate needing
the emulation support.
Fixes #47708
* Remove fgMorphToEmulatedFP declaration
Anirudh Agnihotry [Thu, 18 Feb 2021 21:54:06 +0000 (13:54 -0800)]
Disable slicebuffers_success and RunContinueWithStressTestsNoState test (#48442)
* disable long failing tests
* keeping the skipOncoreclr attribute
Anirudh Agnihotry [Thu, 18 Feb 2021 21:53:36 +0000 (13:53 -0800)]
make symbolsPath to default pack path (#48384)
Maxim Lipnin [Thu, 18 Feb 2021 20:53:18 +0000 (23:53 +0300)]
Fix test failures (#48302)
* Fix test failures
* Remove iOS/tvOS-specific platform detection
Andy Ayers [Thu, 18 Feb 2021 20:34:35 +0000 (12:34 -0800)]
JIT: change loop inversion edge weight updates and add phase (#48364)
Rename `fgOptWhileLoop` to `optInvertWhileLoop` (using terminology from
Muchnick). Split off this transformation into a new phase so it is easier
to see its impact. Make the block updates / reorderings that follow into
a proper phase as well.
Use the test block exit likelihoods to update the profile weights for the
edges involved in loop inversion. Because edge weight updates are now
consistent we no longer need to recompute edge weights afterwards.
Rename `optOptimizeLoops` to `optFindLoops` since it no longer optimizes.
Adeel Mujahid [Thu, 18 Feb 2021 20:34:00 +0000 (22:34 +0200)]
Use llvm-objcopy on Linux x64 (#48444)
Fan Yang [Thu, 18 Feb 2021 20:33:37 +0000 (15:33 -0500)]
Support remaining Sha1 intrinsics on Arm (#48413)
* Add support for Sha1 API with vector64 arguments
* Promote return to vector64
* Return a 2 x i32 instead of i64
* Update src/mono/mono/mini/mini-llvm.c
* Fix format
Co-authored-by: imhameed <imhameed@microsoft.com>
Jeremy Koritzinsky [Thu, 18 Feb 2021 20:15:23 +0000 (12:15 -0800)]
Fix all remaining System.Security.Cryptography.Algorithms test suite crashes. (#48432)
* Fix all remaining System.Security.Cryptography.Algorithms test suite crashes.
With this + PR #48348, the test suite runs to completion and reports the following results:
> Tests run: 2527 Passed: 1285 Inconclusive: 0 Failed: 1227 Ignored: 7
So we've got a ways to go to get things passing, but now we can easily track it at least for this assembly.
* PR Feedback.
Aleksey Kliger (λgeek) [Thu, 18 Feb 2021 20:12:25 +0000 (15:12 -0500)]
[coop] Enter GC Unsafe mode in mono_gc_init_finalizer_thread (#48465)
when lazy thread creation is used, this external API function is called
from a thread in GC Safe mode, so enter GC Unsafe before calling runtime
functions.
Fixes a double transition to GC Safe in mono_gc_pthread_create.
Fixes https://github.com/dotnet/runtime/issues/47121
Bruce Forstall [Thu, 18 Feb 2021 19:14:55 +0000 (09:14 -1000)]
Improve SuperPMI asserts (#48449)
Include `GetIndex` method calls in the assert message, to distinguish
the different assert cases in error output. E.g., the asserts
change from:
```
'index != -1' failed ...
```
(which was identical for several cases), to:
```
'GetClassAttribs->GetIndex(CastHandle(classHandle)) != -1' failed ...
```
This makes it easier to know where the problem is without debugging the failure.