monojenkins [Tue, 25 Feb 2020 18:54:45 +0000 (13:54 -0500)]
Change macro CLOSE_PIPE to function mono_close_pipe. (#32793)
Extracted from https://github.com/mono/mono/pull/19025.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
monojenkins [Tue, 25 Feb 2020 18:46:29 +0000 (13:46 -0500)]
Fix warnings: GPid vs. pid_t function signature mixup in glib test code. (#32791)
Extracted from https://github.com/mono/mono/pull/19025.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Alaa Masoud [Tue, 25 Feb 2020 16:21:32 +0000 (19:21 +0300)]
Use StringBuilder.Append(Char) instead of coverting char to string (#32758)
Carol Eidt [Tue, 25 Feb 2020 15:49:52 +0000 (07:49 -0800)]
Allow same-size same-register-file lclVar stores (#32750)
Fix #32379
Fraser Waters [Tue, 25 Feb 2020 14:48:29 +0000 (14:48 +0000)]
Add TaskCompletionSource.SetCanceled(CancellationToken) (#32696)
* Add TaskCompletionSource.SetCanceled(CancellationToken)
api-approved by #30862
* Add to ref
* SetCanceled(default)
* Change some tests to use SetCaneled not TrySetCanceled
These tests used SetResult/SetException and TrySetCancelled so it could
pass a token. Changed to use SetCancelled to match the Result/Exception
useage.
* Add SetCanceled(CT) test
* Check exception on re-cancel
* Equal not Equals
* Catch aggregate not TaskCancelled directly
* Inner not exc
* Markup
* s/m/n
Tlakaelel Axayakatl Ceja [Tue, 25 Feb 2020 10:02:12 +0000 (02:02 -0800)]
Update dependencies ILLink.Tasks (#32778)
Use darc commands to include the latest commit from the linker in the runtime and see how it behaves in CI. This is a follow up from https://github.com/dotnet/runtime/pull/1804 after some linker fixes.
Tomáš Rylek [Tue, 25 Feb 2020 08:55:31 +0000 (09:55 +0100)]
R2RDump improvements in composite format support (#32499)
1) Added back-translation table from component assembly names
to their indices;
2) Added clean split of available types and method entrypoints per
component module and modified the various dumps as appropriate;
3) Added dump of component header sections for composite files.
Thanks
Tomas
Viktor Hofer [Tue, 25 Feb 2020 07:58:14 +0000 (08:58 +0100)]
Add ConfigurationGroup back to entrypoints (#32762)
ConfigurationGroup was removed but installer still uses and depends on
it. Bringing it back in the entrypoint build scripts and in the managed
msbuild Configurations.props file.
Juan Hoyos [Tue, 25 Feb 2020 05:38:06 +0000 (21:38 -0800)]
Revert "Build cross OS DACs in default Windows builds (#32322)" (#32781)
This reverts commit
7d4e1bb6de479ded8ed22f836ed37f98b02039a2.
Fadi Hanna [Tue, 25 Feb 2020 01:57:39 +0000 (17:57 -0800)]
Dynamic generic dictionary expansion feature (#32270)
* Dynamic dictionary expansion feature
1) Separate dictionary layout expansion from dictionary expansions on types and methods
2) Dictionary expansions on types and methods done on-demand (if needed), after size checks by codegen (uses new JIT feature)
3) Update the R2R dictionary access stubs to perform size checks (and major cleanup there)
4) Add unit test
5) Update documentation
6) Update JIT interface guid
monojenkins [Tue, 25 Feb 2020 01:34:47 +0000 (20:34 -0500)]
[llvm] Remove loaded llvm support, the startup perf penalty doesn't seem to exist any more. (#32361)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
monojenkins [Tue, 25 Feb 2020 00:30:14 +0000 (19:30 -0500)]
[interp] Reorder InterpMethod to reduce padding (#32657)
for alignment. Size goes from 192 to 184.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Egor Bogatov [Tue, 25 Feb 2020 00:01:36 +0000 (03:01 +0300)]
Remove --buildXUnitWrappers from runtest.cmd/runtest.sh (#31798)
monojenkins [Mon, 24 Feb 2020 23:41:12 +0000 (18:41 -0500)]
Whittle away at warnings: (#32397)
Whittle away at warnings:
Return address of local (deliberate).
Pointer cast to different size.
Function parameter and declaration badly mismatch (pid_t vs. void*).
Unused locals.
Top level volatile is ignored.
Negative shift undefined.
Call to undeclared function (getpid).
Some are fixed, some are disabled temporarily.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Eric Erhardt [Mon, 24 Feb 2020 22:52:08 +0000 (16:52 -0600)]
Allow ConfigurationManager to load when GetEntryAssembly returns null. (#32195)
* Clean up unused variable in ClientConfigPaths.
* Allow ConfigurationManager to load when GetEntryAssembly returns null.
Attempt to find the native host to maintain behavior from netfx.
Fix #25027
monojenkins [Mon, 24 Feb 2020 22:47:36 +0000 (17:47 -0500)]
[merp] Produce hashes for unmanaged thread stacks also (#32565)
Before, this was only done for managed stacks.
Addresses https://github.com/mono/mono/issues/18941
<!--
Thank you for your Pull Request!
If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.
Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->
Co-authored-by: Alexis Christoforides <alexis@thenull.net>
Anirudh Agnihotry [Mon, 24 Feb 2020 22:17:05 +0000 (14:17 -0800)]
removing $(OS) using from the libraries (#32673)
Jeremy Barton [Mon, 24 Feb 2020 21:53:38 +0000 (13:53 -0800)]
Regenerate the S.S.C.Algorithms ref.cs
* msbuild /t:GenerateReferenceSource
* Manually revert the changes in attributes
* msbuild the updated ref assembly
* build downstream crypto projects and make fixes as necessary
Yaakov [Mon, 24 Feb 2020 21:41:18 +0000 (08:41 +1100)]
Add StatusCode to HttpRequestException (#32455)
Adds HttpRequestException.StatusCode property, to be set by EnsureSuccessStatusCode and convenience methods when an exception is generated by a status code.
Steve MacLean [Mon, 24 Feb 2020 21:30:29 +0000 (16:30 -0500)]
Build cross OS DACs in default Windows builds (#32322)
* Build the -linuxdac Cross OS DAC by default in Windows builds
* Fix warnings treated as errors
* Fix Cross OS Dac build break introduced by #32579
monojenkins [Mon, 24 Feb 2020 21:17:30 +0000 (16:17 -0500)]
[wasm][debugger] Improve accessing locals (#32701)
This fixes various issues in accessing locals on the stack.
Co-authored-by: Ankit Jain <radical@gmail.com>
monojenkins [Mon, 24 Feb 2020 19:56:07 +0000 (14:56 -0500)]
[merp] Increase buffer size for state dump (#32134)
Addresses https://github.com/mono/mono/issues/18796
Co-authored-by: Alexis Christoforides <alexis@thenull.net>
Alexander Köplinger [Mon, 24 Feb 2020 19:45:18 +0000 (20:45 +0100)]
Replace SkipOnMono attributes with ActiveIssue (#32745)
SkipOnMono should only be used for features which won't be implemented by Mono, not general bugs.
Andy Ayers [Mon, 24 Feb 2020 19:31:15 +0000 (11:31 -0800)]
JIT: make sure to set compLongUsed during struct promotion (#32702)
If we're promoting a long field, make sure `compLongUsed` gets set.
Otherwise we may fail to properly decompose a long later on.
Fixes #32059.
pi1024e [Mon, 24 Feb 2020 18:50:57 +0000 (13:50 -0500)]
Fix compilation warning (#32740)
When compiling, Visual Studio gives two compiler warnings in the sysmath.c file about FPILOGB0/-
2147483648 being converted into an unsigned integer.
The standard library math.h states that FPILOGB0 be INT_MIN, so I replaced -
2147483648 with the INT_MIN macro so the behavior is much more clear as well as stifling the compiler warnings.
Changes tested manually and automatically.
Brian Walker [Mon, 24 Feb 2020 18:28:05 +0000 (12:28 -0600)]
Fixes #32230 (#32302)
Use insecure proxy (http_proxy) for schemes http and ws
Use secure proxy (https_proxy) to schemes https and wss
Viktor Hofer [Mon, 24 Feb 2020 18:18:32 +0000 (19:18 +0100)]
Fix Version.Details.xml merge failure (#32748)
* Fix Version.Details.xml merge failure
Broken by https://github.com/dotnet/runtime/commit/
9a085069d0b36f7b6711f5b9fb41bf5c2d882d19.
Missing <Dependency> tag.
* Update Version.Details.xml
dotnet-maestro[bot] [Mon, 24 Feb 2020 14:33:02 +0000 (15:33 +0100)]
[master] Update dependencies from dotnet/arcade mono/linker dotnet/runtime-assets (#32484)
* Update dependencies from https://github.com/dotnet/runtime-assets build
20200218.1
- System.Windows.Extensions.TestData - 5.0.0-beta.20118.1
- System.Security.Cryptography.X509Certificates.TestData - 5.0.0-beta.20118.1
- System.Private.Runtime.UnicodeData - 5.0.0-beta.20118.1
- System.Net.TestData - 5.0.0-beta.20118.1
- System.IO.Packaging.TestData - 5.0.0-beta.20118.1
- System.IO.Compression.TestData - 5.0.0-beta.20118.1
- System.Drawing.Common.TestData - 5.0.0-beta.20118.1
- System.ComponentModel.TypeConverter.TestData - 5.0.0-beta.20118.1
* Update dependencies from https://github.com/dotnet/arcade build
20200218.1
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20118.1
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20118.1
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20118.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20118.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20118.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20118.1
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20118.1
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20118.1
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20118.1
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20118.1
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20118.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20118.1
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20118.1
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20118.1
* Update dependencies from https://github.com/dotnet/arcade build
20200219.14
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20119.14
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20119.14
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20119.14
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20119.14
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20119.14
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20119.14
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20119.14
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20119.14
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20119.14
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20119.14
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20119.14
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20119.14
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20119.14
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20119.14
* Update dependencies from https://github.com/mono/linker build
20200220.1
- ILLink.Tasks - 0.1.6-prerelease.20120.1
* Update dependencies from https://github.com/dotnet/arcade build
20200220.2
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20120.2
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20120.2
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20120.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20120.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20120.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20120.2
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20120.2
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20120.2
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20120.2
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20120.2
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20120.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20120.2
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20120.2
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20120.2
* Update dependencies from https://github.com/dotnet/arcade build
20200221.6
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20121.6
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20121.6
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20121.6
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20121.6
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20121.6
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20121.6
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20121.6
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20121.6
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20121.6
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20121.6
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20121.6
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20121.6
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20121.6
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20121.6
* Update dependencies from https://github.com/mono/linker build
20200221.2
- ILLink.Tasks - 0.1.6-prerelease.20121.2
* Update dependencies from https://github.com/mono/linker build
20200222.1
- ILLink.Tasks - 0.1.6-prerelease.20122.1
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Vitek Karas [Mon, 24 Feb 2020 12:55:42 +0000 (04:55 -0800)]
Mark class ctors as preserved for dependencies of System.SR (#31718)
The System.SR.InternalGetResourceString calls RuntimeHelpers.RunClassConstructor on several classes. This is a dependency the ILLinker won't be able to figure out, so explicit PreserveDependency is needed.
Vitek Karas [Mon, 24 Feb 2020 11:42:10 +0000 (03:42 -0800)]
Merge pull request #32540 from vitek-karas/PreserveDepWinRT
Preserve dep win rt
monojenkins [Mon, 24 Feb 2020 09:31:31 +0000 (04:31 -0500)]
[interp] Use alloca for InterpFrame (#32720)
This is like https://github.com/mono/mono/pull/19002 but next_free is initialized upon allocation instead of `pop_frame` which is a slight optimization, if it works.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
monojenkins [Mon, 24 Feb 2020 08:13:07 +0000 (03:13 -0500)]
[interp] Decruft PowerPC. (#32654)
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Next Turn [Mon, 24 Feb 2020 04:49:28 +0000 (12:49 +0800)]
Update library name variations for uses with LoadLibrary (#32707)
Michal Strehovský [Sun, 23 Feb 2020 23:30:08 +0000 (00:30 +0100)]
Move fat call policy out of RyuJIT (#32718)
The EE side would like to be able to decide whether to do fat call or not.
Simon Nattress [Sun, 23 Feb 2020 19:24:12 +0000 (11:24 -0800)]
Merge pull request #32279 from nattress/coreroot_determinism
Fix silent failure of coreroot_determinism test
monojenkins [Sun, 23 Feb 2020 13:16:05 +0000 (08:16 -0500)]
[interp] Remove some unused paths in newobj and cleanup a little. (#32685)
This is an alternative to https://github.com/mono/mono/pull/18974.
Mainly that it does not introduce new opcode to remove branch from newobj/newobj_string.
Both eliminate a bit of dead code in newobj (if turns out to be alive, can also be new opcodes).
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
monojenkins [Sun, 23 Feb 2020 13:11:53 +0000 (08:11 -0500)]
[interp] Pop leave and calli_nat frames. (#32691)
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Stephen Toub [Sun, 23 Feb 2020 02:11:01 +0000 (21:11 -0500)]
Annotate System.Net.WebProxy for nullable reference types (#32612)
Mukul Sabharwal [Sat, 22 Feb 2020 23:59:07 +0000 (15:59 -0800)]
Remove unused param from EventPipe (#32698)
monojenkins [Sat, 22 Feb 2020 22:34:59 +0000 (17:34 -0500)]
[corlib] Link out more SR/SRE types (#32101)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Andrew Au [Sat, 22 Feb 2020 20:25:01 +0000 (12:25 -0800)]
Make ReadyToRunReader constructor completely lazy (#32682)
Alaa Masoud [Sat, 22 Feb 2020 20:04:16 +0000 (23:04 +0300)]
Use StringBuilder.Append(Char) instead of converting char to string (#32686)
* Use StringBuilder.Append(Char) instead of converting char to string
* revert unused local removal
Andy Ayers [Sat, 22 Feb 2020 16:30:51 +0000 (08:30 -0800)]
JIT: Fix arm gcstress/jistress issues (#32674)
Three fixes for gc liveness and the profile exit hook on arm.
* If we're returning results via the hidden return buffer pointer,
make sure we treat R0 as gc live, as it holds a BYREF and may well be
a gc reference, when the method is invoked via reflection.
* If R0 is otherwise live make sure to check the "native" return type so
we handle struct-wrapped GC ref returns properly.
* If we have a tail call or tail jump, R0 is not the return value, so deducing
GC liveness for it based on method properties is unsound. It turns out in both
cases that R0 is not in use; for tail calls this is ensured by insertion of the
helper call before register allocation; for tail jumps, by spilling the argument
registers in `genJmpMethod`.
Expect this will fix most or all of the failures in #31770.
Tomáš Rylek [Sat, 22 Feb 2020 08:56:47 +0000 (09:56 +0100)]
Additional SuperIlc fixes for running composite R2R images (#32665)
As an expedite way to run "non-shared" composite R2R images
(including the frameworK) I have added support to SuperIlc to
copy corerun, coreclr, clrjit and mscorrc next to the compiled
composite executable and supplying that as the CORE_ROOT
folder; otherwise corerun in the normal Tests/Core_Root
automatically grabs the framework next to it, not the composite
rewritten versions.
Thanks
Tomas
Sung Yoon Whang [Sat, 22 Feb 2020 03:52:49 +0000 (19:52 -0800)]
Fix CrstTypeTool to target the right header file on non-Windows platform (#32689)
Eugene Rozenfeld [Sat, 22 Feb 2020 01:53:37 +0000 (17:53 -0800)]
Use GT_NULLCHECK for unconsumed indirections. (#32641)
All unconsumed indirections are now GT_NULLCHECKs, which
allows optFoldNullChecks to remove more redundant null checks.
Eric Erhardt [Sat, 22 Feb 2020 00:55:24 +0000 (18:55 -0600)]
MulticastOption.Group no longer accepts null. (#32518)
* MulticastOption.Group no longer accepts null.
MulticastOption.Group is not supposed to accept null. If someone sets it to null, we will NRE inside of the Sockets implementation.
I also fixed two small double-cast problems while I was in here.
Fix #32490
Stephen Toub [Sat, 22 Feb 2020 00:44:09 +0000 (19:44 -0500)]
Fix several HTTP/3 uses of ValueTask (#32671)
Tomáš Rylek [Fri, 21 Feb 2020 22:47:15 +0000 (23:47 +0100)]
Bail out on CORINFO_STATIC_FIELD_ADDRESS like Crossgen1 does (#32664)
This was the main problem after I overcame initial issues with
composite R2R debugging and runtime initialization: for some reason,
console output was weirdly distorted. By selectively compiling
just a subset of the framework I bisected this into
System.Console.get_Out which uses the ldsflda instruction that
Crossgen1 doesn't support. We pretended to support it but did it
incorrectly and so our result didn't match JIT. I have created
the tracking issue
https://github.com/dotnet/runtime/issues/32663
on implementing the static address as a minor perf optimization
(likely only important in some corner scenarios heavily using
statics).
Thanks
Tomas
monojenkins [Fri, 21 Feb 2020 22:35:41 +0000 (17:35 -0500)]
[metadata] Mark mono_signature_get_return_type external only (#32661)
Also `mark mono_signature_get_params` external only.
Runtime should use `mono_signature_get_return_type_internal`
and `mono_signature_get_params_internal`
Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
buyaa-n [Fri, 21 Feb 2020 22:32:30 +0000 (14:32 -0800)]
Fix nullability annotations in Pkcs (#32616)
Fixing nullability annotations
Jan Kotas [Fri, 21 Feb 2020 22:15:02 +0000 (14:15 -0800)]
JIT/EE interface cleanup (#32521)
* Delete methods on JIT/EE interface that are no longer used in CoreCLR
* Remove workaround for getLocationOfThisType method
* Hardcode verificationNeeded to false
* Added links to issues
* Delete .gitmirror files
Marie Píchová [Fri, 21 Feb 2020 21:18:37 +0000 (22:18 +0100)]
Removed misleading doc and added -vs testing (#32618)
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Egor Chesakov [Fri, 21 Feb 2020 20:22:10 +0000 (12:22 -0800)]
[Arm64] AddAcross MaxAcross MinAcross MaxNumber MaxNumberPairwise MaxPairwise (#32620)
Implements the following intrinsics:
* AddPairwise, AddPairwiseScalar
* MaxAcross
* MaxNumber, MaxNumberScalar
* MaxNumberAcross
* MaxPairwise, MaxPairwiseScalar
* MinAcross
* MinNumberAcross
* MinPairwise, MinPairwiseScalar
---
Updates AddAcross to return Vector64<T> as we discussed in API review meeting
---
Updates emitter such that emitIns functions for faddp (scalar), fmaxp (scalar), fmaxv, smaxv and similar instructions require opt argument to have non-INS_OPTS_NONE value (i.e. specified according to the Arm technical documentation even in a case when an instruction has only one valid vector arrangement). For example, 2-operand form of faddp requires INS_OPTS_2S or INS_OPTS_2D options to be specified and fmaxv requires INS_OPTS_4S.
---
Changes the precedence of criteria for computing instruction SIMD size for GT_HWINTRINSIC node. This is needed for AddAcross, MaxAcross, AddPairwiseScalar etc.
For example, AddPairwiseScalar returns Vector64<T> value and before that change the SIMD size computed here was based only on the return value size (even when BaseTypeFromFirstArg or BaseTypeFromSecondArg flags were set), i.e. it was 8 bytes in all of these cases:
* Vector64<float> AddAcross(Vector128<float> value) - SIMD size should be 16 bytes FADDV Sd, Vn.4S
* Vector64<float> AddPairwiseScalar (Vector64<float> value) - SIMD size is 8 bytes FADDP Sd, Vn.2S
* Vector64<double> AddPairwiseScalar (Vector128<double> value) - SIMD size should be 16 bytes FADDP Dd, Vn.2D
---
Moves smaxv, sminv, addv and similar instructions to a separate instruction form DV_2T.
Nathan Ricci [Fri, 21 Feb 2020 18:50:55 +0000 (13:50 -0500)]
Added some parenthesis and a cast to control order of operations. (#32640)
Fix intermittent negative values from GetTotalBytesAllocated.
Alexander Nikolaev [Fri, 21 Feb 2020 18:44:22 +0000 (19:44 +0100)]
AllowNatTraversal is properly set for stopped socket (#32603)
If AllowNatTraversal is called on a stopped TcpListener when ```_serverSocket``` is null, ```allow``` value gets stored in a field. Subsequently, if a new socket is created on Start call, the saved value is read and the corresponding argument is passed to SetIPProtectionLevel call after which the value is reset to preserve the current IPProtectionLevel propagation logic. The follow-up issue is #32653
Fixes #32551
Stephen Toub [Fri, 21 Feb 2020 18:08:13 +0000 (13:08 -0500)]
Remove CreditManager from Http2Stream (#32624)
The CreditManager implementation supports multiple awaiters, but Http2Stream's CreditManager never has more than one waiter at a time. We can instead just encode similar logic into Http2Stream, and make its waiter a reusable singleton, such that if we have to allocate it, we can just keep reusing it for all subsequent waits. This means we avoid the CreditManager allocation per Http2Stream as well as the Waiter allocation per wait (other than the first).
Cory Nelson [Fri, 21 Feb 2020 18:00:30 +0000 (10:00 -0800)]
Fix NetworkInformation / execution context usage for HTTP/3 and Alt-Svc (#32621)
Fix: leaking NetworkAddressChangedEventHandler and related WeakReference if user does not Dispose HttpClient. Resolves #32526.
Fix: using HttpClient from within a suppressed execution context. Add test for this. Resolves #32524.
Fix: capturing excessive execution context in Alt-Svc expiration timer.
Optimization: do not monitor for network changes until a non-persistent Alt-Svc is used.
Barry Dorrans [Fri, 21 Feb 2020 17:59:34 +0000 (09:59 -0800)]
Adding new MSRC portal details (#32652)
* Adding new MSRC portal details
* Update SECURITY.md
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Ilya [Fri, 21 Feb 2020 17:59:19 +0000 (22:59 +0500)]
Annotate System.Net.Primitives for nullable (#31794)
* Annotate System.Net.Primitives for nullable
* Fix build breaks in other libraries due to new annotations
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Nathan Ricci [Fri, 21 Feb 2020 16:17:00 +0000 (11:17 -0500)]
Merge pull request #32494 from naricc/naricc/GetGCMemoryInfoFix
Correct values for HighMemoryLoadThresholdBytes, MemoryLoadBytes.
Bernhard Urban-Forster [Fri, 21 Feb 2020 13:42:36 +0000 (14:42 +0100)]
[mono/metadata] add definitions for ENCLog/ENCMap (#32645)
Egor Bogatov [Fri, 21 Feb 2020 13:28:56 +0000 (16:28 +0300)]
[mono] Add RunCoreFxTest AOT targets to mono.proj (+ more rules for Makefile) (#31893)
* Add run-tests-corefx rule
* Add AOT targets
* Add Makefile targets
monojenkins [Fri, 21 Feb 2020 10:25:00 +0000 (05:25 -0500)]
[interp] Cleanup: Replace retval-> with result. and retval with &result. (#32589)
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Bernhard Urban-Forster [Fri, 21 Feb 2020 09:56:11 +0000 (10:56 +0100)]
[mono] .gitignore autom4te.cache (#32644)
monojenkins [Fri, 21 Feb 2020 08:43:59 +0000 (03:43 -0500)]
[interp] Allow inlining. (#32574)
Implied extra stack use is probably ok now, and this wasn't generally the most problematic stack in the first place, albeit still somewhat worth optimizing.
Might want to leave this alone for now, at least not without testing against current iOS/Blazor.
There is much other mitigating change, but these *might* matter.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Ahson Khan [Fri, 21 Feb 2020 06:06:08 +0000 (22:06 -0800)]
Fix up area owner GitHub alias (#32639)
Ahson Khan [Fri, 21 Feb 2020 05:46:23 +0000 (21:46 -0800)]
Update tests to deserialize char so that they align better with the (#32636)
behavior being tested.
buyaa-n [Fri, 21 Feb 2020 05:34:03 +0000 (21:34 -0800)]
Remove local header compressed/uncomressed size validation vs central directory records (#32149)
* Zip data descriptor validation update and AppContext switch option
Levi Broderick [Fri, 21 Feb 2020 04:54:32 +0000 (20:54 -0800)]
Remove some calls to wstrcpy (#32342)
Nathan Ricci [Tue, 18 Feb 2020 04:08:49 +0000 (23:08 -0500)]
Correct values for HighMemoryLoadThresholdBytes, MemoryLoadBytes.
Renabled test.
Can't reenable that test yet.
Jeremy Barton [Fri, 21 Feb 2020 01:52:44 +0000 (17:52 -0800)]
Make X509Certificate.Export non-null-returning
Mike McLaughlin [Fri, 21 Feb 2020 00:28:14 +0000 (16:28 -0800)]
Fix createdump failures on alpine in diagnostics repo tests (#32579)
Add "loadbias" to dynamic entries RVAs on Alpine Linux.
Move the Windows includes files and other defines from elfreader.h to elfreader.cpp.
Make the two ways the ElfReader is used more clear by renaming and cleanup some
function names:
1) PopulateForSymbolLookup (was PopulateElfInfo) for looking up symbols and caches
symbol/string table state in the ElfReader class.
2) EnumerateElfInfo (was PopulateElfInfo also) which is used by createdump to enumerate
all the native modules and their program headers and doesn't depend on or caches any state.
monojenkins [Thu, 20 Feb 2020 23:19:49 +0000 (18:19 -0500)]
[interp] Non-recursive newobj. (#32533)
A few weird here, esp. for string, but CI passes.
Acknowledged but skipped for now, a request to also refactor the opcode -- it doesn't seem like much throwaway work to go in either order, even if the code is dead (which I don't know).
Also amend recent nonrecursive PR to simulate stack +2 instead of +1.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Anirudh Agnihotry [Thu, 20 Feb 2020 22:39:38 +0000 (14:39 -0800)]
updating docs and removing BuildConfiguration and ConfigurationGroup (#32062)
* build config and update docs
* remove configurationGroup and update docs
* addressing feedback
* viktor comments
Viktor Hofer [Thu, 20 Feb 2020 22:28:17 +0000 (23:28 +0100)]
Remove compiler downgrade (#32474)
* Remove compiler downgrade
* Fix nullability warnings on S.Text.Json due to attributes now evaluated
* Fix compiler warnings in System.Runtime.cs
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Chris Ross [Thu, 20 Feb 2020 21:42:07 +0000 (13:42 -0800)]
Move System.Net.Quic to internal shared source (#32549) (#32610)
monojenkins [Thu, 20 Feb 2020 21:07:22 +0000 (16:07 -0500)]
[wasm] Improve locals visualization (#32503)
Co-authored-by: Ankit Jain <radical@gmail.com>
Kevin Jones [Thu, 20 Feb 2020 21:06:41 +0000 (16:06 -0500)]
Permit incorrectly DER sorted SET for decoding X500 names. (#32604)
* Permit incorrectly DER sorted SET for decoding X500 names.
* Add comment to explain.
Stephen Toub [Thu, 20 Feb 2020 21:06:28 +0000 (16:06 -0500)]
Increase timeout in ValueTaskTests (#32607)
Vladimir Sadov [Thu, 20 Feb 2020 20:39:20 +0000 (12:39 -0800)]
Fix verify_heap to handle > 1 UOH generations (#32586)
Stephen Toub [Thu, 20 Feb 2020 19:58:35 +0000 (14:58 -0500)]
Temporarily disable nullable enabled for Pkcs (#32617)
Simon Nattress [Thu, 20 Feb 2020 19:34:07 +0000 (11:34 -0800)]
Run SuperIlc with CoreRun
Eric Erhardt [Thu, 20 Feb 2020 18:26:57 +0000 (12:26 -0600)]
Remove unused LogSendPacketsBuffers method (#32605)
buyaa-n [Thu, 20 Feb 2020 18:03:32 +0000 (10:03 -0800)]
Annotate System.Security.Cryptography.Pkcs for nullable (#32571)
* Annotate System.Security.Cryptography.Pkcs
Juan Hoyos [Thu, 20 Feb 2020 18:02:35 +0000 (10:02 -0800)]
Fix debugger crash during unload of assemblies in ALC (#32311)
* Add implementation for DebuggerModuleTable::RemoveModule
Alaa Masoud [Thu, 20 Feb 2020 17:44:05 +0000 (20:44 +0300)]
Remove duplicate ToString() call (#32598)
Eirik Tsarpalis [Thu, 20 Feb 2020 17:42:26 +0000 (17:42 +0000)]
Nullable annotate System.Security.Cryptography.X509Certificates (#32191)
* Nullable annotate System.Security.Cryptography.X509Certificates
* address feedback
* address feedback
* address feedback
* address feedback
Alaa Masoud [Thu, 20 Feb 2020 16:52:19 +0000 (19:52 +0300)]
Avoid Split(new char[]) inside loops (#32601)
Santiago Fernandez Madero [Thu, 20 Feb 2020 16:51:04 +0000 (08:51 -0800)]
Cleanup System.Text.Json tests names with issue number (#32562)
* Cleanup System.Text.Json tests names with issue number
* Fix build
* Cleanup more test/classes names
* PR Feedback
Viktor Hofer [Thu, 20 Feb 2020 16:39:21 +0000 (17:39 +0100)]
Update testing with configuration system changes
Stephen Toub [Thu, 20 Feb 2020 14:28:01 +0000 (09:28 -0500)]
Reduce simple HTTP/2 post app allocation by ~40% (#32557)
* Remove cancellation-related allocations in Http2Stream
We don't need to allocate a linked token source in SendRequestBodyAsync if the caller's token is the default
* Reduce size of SendDataAsync state machine
We're carrying around an extra 24-bytes for a `ReadOnlyMemory<byte>`, when we could instead just use the argument.
* Tweak HeaderField's ctor to use ROS.ToArray
If `value` happens to be empty, this will avoid an allocation. But what actually led me to do this was just tightening up the code.
* Make HPackDecoder.State enum 1 instead of 4 bytes
* Remove spilled CancellationTokenSource field from SendDataAsync
* Add known-header values for access-control-* headers
* Reduce allocation in SslStream.ReadAsync
The current structure is that ReadAsync makes two calls to FillBufferAsync, one to ensure the frame header is read and another to ensure any additional payload is read. This has two issues:
1. It ensures that in addition to allocating a state machine for FillBufferAsync (or, rather, a helper it uses) when it needs to yield, it'll also end up allocating for ReadAsync.
2. It complicates error handling, which needs to differentiate whether the first read can't get any bytes or whether a subsequent read can't, which necessitates storing state like how many bytes we initially had buffered so we can compare to that to see if we need to throw.
We can instead:
- Make FillBufferAsync into a simple "read until we get the requested number of bytes" loop and throw if it fails to do so.
- Do the initial read in ReadAsync, thereby allowing us to special-case the first read for both error handling and to minimize the chances that the helper call needs to yield.
This eliminates a bunch of FillBufferAsync state machines and also decreases the size of the state machines when they are needed.
* Replace CreditManager's waiter queue with a circular singly-linked list
This has a variety of benefits:
- We no longer need to allocate a `Queue<Waiter>` and its underlying `Waiter[]`.
- We no longer need to allocate a `TaskCompletionSource<int>` and its `Task<int>`, instead creating a single `IValueTaskSource<T>` implementation.
- For non-cancelable waiters, we can specialize to not need to carry around a meaningless CancellationToken field.
- For cancelable waiters (the common case), we can avoid an entire async method and its state machine by just storing the relevant state onto the waiter itself.
* Fix comment from previous change
* Manually inline and specialize EnsureIncomingBytesAsync
It's not that much more code to just manually inline EnsureIncomingBytesAsync into the three places it's used, and doing so has multiple benefits, both for size and for error messages.
* Update src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http2Connection.cs
Co-Authored-By: Cory Nelson <phrosty@gmail.com>
* Fix typo in online feedback
Co-authored-by: Cory Nelson <phrosty@gmail.com>
Egor Bogatov [Thu, 20 Feb 2020 14:16:59 +0000 (17:16 +0300)]
Fix minor issue in debugging.md (#32597)
monojenkins [Thu, 20 Feb 2020 14:06:00 +0000 (09:06 -0500)]
Add struct offset definitions to s390x (#32591)
Fix build on s390x after commit 79135c6
Fixes: mono/mono#18930
Co-authored-by: sharkcz <dan@danny.cz>
monojenkins [Thu, 20 Feb 2020 12:59:52 +0000 (07:59 -0500)]
[debugger] Enable reading embedded ppdb (#32447)
To fix the issue of enable reading embedded pdb everywhere the problem was that when the roslyn tests are compiling sources it creates embedded pdb with source file "", and before enable reading the embedded pdb we don't read this information, and now we read and our StackTrace corlib doesn't expect a source file "", it's okay if it's NULL but not "".
I could fix in corlib or in mono, I prefer to fix on mono because I don't know if there is any other place in corlib that doesn't expect source file "".
Co-authored-by: Thays Grazia <thaystg@gmail.com>
Maxim Lipnin [Thu, 20 Feb 2020 10:01:25 +0000 (13:01 +0300)]
[mono] Remove CoreFX.issues_mac.rsp file (#32585)
* Remove CoreFX.issues_mac.rsp
* Replace ActiveIssue with ConditionalFact
monojenkins [Thu, 20 Feb 2020 09:51:40 +0000 (04:51 -0500)]
Remove LOCK_DECLARE and LOCK_INIT -- unused and incorrect comments (not idempotent). (#32572)
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Eugene Rozenfeld [Thu, 20 Feb 2020 08:40:24 +0000 (00:40 -0800)]
Check return code of bootstrap script in format.py. (#32581)
Formatting jobs run format.py script, which calls bootstrap.{cmd/sh}
from jitutils. This change adds a check for return code of the call and
returns an error code from format.py if bootstrap.{cmd/sh} failed.
Bernhard Urban-Forster [Thu, 20 Feb 2020 08:30:33 +0000 (09:30 +0100)]
[metadata] use descriptive constants for method table columns (#32567)
Felipe Pessoto [Thu, 20 Feb 2020 08:15:58 +0000 (00:15 -0800)]
Fix OverflowException in JsonSerializer.Serialize (#1308)
* Add failing test
At first I tried to create five internal references to CustomClassToExceedMaxBufferSize and create 25 levels deep instances, but the tests ran forever. So I changed it to have several big string properties, which lead to the System.OverflowException using 3 level deep instance.
* Initial implementation. Still needs to throw the appropriated Exception
* Validate new buffer size against MaxByteArrayLength
* When newSize overflows because growBy == _renteBuffer.Length, it tries to use growBy = sizeHint
If it still overflow, we set the newSize to int.MaxValue, which will throw an OutOfMemoryException when calling ArrayPool.Rent.
* Change to make assembly smaller and reduce a extra check in the common case
* Name conventions
OuterLoop
Make the test simpler
* Improve assembly size
Run test on 64 bits only
* Added Platform Specific attribute.
Separate OuterLoop attribute, to be consistent with the other tests in this solution.