platform/upstream/dotnet/runtime.git
4 years ago[wasm] Enable the library test suites that have no failures at the moment (#39427)
Maxim Lipnin [Thu, 16 Jul 2020 13:21:13 +0000 (16:21 +0300)]
[wasm] Enable the library test suites that have no failures at the moment (#39427)

4 years agoFix non-windows test failure on Microsoft.Extensions.Hosting.HostTests.CreateDefaultB...
Maryam Ariyan [Thu, 16 Jul 2020 12:24:20 +0000 (05:24 -0700)]
Fix non-windows test failure on Microsoft.Extensions.Hosting.HostTests.CreateDefaultBuilder_RegistersEventSourceLogger (#39411)

* ifdefing SuppressGCTransition out of Logging.Console

Fixes #39404

Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
4 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20200714.3 (#39392)
dotnet-maestro[bot] [Thu, 16 Jul 2020 11:01:09 +0000 (13:01 +0200)]
Update dependencies from https://github.com/dotnet/arcade build 20200714.3 (#39392)

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat
 From Version 5.0.0-beta.20330.3 -> To Version 5.0.0-beta.20364.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years agoupdate branding to rc1 (#39418)
Jan Jahoda [Thu, 16 Jul 2020 10:41:53 +0000 (12:41 +0200)]
update branding to rc1 (#39418)

* update branding to rc1

* update branding to rc1

Co-authored-by: Jan Jahoda <jajahoda@.microsoft.com>
4 years agoFix source build (CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE) (#39391)
Mike McLaughlin [Thu, 16 Jul 2020 06:09:04 +0000 (23:09 -0700)]
Fix source build (CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE) (#39391)

Fixes issue #https://github.com/dotnet/runtime/issues/2014

Adds back ELF unwind info parsing code that has been around since 3.0 so it is fairly well tested. It is conditional on CLR_CMAKE_USE_SYSTEM_LIBUNWIND, otherwise, PAL_VirtualUnwindOutOfProc uses the new libunwind8 _OOP_find_proc_info function.

4 years agoIntroduce BinaryFormatter enablement switch; disable on wasm (#38963)
Levi Broderick [Thu, 16 Jul 2020 05:26:32 +0000 (22:26 -0700)]
Introduce BinaryFormatter enablement switch; disable on wasm (#38963)

Applications are given the option of disabling BinaryFormatter.Serialize and BinaryFormatter.Deserialize, meaning they'll throw NotSupportedException if anybody tries calling them. WASM projects always disable these APIs via a hardcoded mechanism; there is no re-enablement mechanism for those projects.

This commit only introduces the switch. It does not disable it in any project types by default. (Exception: wasm, as mentioned above.) The related PR https://github.com/dotnet/sdk/pull/12434 causes aspnet 5.0+ applications to disable BinaryFormatter functionality by default, but apps can re-enable if needed.

4 years agoAdd JsonIgnoreCondition.WhenWritingNull (#39388)
Layomi Akinrinade [Thu, 16 Jul 2020 03:49:09 +0000 (20:49 -0700)]
Add JsonIgnoreCondition.WhenWritingNull (#39388)

* Add JsonIgnoreCondition.WhenWritingNull

* Address review feedback

4 years agoInterpret DOTNET_BUNDLE_EXTRACT_BASE_DIR without dir separator as relative path ...
Mateo Torres-Ruiz [Thu, 16 Jul 2020 03:48:52 +0000 (20:48 -0700)]
Interpret DOTNET_BUNDLE_EXTRACT_BASE_DIR without dir separator as relative path (#39331)

* Get absolute path

4 years agoAdd support for GCPOLL_INLINE for crossgen (#39376)
Jan Kotas [Thu, 16 Jul 2020 01:34:48 +0000 (18:34 -0700)]
Add support for GCPOLL_INLINE for crossgen (#39376)

Fixes #13591

4 years agoMove ICU dependency to product (#39382)
Matt Mitchell [Thu, 16 Jul 2020 00:59:13 +0000 (17:59 -0700)]
Move ICU dependency to product (#39382)

4 years agoUse more consistent manifest attributes (#39360)
Matt Mitchell [Wed, 15 Jul 2020 23:41:53 +0000 (16:41 -0700)]
Use more consistent manifest attributes (#39360)

Create manifest attributes that are consistent with arcade's usage.

4 years agoAllow ctor parameters to exactly match property name (#38959)
Steve Harter [Wed, 15 Jul 2020 22:43:07 +0000 (17:43 -0500)]
Allow ctor parameters to exactly match property name (#38959)

4 years agoMicro optimizations for serialization (#39323)
Steve Harter [Wed, 15 Jul 2020 22:27:54 +0000 (17:27 -0500)]
Micro optimizations for serialization (#39323)

4 years agouse new API on new windows to get TLS13 (#37888)
Tomas Weinfurt [Wed, 15 Jul 2020 22:07:32 +0000 (15:07 -0700)]
use new API on new windows to get TLS13 (#37888)

* use new API on new windows to get TLS13

* use unmanaged ref to avoid copy

* feedback from review

* feedback from review

* feedback from review

* kick the build

4 years agoFix 2 noRetypingRegressions. (#39345)
Sergey Andreenko [Wed, 15 Jul 2020 21:57:39 +0000 (14:57 -0700)]
Fix 2 noRetypingRegressions. (#39345)

* don't mark stack indir as 'X'.

* Fold OBJ(ADDR(x)) under ASG when possible.

* FIx issues found by Carol

4 years agoQuiet crossgen2 output (#39340)
David Wrighton [Wed, 15 Jul 2020 21:43:31 +0000 (14:43 -0700)]
Quiet crossgen2 output (#39340)

Crossgen2 currently prints many unnecessary details to the console using strings that are regarded as temporary

- Update the type system exceptions to use descriptive strings instead of [TEMPORARY ERROR MESSAGE]XXX
- Do not print any error when a method isn't compiled due to lack of IL code
  - This is common, and not a failure of any form
- Tie logging of non-compiled methods to the --verbose switch
  - We may wish to provide variable logging levels, but that can easily be done in the future

4 years agoVxsort (#37159)
Peter Sollich [Wed, 15 Jul 2020 20:57:01 +0000 (22:57 +0200)]
Vxsort (#37159)

* Initial snapshort of vxsort implementation incorporating source code from Dan Shechter.

* Bug fix from Dan.

* Use bigger mark list for experiments.

* Give up if the mark list size is bigger than a reasonable fraction of the ephemeral space.

* Latest version from Dan, disable for ARM64.

* Fixes for Linux compile, ended up disabling vxsort for Linux for now.

* Experimenting with 32-bit sort - the variation that gathers mark list entries pertaining to the local heap by reading the mark lists from all the heaps appears to be too slow and scales very badly with increasing number of heaps.

* 32-bit sort - preserve failing case.

* Do the pointer compression/decompression in place, to improve performance, optionally write mark lists and associated information to binary files for further analysis.

* Introduce runtime check whether CPU supports AVX2 instruction set.

* Implement mark list growth.

* Integrate new version including AVX512 code path.

* Implement runtime test for AVX512 support.

* Move the files for the vectorized sort to their own directory, add stubs to call AVX2 or AVX512 flavor of the sort.

* Get rid of unneeded #include statement in two files.

* Address codereview feedback to specifically say AVX512F instead of just AVX512 as there are multiple subsets.

* Fix CMakeLists.tx files for non-x64 non-Windows targets, introduce separate max mark list sizes for WKS, remove dead code from grow_mark_list, add #ifdef to AVX512 detection to make the other architectures build.

* Instead of modifying the tool-generated header file corinfoinstructionset.h, modify InstructionSetDesc.txt that it is generated from, and run the tools that generates all the files from it.

* Move AVX2/AVX512 instruction set detection to GC side.

* Use vectorized packer, switch packed range from uint32_t to int32_t, because that makes the sorting a bit more efficient.

* Add GCConfig setting to turn vectorized sorting off, streamline ISA detection (but require initialization), rename to IsSupportedInstructionSet.

* Several small improvements:
 - Don't waste time sorting the mark list if background GC is running as we are not going to use it.
 - Use smaller max mark list size if we cannot use AVX2/AVX512 instruction sets
 - Fix mark list overflow detection for server GC.

* Address codereview feedback - add constants for the thresholds above which we use AVX/AVX512F instruction sets.

Add space before parameter lists as per GC codebase coding conventions.

Improve some comments.

* Add license headers and entry in THIRD-PARTY_NOTICES.TXT for Dan's vectorized sorting code.

* Update license headers

* Address code review feedback:
 - fix typo in comment in InitSupportedInstructionSet
 - move test for full GC to beginning of sort_mark_list
 - in WKS GC, we can use the tighter range shigh - slow for the surviving objects instead of the full ephemeral range.
 - make the description for the new config setting GCEnabledInstructionSets more explicit by enumerating the legal values and their meanings.

* Snapshot for Linux changes

* Add more definitions to immintrinh.h

* Fix cmake warnings about mismatched endif clauses.

* Disable Linux support for now due to multiple compile & link errors.

* Address code review feedback:
 - add instructions to bitonic_gen.py
 - centralize range and instruction set checks in do_vxsort
 - add parentheses around expressions.
 - removed some printfs, converted others to dprintf
 - strengthened assert

4 years agoMove wasm queue to one that has more capacity and condition it (#39373)
Santiago Fernandez Madero [Wed, 15 Jul 2020 20:54:15 +0000 (13:54 -0700)]
Move wasm queue to one that has more capacity and condition it (#39373)

4 years agoMake CreateHMAC(ReadOnlySpan<byte> key) public.
Kevin Jones [Wed, 15 Jul 2020 20:50:49 +0000 (16:50 -0400)]
Make CreateHMAC(ReadOnlySpan<byte> key) public.

4 years ago[Test] EventPipe test enhancements (#39212)
John Salem [Wed, 15 Jul 2020 20:27:59 +0000 (13:27 -0700)]
[Test] EventPipe test enhancements (#39212)

4 years agoWASM: Fix System.IO.MemoryMappedFiles tests (#39355)
Alexander Köplinger [Wed, 15 Jul 2020 20:22:04 +0000 (22:22 +0200)]
WASM: Fix System.IO.MemoryMappedFiles tests (#39355)

4 years agoApply CA2016: Forward CancellationToken to methods that can take it (#37607)
Carlos Sanchez Lopez [Wed, 15 Jul 2020 20:10:46 +0000 (13:10 -0700)]
Apply CA2016: Forward CancellationToken to methods that can take it (#37607)

* Forward CancellationToken to methods that can take it

* Address suggestions

* address suggestions

* Revert using

* Make rule 2016 a warning in runtime

* Extra cases found

* Revert changes that should not pass a token, change rule to info to verify build and test CI results

* Pass CancellationToken.None to base.CreateContentReadStreamAsync, as in its default overload

* Address stack overflow in MultipartContent

* HostingAbstractionsHostExtensions address using

* Update nuget package version to latest, Info->Warning again, fix one more case.

* System.Diagnostics.ProcessWaitState.Unix token

* Remove two unnecessary tokens

4 years agoFix `fgOptimizeBranch` when run late. (#39320)
Eugene Rozenfeld [Wed, 15 Jul 2020 19:51:05 +0000 (12:51 -0700)]
Fix `fgOptimizeBranch` when run late. (#39320)

`fgOptimizeBranch` can now run during fgInsertGCPolls() so
it needs additional processing for newly-created statements.

Fixes #39308.

4 years ago[mono] Improve RuntimeConstructorInfo.ToString (#38451)
Alexis Christoforides [Wed, 15 Jul 2020 18:40:46 +0000 (14:40 -0400)]
[mono] Improve RuntimeConstructorInfo.ToString (#38451)

* [mono] Improve RuntimeConstructorInfo.ToString

Use CoreCLR's code. Fixes https://github.com/dotnet/runtime/issues/36688

* Use CoreCLR's code for RuntimeMethodInfo too

4 years agoMake IgnoreNullValues apply only to reference types (#39147)
Layomi Akinrinade [Wed, 15 Jul 2020 18:36:59 +0000 (11:36 -0700)]
Make IgnoreNullValues apply only to reference types (#39147)

4 years agoexception from PerformWriteAsync should be asynchronous (#39325)
Geoff Kizer [Wed, 15 Jul 2020 17:41:27 +0000 (10:41 -0700)]
exception from PerformWriteAsync should be asynchronous (#39325)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
4 years agoFix `ASG struct (copy)` with different src and dst sizes after global morph. (#39137)
Sergey Andreenko [Wed, 15 Jul 2020 17:23:28 +0000 (10:23 -0700)]
Fix `ASG struct (copy)` with different src and dst sizes after global morph. (#39137)

* Fix the issue.

* add an IL repo.

* reenable the optimization.

* Don't do the transformation when optimizations are disabled.

4 years agoJIT: avoid crashing on unexpected types for brtrue/brfalse (#39312)
Andy Ayers [Wed, 15 Jul 2020 17:16:52 +0000 (10:16 -0700)]
JIT: avoid crashing on unexpected types for brtrue/brfalse (#39312)

Abort jitting with BADCODE if there's a type the jit can't handle,
rather than allowing an AV in the jit.

Closes #38956.

4 years agoHandle 'unmanaged' calling convention value (#39030)
Elinor Fung [Wed, 15 Jul 2020 17:13:45 +0000 (10:13 -0700)]
Handle 'unmanaged' calling convention value (#39030)

4 years agoFix up trimming tests for new SDK (#39334)
Eric Erhardt [Wed, 15 Jul 2020 17:08:00 +0000 (12:08 -0500)]
Fix up trimming tests for new SDK (#39334)

Now that we have a new SDK with the latest linker settings, we need to change how we invoke the linker during the trimming tests.

4 years agoAdds Console Log Formatting APIs (#38616)
Maryam Ariyan [Wed, 15 Jul 2020 17:05:09 +0000 (10:05 -0700)]
Adds Console Log Formatting APIs (#38616)

4 years ago[wasm] Modify System.Net.Security to throw PNSE (#39358)
Maxim Lipnin [Wed, 15 Jul 2020 17:00:26 +0000 (20:00 +0300)]
[wasm] Modify System.Net.Security to throw PNSE (#39358)

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoDisable eventpipe/gcdump test against #39361 (#39362)
Jan Kotas [Wed, 15 Jul 2020 16:48:54 +0000 (09:48 -0700)]
Disable eventpipe/gcdump test against #39361 (#39362)

4 years ago[interp] Intrinsify span ctor (#39195)
Vlad Brezae [Wed, 15 Jul 2020 16:37:07 +0000 (19:37 +0300)]
[interp] Intrinsify span ctor (#39195)

* [interp] Fix definition of instruction

* [interp] Intrinsify span ctor

It is heavily used in bcl for static read only spans.

In the future we should do copy propagation through its fields so we avoid creating the span in the first place and remove other unecessary opcodes.

* [interp] Allow method inlining if constructor is intrinsified

* Fix case where has_references is not yet initialized

4 years agoGenerate only unique entries in wasm pinvoke table generator (#39356)
Marek Safar [Wed, 15 Jul 2020 16:21:50 +0000 (18:21 +0200)]
Generate only unique entries in wasm pinvoke table generator (#39356)

4 years agoRemove debug only attributes when Debugger.IsSupported is false. (#39237)
Eric Erhardt [Wed, 15 Jul 2020 15:46:04 +0000 (10:46 -0500)]
Remove debug only attributes when Debugger.IsSupported is false. (#39237)

* Remove debug only attributes when Debugger.IsSupported is false.

Contributes to https://github.com/mono/linker/issues/1093

* Move debug only attributes to shared CoreLib.

4 years agoApply arm64 intrinsics to System.Text.Encodings.Web (#38707)
Eirik Tsarpalis [Wed, 15 Jul 2020 14:50:48 +0000 (15:50 +0100)]
Apply arm64 intrinsics to System.Text.Encodings.Web (#38707)

* use arm64 intrinsics in FindFirstCharacterToEncodeUtf8

* remove whitespace

* shim intrinsics apis for netstandard & netcoreapp targets

* use shimmed APIs in DefaultJavascripEncoder.cs

* implement MoveMask over AdvSimd

* Fix build and remove x86 shims

* remove stub goto labels

* implement optimizations for FindFirstCharacterToEncodeUtf8

* optimize FindFirstCharacterToEncode

* fix bug

* implement optimizations for FindFirstCharacterToEncodeUtf8

* remove goto labels

* optimize FindFirstCharacterToEncode

* Optimiize FindFirstCharacterToEncodeUtf8

* bug fix

* add missing shim methods

* fix bug

* minor cleanups

* cleanup and add comments

* address feedback

* address feedback and add checks for endianness

* address feedback

* Use shims from CoreLib

* Remove AdvSimdHelper.MoveMask and factor non-ascii byte locator logic into architecture-specific helper methods

* address feedback

* reinstate goto labels

* revert removed goto labels

* revert more changes

* address feedback

* address feedback

* further optimize GetIndexOfFirstNonAsciiByte

* add TODO comment

4 years agoAdd PlatformNotSupportedException for Browser version of System.Net.Sockets (#39346)
Marek Safar [Wed, 15 Jul 2020 14:49:05 +0000 (16:49 +0200)]
Add PlatformNotSupportedException for Browser version of System.Net.Sockets (#39346)

4 years ago[Crossgen2] Add DelayLoadMethodCallThunks table, fix stack walks containing thunks...
Simon Nattress [Wed, 15 Jul 2020 14:45:24 +0000 (07:45 -0700)]
[Crossgen2] Add DelayLoadMethodCallThunks table, fix stack walks containing thunks (#39063)

* [Crossgen2] Add DelayLoadMethodCallThunks table, fix stack walks containing thunks

GC stress runs with Crossgen2 binaries frequently see AVs with stack-walk failures. This occurs when a delay load thunk is being executed as a stack-walk is performed. The runtime resolves any thunk address to the code info for the last managed method in the runtime functions table.

Use the `DelayLoadMethodCallThunks` header entry to avoid finding an R2R method when the actual IP address is for a stub. The issue is that the binary search algorithm in `NativeUnwindInfoLookupTable::LookupUnwindInfoForMethod` which doesn't correctly return -1 if the code address being searched for is larger than any present. That issue cannot easily be fixed inside of that routine as identifying the end of a function via the `RUNTIME_FUNCTION` structure is slow on some platforms and impossible on others (Windows X86). This old bug was not hit because Crossgen emits stubs earlier in the image than managed code, whereas the two are reversed with Crossgen2.

Fix generation of the RuntimeFunctionsTable so that the terminating sentinel node is not treated as part of the table in the R2R header entry for the table. This was causing the sentinel node to be treated as its own runtime function by the runtime and could lead to reading beyond the table bounds in `NativeUnwindInfoLookupTable::LookupUnwindInfoForMethod`. The bug in the binary search of the table hid this bug until now.

Add the `DelayLoadMethodCallThunks` header entry. `DelayLoadMethodCallThunkNodeRange` is a placeholder node (not an `ObjectNode`) to provide a symbol to relocate against from the header. It represents the range of import thunks. Add support to the object writer for defining a range between two symbols in the same section. The relocation phase can then resolve the difference between the two symbols to determine the range size.

Fixes https://github.com/dotnet/runtime/issues/38482

Co-authored-by: David Wrighton <davidwr@microsoft.com>
4 years agoAdd static one-shot hashing methods
Kevin Jones [Wed, 15 Jul 2020 14:01:24 +0000 (10:01 -0400)]
Add static one-shot hashing methods

With this change:

* Building up hashes, piecemeal: IncrementalHash
* One-shot hashes, polymorphically: HashAlgorithm.ComputeHash
* One-shot hashes, statically: [Algorithm].HashData

4 years ago[wasm] Remove ActiveIssue for issue #38337. Add a ConditionalFact instead, since...
Zoltan Varga [Wed, 15 Jul 2020 12:25:46 +0000 (08:25 -0400)]
[wasm] Remove ActiveIssue for issue #38337. Add a ConditionalFact instead, since the test still fails. (#39348)

4 years agoAdd .cfi annotation to CONTEXT_CaptureContext and RtlCaptureContext (#39280)
Jan Vorlicek [Wed, 15 Jul 2020 11:54:22 +0000 (13:54 +0200)]
Add .cfi annotation to CONTEXT_CaptureContext and RtlCaptureContext (#39280)

This change ensures correct unwinding of stack when stepping through
these methods under a debugger.

4 years agoThumb2 uses the Arm registers (#39318)
David Wrighton [Wed, 15 Jul 2020 11:44:35 +0000 (04:44 -0700)]
Thumb2 uses the Arm registers (#39318)

4 years agoAdd loader heap enumeration api's (ICorDebugProcess11) (#39124)
Juan Hoyos [Wed, 15 Jul 2020 10:12:51 +0000 (03:12 -0700)]
Add loader heap enumeration api's (ICorDebugProcess11) (#39124)

* IDL Change

* Store generated code for ICorDebugProcess11

* Implement ICorDebugProcess11

* PR Feedback

* Fix clang builds

4 years ago[master] Update dependencies from mono/linker dotnet/icu (#39286)
dotnet-maestro[bot] [Wed, 15 Jul 2020 09:39:26 +0000 (09:39 +0000)]
[master] Update dependencies from mono/linker dotnet/icu (#39286)

* Update dependencies from https://github.com/mono/linker build 20200713.5

Microsoft.NET.ILLink.Tasks
 From Version 5.0.0-preview.3.20361.1 -> To Version 5.0.0-preview.3.20363.5

* Update dependencies from https://github.com/dotnet/icu build 20200714.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 5.0.0-preview.8.20359.7 -> To Version 5.0.0-preview.8.20364.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years agoWASM: Enable System.Memory tests (#39319)
Alexander Köplinger [Wed, 15 Jul 2020 09:20:59 +0000 (11:20 +0200)]
WASM: Enable System.Memory tests (#39319)

One test failed with an issue: https://github.com/dotnet/runtime/issues/39311

Also noticed that StringTests.cs is included from the CommonPath, this is a historical artifact from when System.Memory built for netfx/netstandard so we could run tests on those configs.
We no longer need it since StringTests.cs is already ran in System.Runtime.Tests.

4 years agoFix location of gcdump test (#39057)
Juan Hoyos [Wed, 15 Jul 2020 08:56:45 +0000 (01:56 -0700)]
Fix location of gcdump test (#39057)

4 years agoDisallow unrestricted polymorphic deserialization in DataSet (#39304)
Levi Broderick [Wed, 15 Jul 2020 06:50:33 +0000 (23:50 -0700)]
Disallow unrestricted polymorphic deserialization in DataSet (#39304)

Fixes CVE-2020-1147
https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2020-1147
See also https://go.microsoft.com/fwlink/?linkid=2132227.

4 years agoObsolete BinaryFormatter.Serialize and BinaryFormatter.Deserialize (#39324)
Levi Broderick [Wed, 15 Jul 2020 06:32:07 +0000 (23:32 -0700)]
Obsolete BinaryFormatter.Serialize and BinaryFormatter.Deserialize (#39324)

4 years ago[wasm] Fix the propagation of exceptions through runtime invokes. (#39316)
monojenkins [Wed, 15 Jul 2020 06:22:10 +0000 (02:22 -0400)]
[wasm] Fix the propagation of exceptions through runtime invokes. (#39316)

The previous code would convert exceptions into errors which would
be rethrown later, clearing the resume state.

Hopefully fixes https://github.com/dotnet/runtime/issues/38337.

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
4 years agoPAL_VirtualUnwindOutOfProc for MacOS (#39213)
Mike McLaughlin [Wed, 15 Jul 2020 06:08:26 +0000 (23:08 -0700)]
PAL_VirtualUnwindOutOfProc for MacOS (#39213)

PAL_VirtualUnwindOutOfProc for MacOS

Add MacOS compact unwind section parsing (__unwind_info) and stepping: SearchCompactEncodingSection, SearchDwarfSection, GetProcInfo, StepWithCompactEncoding*.

Add back some (from a previous commit) of the dwarf unwind info parsing functions to use for the dwarf unwind info (__eh_frame section): ReadValue*, ReadULEB128, ReadSLEB128, ReadEncodedPointer, ParseCie, ExtractFde, ExtractProcInfoFromFde. These functions were used and fairly well tested in 3.x.

Build libunwind8 source on MacOS for those dwarf unwind info cases.

The methoddesc's enum memory region code needed add more of the code version manager's data to the coredump.

4 years agoDisable System.Net.HttpListener.Tests for TailcallStress (#39315)
Bruce Forstall [Wed, 15 Jul 2020 05:38:42 +0000 (22:38 -0700)]
Disable System.Net.HttpListener.Tests for TailcallStress (#39315)

Issue: https://github.com/dotnet/runtime/issues/39309

4 years agoImprove Activity API usability and OpenTelemetry integration (Part 2) (#39087)
Tarek Mahmoud Sayed [Wed, 15 Jul 2020 05:06:57 +0000 (22:06 -0700)]
Improve Activity API usability and OpenTelemetry integration (Part 2) (#39087)

4 years agoAdd NetFramework Configurations to OOB packages (#39099)
Jose Perez Rodriguez [Wed, 15 Jul 2020 04:59:55 +0000 (21:59 -0700)]
Add NetFramework Configurations to OOB packages (#39099)

* Porting new netfx configurations for packages

* Add Netfx configurations to Microsoft.Extensions and missing System packages

* Making sure net461 configurations build against targeting pack assembly versions

* Undo changes to add netfx configurations on reference projects that don't ship in their package

* Fix issue with M.E.FP.P package by removing NetStandard.Library metapackage dependency

* Fix issues with depending on higher version than the one available in net461

* Disable UTF8String verifyClosure on package

* Undo changes to Microsoft.XmlSerializer.Generator

* Update src/libraries/Microsoft.Extensions.FileProviders.Physical/src/Microsoft.Extensions.FileProviders.Physical.csproj

Co-authored-by: Eric StJohn <ericstj@microsoft.com>
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
4 years agoUpdate Mono's implementation of Vector<T> intrinsics. (#39322)
imhameed [Wed, 15 Jul 2020 04:40:09 +0000 (21:40 -0700)]
Update Mono's implementation of Vector<T> intrinsics. (#39322)

Recognize `get_AllBitsSet` instead of `get_AllOnes`; this internal
intrinsic was renamed in https://github.com/dotnet/runtime/pull/36579
(1c66ad1b71bb84a16b71bb5efcef1fa999c1c8bc).

Implement `Vector<T>.One` as an intrinsic.

4 years agoStruct, arg and float reg cleanup (#39284)
Carol Eidt [Wed, 15 Jul 2020 04:28:02 +0000 (21:28 -0700)]
Struct, arg and float reg cleanup (#39284)

- Unify the handling of promoted args when assigning offsets; there's no need to handle independent vs. dependent promotion separately.
- Use `varTypeUsesFloatReg` where appropriate.
- Some minor refactoring of initial reg assignment.
- Add a 'Clear' method to `StructPromotionHelper` for use after inlining (not yet in use, as it produces diffs).
- Wrap a SIMD field node in `GT_OBJ` only if needed.
These changes are preparatory to improved struct promotion for args.

4 years agoAdd TryReadTo(out ReadOnlySpan<T> span, ReadOnlySpan<T> delimiter (#39048)
Ben Adams [Wed, 15 Jul 2020 04:25:06 +0000 (05:25 +0100)]
Add TryReadTo(out ReadOnlySpan<T> span, ReadOnlySpan<T> delimiter (#39048)

* Add TryReadTo(out ReadOnlySpan<T> span, ReadOnlySpan<T> delimiter

* Tweaks

4 years ago[crossgen2] Use Alignment to calculate class Offset (#38962)
t-mustafin [Wed, 15 Jul 2020 03:56:31 +0000 (06:56 +0300)]
[crossgen2] Use Alignment to calculate class Offset (#38962)

ComputeAutoFieldLayout() function ignores calculated fieldSizeAndAlignment.Alignment and uses context.Target.LayoutPointerSize instead. It produces a problems if fieldSizeAndAlignment.Alignment > context.Target.LayoutPointerSize on arm for example.
I suggest to use maximum of that values to calculate offset.
Fixes Issue #38822

Signed-off-by: Timur <t.mustafin@partner.samsung.com>
4 years agoDisable libraries tailcallstress testing on Linux arm32 (#39317)
Bruce Forstall [Wed, 15 Jul 2020 01:34:52 +0000 (18:34 -0700)]
Disable libraries tailcallstress testing on Linux arm32 (#39317)

Issue: https://github.com/dotnet/runtime/issues/38892

4 years agoFix TestOnStartWithArgsThenStop and make service tests more reliable (#39153)
Dan Moseley [Wed, 15 Jul 2020 00:33:14 +0000 (17:33 -0700)]
Fix TestOnStartWithArgsThenStop and make service tests more reliable (#39153)

* Comment dispose

* Fix service tests

* typo

4 years ago2 small cleanup: 2 printf formatiing typos and 1 function header. (#39321)
Sergey Andreenko [Tue, 14 Jul 2020 23:52:20 +0000 (16:52 -0700)]
2 small cleanup: 2 printf formatiing typos and 1 function header. (#39321)

* Fix 2 cases of wrong prinf formatting.

old typos.

* Change `fgIsIndirOfAddrOfLocal` return type to the precise.

4 years agoAssembly.Location should return empty string for assemblies loaded from single-file...
Vitek Karas [Tue, 14 Jul 2020 23:45:15 +0000 (16:45 -0700)]
Assembly.Location should return empty string for assemblies loaded from single-file bundle (#39275)

Changes made to PEFile to report empty string for path when it comes directly from the bundle.

I experimented with changing the PEImage m_path to empty string, but way too many things break. It is valid for the m_path to be empty, but we only use it to memory-loaded assemblies where the assembly loaded via PEImage::LoadFlat which does things very differently. The bundle still relies on opening the assembly as a file (file handle and offset).

The end result is that internally the assembly's PEImage has a non-existent m_path (it points to the base directory and the file name of the assembly, but no such file will normally exist). I don't think anything will actually use the path to access the file though.

Also changed how we load CoreLib from bundle. We used to give it path "System.Private.CoreLib.dll" which causes asserts in the runtime in couple of places (the one I hit was when trying to load assembly from memory - it gets CoreLib as its creator and we call GetPath on the creator and then validate the path in debug builds). As far as I can tell this change should not make any observable effect, other than fixing the fact that we expect the m_path of a PEImage to be either empty or absolute path.

4 years ago[wasm] Address System.Runtime.Loader failures (#39306)
Mitchell Hwang [Tue, 14 Jul 2020 21:27:24 +0000 (17:27 -0400)]
[wasm] Address System.Runtime.Loader failures (#39306)

* [wasm] Condition Finalizer_CollectibleWithNoAssemblyLoaded with precise gc supported

* [wasm] Modify SatelliteAssemblies member data and condition on NonInvariantGlobalization

* [libraries] Remove System.Runtime.Loader project from exclusions

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
4 years agoWASM: run tests on CI only in rolling and/or when libraries/tests.proj is changed...
Santiago Fernandez Madero [Tue, 14 Jul 2020 21:25:03 +0000 (14:25 -0700)]
WASM: run tests on CI only in rolling and/or when libraries/tests.proj is changed (#39239)

* WASM: run tests on CI only in rolling and/or when libraries/tests.proj is changed

* Fix build

* Test change in tests.proj

* Fix build

* Flow variables from platform-matrix to jobTemplate

* Fix installer base template variables propagation

* Pass variables as array

4 years agoJIT: Don't emit some unnecessary tests (#38586)
nathan-moore [Tue, 14 Jul 2020 20:49:54 +0000 (16:49 -0400)]
JIT: Don't emit some unnecessary tests (#38586)

* Remove some unnecessary tests

* Handle more cases

* Fix some bugs

* Fix some comments

* fix up docs some

* add fallthrough

* Formatting

4 years agoDelete APM fallback from Socket task operations (#39248)
Stephen Toub [Tue, 14 Jul 2020 20:44:28 +0000 (16:44 -0400)]
Delete APM fallback from Socket task operations (#39248)

* Fix static field names

* Remove CachedEventArgs wrapper

This was put in place initially when the Task-based APIs were new, and we wanted to make them pay-for-play such that other uses of Socket wouldn't incur the extra fields.  But at this point, the Task-based APIs are the primary/recommended way to use Socket, and when they are used, the wrapper adds overhead (both in size and CPU).  Deleting it.

* Delete APM fallback from AcceptAsync

* Delete APM fallbacks for Receive/SendAsync with tasks

4 years agoWASM: Fix System.IO.FileSystem.DriveInfo and Microsoft.VisualBasic.Core tests (#39276)
Alexander Köplinger [Tue, 14 Jul 2020 20:40:02 +0000 (22:40 +0200)]
WASM: Fix System.IO.FileSystem.DriveInfo and Microsoft.VisualBasic.Core tests (#39276)

* WASM: Fix System.IO.FileSystem.DriveInfo

* WASM: Fix Microsoft.VisualBasic.Core tests

Some tests need culture data.

* Fix test that was accidentally reversed for non-Browser

4 years agoPreserve DebuggerTypeProxyAttribute classes (#39126)
Eric Erhardt [Tue, 14 Jul 2020 20:37:48 +0000 (15:37 -0500)]
Preserve DebuggerTypeProxyAttribute classes (#39126)

* Preserve DebuggerTypeProxyAttribute classes

Also, ensure the test app assembly is linked, and not copied during trimming tests, which was a bug in our test infrastructure.

Fix #37307

* Add test for DebuggerTypeProxy string overload.

* Update ref to match impl.

4 years ago[Arm64] ASIMD StorePair StorePairNonTemporal (#39240)
Egor Chesakov [Tue, 14 Jul 2020 20:22:55 +0000 (13:22 -0700)]
[Arm64] ASIMD StorePair StorePairNonTemporal (#39240)

* StorePair

* StorePairNonTemporal

* StorePairScalar

* StorePairScalarNonTemporal

4 years ago[wasm] Restrict the changes in mono/mono#20113 to netcore only. (#39267)
monojenkins [Tue, 14 Jul 2020 19:50:22 +0000 (15:50 -0400)]
[wasm] Restrict the changes in mono/mono#20113 to netcore only. (#39267)

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
4 years agoAdd sleep before looking for dump (#39217)
Dan Moseley [Tue, 14 Jul 2020 19:19:58 +0000 (12:19 -0700)]
Add sleep before looking for dump (#39217)

* Add sleep before looking for dump

* Enable helix only

* typo

4 years agoFix build break by adding new package version for DependencyModel (#39291)
Eric Erhardt [Tue, 14 Jul 2020 18:59:39 +0000 (13:59 -0500)]
Fix build break by adding new package version for DependencyModel (#39291)

4 years agoadd ServerOptionsSelectionCallback to SslStream (#38760)
Tomas Weinfurt [Tue, 14 Jul 2020 18:10:01 +0000 (11:10 -0700)]
add ServerOptionsSelectionCallback to SslStream (#38760)

* add ServerOptionsSelectionCallback to SslStream

* remove System.IO

* add missing file

* more tests

* feedback from review

* feedback from review

* skip SniSetVersion on win7

* fix IsNotWindows7

Co-authored-by: Tomas Weinfurt <furt@DESKTOP-SUKDQFN.corp.microsoft.com>
4 years ago[Wasm] Disable System.Linq.Parallel test suite (#39305)
Steve Pfister [Tue, 14 Jul 2020 17:57:08 +0000 (13:57 -0400)]
[Wasm] Disable System.Linq.Parallel test suite (#39305)

* [Wasm] Disable System.Linq.Parallel test suite

https://github.com/dotnet/runtime/issues/38942 seems to be failing more frequently, so the suite will be disabled until
we can provide a fix.

* Adding it to the skipped test list instead of an attribute

Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
4 years agoWASM: Fix System.Diagnostics.TextWriterTraceListener tests (#39186)
Alexander Köplinger [Tue, 14 Jul 2020 17:43:12 +0000 (19:43 +0200)]
WASM: Fix System.Diagnostics.TextWriterTraceListener tests (#39186)

* WASM: Fix System.Diagnostics.TextWriterTraceListener tests

It was using Process.GetCurrentProcess() which throws PNSE on WebAssembly.

* PR feedback

4 years agoAdd NoInterpreter filter back (#39131)
Drew Scoggins [Tue, 14 Jul 2020 17:27:43 +0000 (10:27 -0700)]
Add NoInterpreter filter back (#39131)

4 years agoimprove diag for GetNetworkInterfaces failures (#39252)
Tomas Weinfurt [Tue, 14 Jul 2020 17:26:55 +0000 (10:26 -0700)]
improve diag for GetNetworkInterfaces failures (#39252)

4 years agodon't aquite lock when calling RuntimeInformation.OSArchitecture and OSArchitecture...
Adam Sitnik [Tue, 14 Jul 2020 17:07:59 +0000 (19:07 +0200)]
don't aquite lock when calling RuntimeInformation.OSArchitecture and OSArchitecture.ProcessArchitecture (#39196)

* don't aquite lock when calling RuntimeInformation.OSArchitecture and OSArchitecture.ProcessArchitecture

* make the arch fields volatile

* proper fix of the Unix code

* apply [SuppressGCTransition]

4 years agoadd OSPlatform.macOS, switch to OrdinalIgnoreCase for OSPlatform comparisons (#39209)
Adam Sitnik [Tue, 14 Jul 2020 17:06:23 +0000 (19:06 +0200)]
add OSPlatform.macOS, switch to OrdinalIgnoreCase for OSPlatform comparisons (#39209)

* add OSPlatform.macOS, hide OSX

* use OrdinalIgnoreCase for platform name comparisons

* RuntimeInformation.IsOSPlatform(OSPlatform.macOS) must return true on OSX

* add new test cases for IsOSPlatformEarlierThan and IsOSPlatformOrLater

* cache the IsCurrent information

* apply code review suggestion

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* apply code review suggestion

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
4 years agoAdding attribute keyword to all the attributes in the ref (#39255)
Anirudh Agnihotry [Tue, 14 Jul 2020 17:03:52 +0000 (10:03 -0700)]
Adding attribute keyword to all the attributes in the ref (#39255)

4 years ago[master] Update dependencies from mono/linker dotnet/runtime-assets dotnet/icu (...
dotnet-maestro[bot] [Tue, 14 Jul 2020 16:35:20 +0000 (18:35 +0200)]
[master] Update dependencies from mono/linker dotnet/runtime-assets dotnet/icu (#39158)

* Update dependencies from https://github.com/mono/linker build 20200711.1

Microsoft.NET.ILLink.Tasks
 From Version 5.0.0-preview.3.20360.3 -> To Version 5.0.0-preview.3.20361.1

* Update dependencies from https://github.com/dotnet/runtime-assets build 20200710.1

System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 5.0.0-beta.20319.2 -> To Version 5.0.0-beta.20360.1

* Update dependencies from https://github.com/dotnet/icu build 20200709.7

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 5.0.0-preview.8.20359.5 -> To Version 5.0.0-preview.8.20359.7

* Remove unsupported option

* Bump SDK dependency to bring updated ILLink task

* Update trimmer configuration property names

* Keep debug symbols as they are needed for the tests

* Disable trimming tests on Windows due to weird pdbs handling

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Marek Safar <marek.safar@gmail.com>
4 years agoWASM: Fix System.Diagnostics.Tracing (#39271)
Alexander Köplinger [Tue, 14 Jul 2020 16:07:04 +0000 (18:07 +0200)]
WASM: Fix System.Diagnostics.Tracing (#39271)

It was missing a few signatures in wasm_m2n_invoke.g.h that caused it to fail with `WASM-ERR: CANNOT HANDLE INTERP ICALL SIG IIILIIII`

4 years agoWASM: Disable two GetFunctionPointerForDelegate tests (#39278)
Alexander Köplinger [Tue, 14 Jul 2020 16:01:19 +0000 (18:01 +0200)]
WASM: Disable two GetFunctionPointerForDelegate tests (#39278)

Known issue: https://github.com/dotnet/runtime/issues/39187

4 years ago[wasm] Enable System.Runtime.Serialization.Primitives test suite (#39264)
Maxim Lipnin [Tue, 14 Jul 2020 14:35:10 +0000 (17:35 +0300)]
[wasm] Enable System.Runtime.Serialization.Primitives test suite (#39264)

4 years agoWASM: Disable System.Net.Primitives.Pal.Tests.csproj (#39272)
Alexander Köplinger [Tue, 14 Jul 2020 14:33:57 +0000 (16:33 +0200)]
WASM: Disable System.Net.Primitives.Pal.Tests.csproj (#39272)

It got reactived but an unrelated PR introduced a test failure for it, disable it again.

4 years agoSocket's connect operations tracing (#38620)
Alexander Nikolaev [Tue, 14 Jul 2020 14:18:08 +0000 (16:18 +0200)]
Socket's connect operations tracing (#38620)

Socket's connect start, stop and cancelled events are logged as activities via EventSource.

Contributes to #37428

4 years agoWinHttpHandler multiple HTTP/2 connections test is skipped on older Windows (#39266)
Alexander Nikolaev [Tue, 14 Jul 2020 14:12:58 +0000 (16:12 +0200)]
WinHttpHandler multiple HTTP/2 connections test is skipped on older Windows (#39266)

Fixes #39258

4 years agoFix DebuggerTypeProxy on ObjectCollection (#39234)
Eric Erhardt [Tue, 14 Jul 2020 14:02:12 +0000 (09:02 -0500)]
Fix DebuggerTypeProxy on ObjectCollection (#39234)

Using `nameof(DebugView)` doesn't work because DebugView is a nested type, so this isn't the full name of the type. Fixing to use typeof instead.

4 years agoKeep weak gc handle for EventPipe delegate callback in provider. (#39205)
Johan Lorensson [Tue, 14 Jul 2020 13:09:27 +0000 (15:09 +0200)]
Keep weak gc handle for EventPipe delegate callback in provider. (#39205)

4 years ago[wasm] Fail right away in interp_create_method_pointer () when trying to create a...
Zoltan Varga [Tue, 14 Jul 2020 11:18:39 +0000 (07:18 -0400)]
[wasm] Fail right away in interp_create_method_pointer () when trying to create a function pointer to a native-to-managed wrapper. (#39260)

The previous method of returning interp_no_native_to_managed doesn't work:
* The runtime expects different function pointers for different methods, returning
  the same pointer leads to all kinds of weird errors.
* On wasm, the native caller expects the function to have the right signature, so
  calling interp_no_native_managed () will leads a to signature mismatch error which is
  hard to debug.

4 years ago[wasm] Enable System.Runtime.Serialization.Xml and System.Runtime.Serialization.Xml...
Maxim Lipnin [Tue, 14 Jul 2020 10:18:46 +0000 (13:18 +0300)]
[wasm] Enable System.Runtime.Serialization.Xml and System.Runtime.Serialization.Xml.ReflectionOnly test suites (#39262)

4 years ago[wasm] Enable System.Runtime.Serialization.Json test suite (#39193)
Maxim Lipnin [Tue, 14 Jul 2020 10:15:41 +0000 (13:15 +0300)]
[wasm] Enable System.Runtime.Serialization.Json test suite (#39193)

* [wasm] Enable System.Runtime.Serialization.Json test suite

* Remove System.Runtime.Serialization.Json.Tests project from the exclusion list

* Remove System.Runtime.Serialization.Json.ReflectionOnly.Tests project from the exclusion list

4 years ago[wasm] Address System.Runtime.Loader.DefaultContext failure (#39204)
Mitchell Hwang [Tue, 14 Jul 2020 10:09:39 +0000 (06:09 -0400)]
[wasm] Address System.Runtime.Loader.DefaultContext failure (#39204)

* [wasm] Add ActiveIssue to LoadInDefaultContext for wasm

* [libraries] Remove System.Runtime.Loader.DefaultContext project exclusion

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years ago[wasm] Address System.Runtime.InteropServices failures on Browser (#39188)
Mitchell Hwang [Tue, 14 Jul 2020 10:05:51 +0000 (06:05 -0400)]
[wasm] Address System.Runtime.InteropServices failures on Browser (#39188)

* [wasm] Modify OffsetOf_Decimal_ReturnsExpected for Browser

* [wasm] Add ActiveIssues for GetDelegateForFunctionPointerTests and GetFunctionPointerForDelegateTests

* [libraries] Remove System.Runtime.InteropServices project exclusion

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years ago[wasm] Enable System.Net.Http.Unit test suite (#39181)
Maxim Lipnin [Tue, 14 Jul 2020 10:03:42 +0000 (13:03 +0300)]
[wasm] Enable System.Net.Http.Unit test suite (#39181)

* [wasm] Enable System.Net.Http.Unit test suite

* Remove System.Net.Http.Unit test project from the exclusion list

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoWASM: Disable tests on System.Diagnostics.StackTrace that fail (#39226)
Alexander Köplinger [Tue, 14 Jul 2020 10:00:37 +0000 (12:00 +0200)]
WASM: Disable tests on System.Diagnostics.StackTrace that fail (#39226)

4 years agoWASM: Add PNSE for System.Net.NameResolution and disable tests (#39219)
Alexander Köplinger [Tue, 14 Jul 2020 09:59:01 +0000 (11:59 +0200)]
WASM: Add PNSE for System.Net.NameResolution and disable tests (#39219)

We only support `Dns.GetHostName()` since that didn't throw in the older mono WebAssembly release and can be redirected to `Environment.MachineName`.

4 years agoWASM: Fix System.Diagnostics.TraceSource tests (#39224)
Alexander Köplinger [Tue, 14 Jul 2020 09:58:11 +0000 (11:58 +0200)]
WASM: Fix System.Diagnostics.TraceSource tests (#39224)

* WASM: Fix System.Diagnostics.TraceSource tests

One test was using `Assembly.GetEntryAssembly()` which returns null on WebAssembly.
Others are testing that the output contains the stacktrace but it is empty on WASM right now.

* PR feedback

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years agoWASM: Disable tests in System.ComponentModel.Annotations that rely on globalization...
Alexander Köplinger [Tue, 14 Jul 2020 09:55:39 +0000 (11:55 +0200)]
WASM: Disable tests in System.ComponentModel.Annotations that rely on globalization (#39228)

Allows the test suite to pass on WebAssembly: `Tests run: 692, Errors: 0, Failures: 0, Skipped: 15. Time: 1.237011s`

4 years agoWASM: Disable thread related tests on System.IO.Compression (#39231)
Alexander Köplinger [Tue, 14 Jul 2020 09:54:20 +0000 (11:54 +0200)]
WASM: Disable thread related tests on System.IO.Compression (#39231)

They try to test various conditions that only work if you have multiple threads which is not the case on WebAssembly.