platform/upstream/dotnet/runtime.git
4 years agoFix wasm build when runtime configuration and configuration are different (#36855)
Santiago Fernandez Madero [Fri, 22 May 2020 17:07:21 +0000 (10:07 -0700)]
Fix wasm build when runtime configuration and configuration are different (#36855)

* Fix wasm build when runtime configuration and configuration are different

* PR Feedback

4 years agoUse linux-musl runtime on Alpine Helix workers (#36827)
Simon Nattress [Fri, 22 May 2020 16:43:28 +0000 (09:43 -0700)]
Use linux-musl runtime on Alpine Helix workers (#36827)

* Use linux-musl runtime on Alpine Helix workers

* Add OS Subgroup to send-to-helix-step

* Pass in osSubgroup

Also, capitalize it in line with the rest of the repo

* Use __TargetOS which understands linux_musl for rid generation

I don't fully understand why we use `TargetOS` in `helixpublishwitharcade.proj` but set `__TargetOS` in the calling `send-to-helix-step.yml`.

4 years agoEnsure Image.Save can handle non readable / seekable Streams (#36805)
Eric StJohn [Fri, 22 May 2020 13:48:15 +0000 (06:48 -0700)]
Ensure Image.Save can handle non readable / seekable Streams (#36805)

* Ensure Image.Save can handle non readable / seekable Streams

* Address feedback

* Fix Image.Save on Unix for write only non-seekable stream

* Remove test which uses bogus handle value

4 years agoRemove x86 OSX code (#36874)
Jan Vorlicek [Fri, 22 May 2020 13:25:16 +0000 (15:25 +0200)]
Remove x86 OSX code (#36874)

This removes x86 OSX code that was never used for .NET Core.

4 years agoFix a summary typo in ConsoleLoggerOptions.cs (#36870)
Honza Rameš [Fri, 22 May 2020 13:24:56 +0000 (15:24 +0200)]
Fix a summary typo in ConsoleLoggerOptions.cs (#36870)

4 years agoConsider armel arch (#36872)
Gleb Balykov [Fri, 22 May 2020 13:24:00 +0000 (16:24 +0300)]
Consider armel arch (#36872)

4 years agoStrip the ILLinkTrim.xml file from System.Security assemblies (#36864)
Eric Erhardt [Fri, 22 May 2020 13:23:35 +0000 (08:23 -0500)]
Strip the ILLinkTrim.xml file from System.Security assemblies (#36864)

Contributes to #35199

4 years agoMove where wasm binaries are generated (#36781)
Steve Pfister [Fri, 22 May 2020 13:16:40 +0000 (09:16 -0400)]
Move where wasm binaries are generated (#36781)

This change shifts producing wasm binaries to the native dir so that they'll come over to the installer on CI.

4 years ago[mono] Fix MonoRunner.java - assets were not copied correctly (#36824)
Egor Bogatov [Fri, 22 May 2020 08:21:28 +0000 (11:21 +0300)]
[mono] Fix MonoRunner.java - assets were not copied correctly (#36824)

4 years agoAdded CreateDelegate<T> overloads to MethodInfo (#36680)
Ivan Diaz Sanchez [Fri, 22 May 2020 05:43:08 +0000 (22:43 -0700)]
Added CreateDelegate<T> overloads to MethodInfo (#36680)

* Added generic overloads for MethodInfo.CreateDelegate<>()

* Added full support of CreateDelegate<T> and the necessary tests.

* Refactored to apply the new CreateDelegate overloads as necessary throughout runtime.

* Reverted Linq.Expressions changes and fully qualified Delegate to System.Delegate

4 years agoExtract shared functionality to a TryRemoveCastIfPresent method (#36837)
Tanner Gooding [Fri, 22 May 2020 04:37:07 +0000 (21:37 -0700)]
Extract shared functionality to a TryRemoveCastIfPresent method (#36837)

4 years agoUse socketpair to implement Process.Start redirection (#34861)
Stephen Toub [Fri, 22 May 2020 04:19:46 +0000 (00:19 -0400)]
Use socketpair to implement Process.Start redirection (#34861)

* Use socketpair to implement Process.Start redirection

Today on Unix, we create an anonymous pipe via pipe/pipe2 to be used for stdin/stdout/stderr on processes created by Process.Start.  We then wrap the resulting file descriptors with FileStreams to hand out via Process.StandardInput/Output/Error.  This has a few issues, however. Any async operations on the resulting stream (or wrapping stream reader) will actually be async-over-sync, and that in turn means that a) any async read will end up blocking a thread pool thread until it's satisified, and b) the operation isn't cancelable.  The implications of (b) are obvious, and the problem with (a) is that code which launches a bunch of processes and uses BeginOutput/ErrorReadLine or the like will end up blocking a bunch of thread pool threads.

This change replaces the pipe/pipe2 calls with socketpair calls, and instead of wrapping the resulting file descriptors with FileStream, wraps them in Sockets and NetworkStreams.  This gives us the full capabilities of the networking stack, which fully supports asynchronous and cancelable reads and writes.

* Try to fix macOS failures with socketpair

4 years agoPorting more of the SIMD intrinsics to be implemented as HWIntrinsics (#36579)
Tanner Gooding [Fri, 22 May 2020 03:50:35 +0000 (20:50 -0700)]
Porting more of the SIMD intrinsics to be implemented as HWIntrinsics (#36579)

* Porting Ceiling and Floor to use SimdAsHWIntrinsic

* Porting SquareRoot to use SimdAsHWIntrinsic

* Porting ConditionalSelect to use SimdAsHWIntrinsic

* Porting get_AllBitsSet, get_Count, and get_Zero to use SimdAsHWIntrinsic

* Porting op_Explicit to use SimdAsHWIntrinsic

* Changing Vector2/3/4 and Vector<T>.Equals to forward to operator ==

* Removing SIMDIntrinsicAbs

* Removing SIMDIntrinsicMax and SIMDIntrinsicMin

* Removing SIMDIntrinsicCeil and SIMDIntrinsicFloor

* Porting op_Equality and op_Inequality to use SimdAsHWIntrinsic

* Removing SIMDIntrinsicSqrt

* Removing SIMDIntrinsicSelect

* Removing SIMDIntrinsicBitwiseAndNot and SIMDIntrinsicBitwiseXor

* Removing SIMDIntrinsicGreaterThanOrEqual and SIMDIntrinsicLessThanOrEqual

* Removing SIMDIntrinsicGreaterThan and SIMDIntrinsicLessThan

* Removing SIMDIntrinsicInstEquals

* Removing SIMDIntrinsicOpEquality and SIMDIntrinsicOpInEquality

* Porting this.Equals to use SimdAsHWIntrinsic

* Don't handle IEquatable`1.Equals via SimdAsHWIntrinsic

* Applying formatting patch

* Account for op2 being able to precede op1 in the LIR order

* Ensure SimdAsHWIntrinsic with 0 args are properly handled

* Fixup the arm64 LowerHWIntrinsicCmpOp implementation to use LowerNodeCC

* Fixing an assert in the NotSupported HWIntrinsic tests

4 years agoRemove Microsoft.DotNet.PlatformAbstractions (#36707)
Eric Erhardt [Fri, 22 May 2020 02:40:51 +0000 (21:40 -0500)]
Remove Microsoft.DotNet.PlatformAbstractions (#36707)

* Remove Microsoft.DotNet.PlatformAbstractions

This library overlapped with other System APIs and is now obsolete. For API replacement:

ApplicationEnvironment.ApplicationBasePath => AppContext.BaseDirectory
HashCodeCombiner => System.HashCode
RuntimeEnvironment.GetRuntimeIdentifier() => RuntimeInformation.RuntimeIdentifier
RuntimeEnvironment.OperatingSystemPlatform => RuntimeInformation.IsOSPlatform(OSPlatform)
RuntimeEnvironment.RuntimeArchitecture => RuntimeInformation.ProcessArchitecture
RuntimeEnvironment.OperatingSystem => RuntimeInformation.OSDescription
RuntimeEnvironment.OperatingSystemVersion => RuntimeInformation.OSDescription / Environment.OSVersion.Version

Fix #3470

4 years ago[wasm][debugger] Allow invoking property getters for objects (#35934)
monojenkins [Fri, 22 May 2020 02:38:34 +0000 (22:38 -0400)]
[wasm][debugger] Allow invoking property getters for objects (#35934)

Co-authored-by: radical <radical@users.noreply.github.com>
4 years agoJIT: don't call back into morph from fgRemoveConditionalJump (#36792)
Andy Ayers [Fri, 22 May 2020 01:41:29 +0000 (18:41 -0700)]
JIT: don't call back into morph from fgRemoveConditionalJump (#36792)

This can get called before morph and run into issues where morph
specific data is not yet initialized. The remorphing wasn't going to
do much other than extract side effects and rethread the statement
ordering. So just do these latter bits.

Closes #36468.

4 years agoMove app local ICU string length validation to native shim (#36735)
Santiago Fernandez Madero [Fri, 22 May 2020 01:21:53 +0000 (18:21 -0700)]
Move app local ICU string length validation to native shim (#36735)

* Move app local string length validation to native shim

* Fix build

4 years agoAdding A log presence check before trying to delete (#36779)
Anirudh Agnihotry [Thu, 21 May 2020 23:47:13 +0000 (16:47 -0700)]
Adding A log presence check before trying to delete (#36779)

* checking if log is present before deleteing

* Update src/libraries/System.Diagnostics.EventLog/tests/EventLogTests/EventLogSourceCreationTests.cs

Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>
Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>
4 years agoStop emitting weird intermediate folder artifacts/tests/artifacts (#36833)
Tomáš Rylek [Thu, 21 May 2020 22:49:14 +0000 (00:49 +0200)]
Stop emitting weird intermediate folder artifacts/tests/artifacts (#36833)

The logic in dir.common.props for relativizing test directories
doesn't work well for the generated XUnit wrapper csproj files as
these are generated under artifacts\tests. Relativizing this
directory against src\coreclr\tests\src ended up with a weird
sequence that ended up duplicating the tests/artifacts folder
level. I have fixed this by explicitly passing the root directory
for relativization for the XUnit wrapper projects.

Thanks

Tomas

Fixes: #1655

4 years ago[Arm64] ASIMD Shift instructions (#36552)
Egor Chesakov [Thu, 21 May 2020 22:05:21 +0000 (15:05 -0700)]
[Arm64] ASIMD Shift instructions (#36552)

* sqrshl

* sqrshrn

* sqrshrn2

* sqrshrun

* sqrshrun2

* sqshl

* sqshlu

* sqshrn

* sqshrn2

* sqshrun

* sqshrun2

* srshl

* sshl

* uqrshl

* uqrshrn

* uqrshrn2

* uqshl

* uqshrn

* uqshrn2

* urshl

* ushl

4 years agoMinor documentation improvements (#36834)
Eirik Tsarpalis [Thu, 21 May 2020 20:14:52 +0000 (21:14 +0100)]
Minor documentation improvements (#36834)

4 years agoUpdating the HWIntrinsics to support dropping unnecessary casts (#36512)
Tanner Gooding [Thu, 21 May 2020 19:51:50 +0000 (12:51 -0700)]
Updating the HWIntrinsics to support dropping unnecessary casts (#36512)

* Updating the HWIntrinsics to support dropping unnecessary casts

* Applying formatting patch

* Only drop the cast operation if the source is greater than or equal to the expected size

4 years agoEnable passing coreclr tests (#36702)
Fan Yang [Thu, 21 May 2020 18:39:47 +0000 (14:39 -0400)]
Enable passing coreclr tests (#36702)

4 years agoAllow building Browser/wasm config on Windows (#36816)
Michal Strehovský [Thu, 21 May 2020 18:25:01 +0000 (20:25 +0200)]
Allow building Browser/wasm config on Windows (#36816)

Seems to work fine for the `Mono.CoreLib` subset, which is all we care about in the IL Linker-land.

4 years agoAdding check to bypass decoding pdbs that have no sequence points. (#36771)
monojenkins [Thu, 21 May 2020 18:24:31 +0000 (14:24 -0400)]
Adding check to bypass decoding pdbs that have no sequence points. (#36771)

Unity has a pdb with zero sequence points somehow. If a user added a reference to the library and then attempted to set a managed breakpoint mono would hit an assert and crash when it would attempt to decode this pdb.

Call stack would look like:
```
> mono-2.0-boehm.dll!mono_ppdb_get_seq_points(_MonoDebugMethodInfo * minfo, char * * source_file, _GPtrArray * * source_file_list, int * * source_files, MonoSymSeqPoint * * seq_points, int * n_seq_points) Line 508 C
  mono-2.0-boehm.dll!mono_debug_get_seq_points(_MonoDebugMethodInfo * minfo, char * * source_file, _GPtrArray * * source_file_list, int * * source_files, MonoSymSeqPoint * * seq_points, int * n_seq_points) Line 1093 C
  mono-2.0-boehm.dll!get_source_files_for_type(_MonoClass * klass) Line 6920 C
  mono-2.0-boehm.dll!get_types_for_source_file(void * key, void * value, void * user_data) Line 7003 C
  mono-2.0-boehm.dll!monoeg_g_hash_table_foreach(_GHashTable * hash, void(*)(void *, void *, void *) func, void * user_data) Line 364 C
  mono-2.0-boehm.dll!mono_de_foreach_domain(void(*)(void *, void *, void *) func, void * user_data) Line 95 C
  mono-2.0-boehm.dll!vm_commands(int command, int id, unsigned char * p, unsigned char * end, Buffer * buf) Line 7341 C
  mono-2.0-boehm.dll!debugger_thread(void * arg) Line 10323 C
  mono-2.0-boehm.dll!start_wrapper_internal(StartInfo * start_info, unsigned __int64 * stack_ptr) Line 1241 C
  mono-2.0-boehm.dll!start_wrapper(void * data) Line 1315 C
  kernel32.dll!00007ffc12017bd4() Unknown
  ntdll.dll!00007ffc121ece51() Unknown
```

Adding a check to ignore pdbs like this prevents the crash and debugging can continue normally.

Related unity issue: https://issuetracker.unity3d.com/issues/macos-editor-crashes-on-mono-log-write-logfile-when-attaching-a-debugger-and-then-setting-a-breakpoint

Co-authored-by: UnityAlex <UnityAlex@users.noreply.github.com>
4 years agoHandle multi-reg copies/reloads (#36802)
Carol Eidt [Thu, 21 May 2020 18:14:46 +0000 (11:14 -0700)]
Handle multi-reg copies/reloads (#36802)

Fix #36619

4 years agoAdd autoconf, automake and libtool as dependencies (#36475)
Egor Bogatov [Thu, 21 May 2020 14:11:57 +0000 (17:11 +0300)]
Add autoconf, automake and libtool as dependencies (#36475)

* Add autoconf, automake and libtool as dependencies

* Update instructions

4 years agoFixing tests on android. (#36788)
Thays Grazia [Thu, 21 May 2020 09:29:14 +0000 (06:29 -0300)]
Fixing tests on android. (#36788)

The linker was removing the icu shim functions even exporting them. The unique solution that we found until now is to force the linking using the -u flag.
This is a temporary fix until we don't implement QCalls.
Fixes https://github.com/dotnet/runtime/issues/36685

4 years agoFix missing symbol issues in SunOS build (#36455)
Adeel Mujahid [Thu, 21 May 2020 08:41:31 +0000 (11:41 +0300)]
Fix missing symbol issues in SunOS build (#36455)

* Fix missing symbol issues in SunOS build

* Fix SIGSEGV due to invalid free()

4 years agoAdd JIT EventCounters (#36489)
Sung Yoon Whang [Thu, 21 May 2020 06:42:00 +0000 (23:42 -0700)]
Add JIT EventCounters (#36489)

* Add JIT counters

* Some renames

* fix build

* change return type of GetMethodsJittedCount to int

* remove ifdef

* Fix

* CR feedback

* More CR feedback

* More CR Feedback

* more code review feedback

* Fix build error and add displayunit to IL bytes jitted counter

4 years agoAdd R2R testing on Windows arm/arm64 (#36793)
Bruce Forstall [Thu, 21 May 2020 04:34:49 +0000 (21:34 -0700)]
Add R2R testing on Windows arm/arm64 (#36793)

4 years agoFix two issues with hosting on SunOS (#36527)
Adeel Mujahid [Thu, 21 May 2020 04:10:26 +0000 (07:10 +0300)]
Fix two issues with hosting on SunOS (#36527)

Fix two issues with hosting on SunOS:
* Compile corehost without use-cxa-atexit with gcc
* Disable RapidJson's 48-bit optimization on SunOS

* Compile without [`use-cxa-atexit`](https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html) in case of gcc
  * libc tries to invoke `pthread_cond_destroy()` in `dlclose()`ed fxr library in the consumer code. PR disables this feature.
  * Backtrace available at http://sprunge.us/bx4dlk. This happens _after_ the main() exits.
* Disable RapidJson's 48-bit pointer optimization on SunOS.
  * This optimization relies on zeros in higher 16-bits, whereas SunOS has 1s. More details at https://github.com/Tencent/rapidjson/issues/1596.
  * The impact here was that `runtimeOptions` key available in `hwapp.runtimeconfig.json` was not located by RapidJson's `FindMember()` API and we were getting `false` from: https://github.com/dotnet/runtime/blob/78b303df8fbb242985d049a277d0d199cafd51b5/src/installer/corehost/cli/runtime_config.cpp#L416-L422

Contributes to: #34944.

4 years agoUpdate public GC.AddMemoryPressure() and GC.RemoveMemoryPressure() (#36767)
Aaron Robinson [Thu, 21 May 2020 03:39:51 +0000 (20:39 -0700)]
Update public GC.AddMemoryPressure() and GC.RemoveMemoryPressure() (#36767)

* Update public GC.AddMemoryPressure() and GC.RemoveMemoryPressure()
to use newer algorithm.

* Remove old AddMemoryPressure/RemoveMemoryPressure impls

* Update test.

* Removing duplicate tests from coreclr directory.

4 years agoFix non-ascii absolute file path handling in Uri (#36429)
Miha Zupan [Thu, 21 May 2020 02:29:20 +0000 (04:29 +0200)]
Fix non-ascii absolute file path handling in Uri (#36429)

* Fix non-ascii absolute file path Uri handling

* Fix Unix tests

* Revert unrelated style change

* Add asserts to FilePathHandlesNonAscii to test AbsoluteUri roundtrips properties

4 years agoAdding a case requiring RuntimeJit (#36772)
Manish Godse [Thu, 21 May 2020 01:10:01 +0000 (18:10 -0700)]
Adding a case requiring RuntimeJit (#36772)

Handle CORINFO_HELP_THROW_NOT_IMPLEMENTED

4 years agoFix signing due to subset projects rename (#36791)
Santiago Fernandez Madero [Thu, 21 May 2020 00:52:07 +0000 (17:52 -0700)]
Fix signing due to subset projects rename (#36791)

4 years agoFix evaluate paths bug when multiple include paths are specified (#36780)
Santiago Fernandez Madero [Thu, 21 May 2020 00:17:52 +0000 (17:17 -0700)]
Fix evaluate paths bug when multiple include paths are specified (#36780)

4 years agoOptimize ToVector128, ToVector128Unsafe and Vector128.GetLower() (#36732)
Kunal Pathak [Wed, 20 May 2020 23:32:50 +0000 (16:32 -0700)]
Optimize ToVector128, ToVector128Unsafe and Vector128.GetLower() (#36732)

* Optimize ToVector128 , ToVector128Unsafe and Vector128.GetLower()

4 years agoJIT: widen type of constant or special static fields (#36769)
Andy Ayers [Wed, 20 May 2020 23:00:51 +0000 (16:00 -0700)]
JIT: widen type of constant or special static fields (#36769)

Since we're pushing the value of these fields we need to widen the value
to a stack type.

Addresses issues seen in #36592.

4 years ago[mono] Implement AsAny marshalling for simple arrays (#35686)
Alexis Christoforides [Wed, 20 May 2020 22:59:29 +0000 (18:59 -0400)]
[mono] Implement AsAny marshalling for simple arrays (#35686)

* [mono] Implement AsAny marshalling for simple arrays

Simple here means of rank 1, and with a blittable value type as element type.

* Also implement char arrays

* Do not allow in-params to be marshalled this way, as the callee would have write-ability that is not allowed by in-params

4 years agoSupport !JitDoOldStructRetyping on other platforms. (#35943)
Sergey Andreenko [Wed, 20 May 2020 22:52:13 +0000 (15:52 -0700)]
Support !JitDoOldStructRetyping on  other platforms. (#35943)

* Add more test cases.

* Initialize `ReturnTypeDesc` when we keep struct types.

* Add a few const modifiers.

* Additional checks in `LowerRet`

* Support `return double(cnst int)`.

* Optimize `LowerRetStruct`: no need for bitcast when read from memory.

* Prepare `LowerNode` for store local and local field to multireg.

* Compile the new methods with FEATURE_MULTIREG_RET.

* Improve `LowerRetStructLclVar`.

Don't use bitcast if the source is in memory or has the same type.

* Extract `LowerStoreLocCommon`.

* Support 3, 5. 6, 7 bytes structs in `LowerCallStruct`.

Move call handling to the users.

* Disable `JitDoOldStructRetyping` for x86 and x64.

Windows  x64 was supported in a previous PR, this adds x86 (Windows and Linux) and x64 Unix.

* Fix suggestions.

* Disable by default for the merge.

4 years ago[master] Update dependencies from mono/linker dotnet/llvm-project dotnet/xharness...
dotnet-maestro[bot] [Wed, 20 May 2020 22:51:11 +0000 (00:51 +0200)]
[master] Update dependencies from mono/linker dotnet/llvm-project dotnet/xharness (#36764)

* Update dependencies from https://github.com/dotnet/llvm-project build 20200518.2

runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk
 From Version 9.0.1-alpha.1.20262.1 -> To Version 9.0.1-alpha.1.20268.2

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

Microsoft.NET.ILLink.Tasks
 From Version 5.0.0-preview.3.20268.5 -> To Version 5.0.0-preview.3.20269.1

* Update dependencies from https://github.com/dotnet/xharness build 20200520.1

Microsoft.DotNet.XHarness.Tests.Runners
 From Version 1.0.0-prerelease.20265.8 -> To Version 1.0.0-prerelease.20270.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years ago[interp] Add separate opcode for pop vt (#36760)
monojenkins [Wed, 20 May 2020 21:35:59 +0000 (17:35 -0400)]
[interp] Add separate opcode for pop vt (#36760)

Before this change, pop-ing a vt from the stack was done in 2 opcodes, a MINT_POP (decrementing the stack) and the weird MINT_VTRESULT (decrementing the vtstack). However, optimizations could have removed both the initial loading of the value type on the stack as well as the MINT_POP, leaving MINT_VTRESULT underflowing the vtstack. Fix this and cleanup the code by pop-ing a value type from the stack in a single instruction.

Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
4 years agoCache Uri.IdnHost and Uri.PathAndQuery (#36460)
Miha Zupan [Wed, 20 May 2020 18:47:28 +0000 (20:47 +0200)]
Cache Uri.IdnHost and Uri.PathAndQuery (#36460)

* Cache Uri.IdnHost and Uri.PathAndQuery

* Continue caching DnsSafeHost

* Move PathAndQuery cache from MoreInfo to UriInfo

* Move DnsSafeHost and IdnHost logic to IdnHost getter

* Add more Host tests

4 years agoRemove overwriting RuntimeIdentifier in runtime.depproj for wasm/ios/android (#36757)
Alexander Köplinger [Wed, 20 May 2020 18:46:24 +0000 (20:46 +0200)]
Remove overwriting RuntimeIdentifier in runtime.depproj for wasm/ios/android (#36757)

It shouldn't be needed anymore since we have real assets for these targets now.

4 years agoAdd managed array type support for EventPipe (#36242)
David Mason [Wed, 20 May 2020 18:17:06 +0000 (11:17 -0700)]
Add managed array type support for EventPipe (#36242)

Add support for emitting an event with an arbitrary number of arguments over EventPipe.

4 years agoAdd FullAOT mode for Simulator to AppleAppBuilder (#36759)
Egor Bogatov [Wed, 20 May 2020 17:55:37 +0000 (20:55 +0300)]
Add FullAOT mode for Simulator to AppleAppBuilder (#36759)

4 years agoOptimize call indirect for R2R, Arm and Arm64 scenarios (#35675)
Kunal Pathak [Wed, 20 May 2020 16:15:28 +0000 (09:15 -0700)]
Optimize call indirect for R2R, Arm and Arm64 scenarios (#35675)

* Use a different approach to optimize the indirect calls for R2R

During lowering, don't create a controlExpr for indirect call. Instead use
temp register for such calls and during codegen, load the indirect from x11
into that temp register before calling the address in that temp register.

4 years agoAdding OSX support for System.DirectoryServices.Protocols (#36669)
Jose Perez Rodriguez [Wed, 20 May 2020 16:09:15 +0000 (09:09 -0700)]
Adding OSX support for System.DirectoryServices.Protocols (#36669)

* Adding OSX support for System.DirectoryServices.Protocols

* Addressing PR Feedback

* Fixing issue in netfx builds where local member is assigned but never used

4 years agoUse a Brewfile for installing brew packages (#36747)
Alexander Köplinger [Wed, 20 May 2020 15:57:57 +0000 (17:57 +0200)]
Use a Brewfile for installing brew packages (#36747)

This means we won't be upgrading existing packages on the system that we don't need for the build.
Marks install-native-dependencies.sh as executable (+x) so we don't need to start it with `sh` in the build .yml

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

4 years ago[interp] Fix interp entry for methods with lots of arguments in llvmonly+interp mode...
monojenkins [Wed, 20 May 2020 15:20:06 +0000 (11:20 -0400)]
[interp] Fix interp entry for methods with lots of arguments in llvmonly+interp mode. (#36678)

Fixes https://github.com/mono/mono/issues/19801.

<!--
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: vargaz <vargaz@users.noreply.github.com>
4 years ago[interp] Small cleanups (#36706)
monojenkins [Wed, 20 May 2020 10:52:01 +0000 (06:52 -0400)]
[interp] Small cleanups (#36706)

Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
4 years ago[mono] Fix iOS sample and use `dotnet publish` (#36745)
Egor Bogatov [Wed, 20 May 2020 10:47:22 +0000 (13:47 +0300)]
[mono] Fix iOS sample and use `dotnet publish` (#36745)

Use `dotnet publish` with linker just like for Android.

4 years agoUse latest compiler toolset from Arcade (#36741)
Levi Broderick [Wed, 20 May 2020 07:24:53 +0000 (00:24 -0700)]
Use latest compiler toolset from Arcade (#36741)

4 years agoCode sharing between generic methods in member accessor (#36710)
Yoh Deadfall [Wed, 20 May 2020 06:46:25 +0000 (09:46 +0300)]
Code sharing between generic methods in member accessor (#36710)

* Code sharing between generic methods in member accessor

* Removed redudant value type check

4 years agoRemove Fedora29 from test matrix and add Fedora32 (#36716)
Santiago Fernandez Madero [Wed, 20 May 2020 06:08:44 +0000 (23:08 -0700)]
Remove Fedora29 from test matrix and add Fedora32 (#36716)

4 years agoJIT: fix no return call accounting (#36719)
Andy Ayers [Wed, 20 May 2020 01:22:13 +0000 (18:22 -0700)]
JIT: fix no return call accounting (#36719)

The jit tracks the number of no return calls to determine if it should run
throw helper merging and to decide if no return calls should tail called.

The accounting is currently done when the calls are initially imported,
so if code is duplicated (by say finally cloning the count may end up being
an under-estimate. While not a correctness issue, it is better for the count
to be accurate (or an over-estimate).

So, update the count when cloning a no-return call.

Closes #36584.

4 years agoAdd build information to libraries helix jobs (#36713)
Santiago Fernandez Madero [Tue, 19 May 2020 23:18:41 +0000 (16:18 -0700)]
Add build information to libraries helix jobs (#36713)

* Add build information to libraries helix jobs

* Remove BUILD_URI

4 years agoRemove duplicated tests from System.Text.Json.Tests (#36483)
David Cantu [Tue, 19 May 2020 22:54:13 +0000 (15:54 -0700)]
Remove duplicated tests from System.Text.Json.Tests (#36483)

4 years agoRemove TheadPool initialization volatile (#36697)
Ben Adams [Tue, 19 May 2020 22:00:47 +0000 (23:00 +0100)]
Remove TheadPool initialization volatile (#36697)

* Remove TheadPool initialization volatile

* Better ThreadPoolGlobals setup for Mono

* Feedback

* Move back to lambda

4 years agoAdding a ci leg for Source build (#36141)
Anirudh Agnihotry [Tue, 19 May 2020 21:44:01 +0000 (14:44 -0700)]
Adding a ci leg for Source build (#36141)

* successfullsource build

* adding a new source build leg.

* remove yy

* add default vlaue

* addressing feedback

* use boolean value

* addind comment and other feedback

* adding colon and removing unintentional change

* adding default value of isSourceBUild

4 years agoContain non-candidate regOptional lclVars (#36601)
Carol Eidt [Tue, 19 May 2020 21:38:28 +0000 (14:38 -0700)]
Contain non-candidate regOptional lclVars (#36601)

4 years agoRemoved extra slash. (#36722)
Nathan Ricci [Tue, 19 May 2020 21:28:54 +0000 (17:28 -0400)]
Removed extra slash. (#36722)

Remove extra / from path on runtimetests.

4 years agofix handling of Ssl2 and enable disabled tests (#36098)
Tomas Weinfurt [Tue, 19 May 2020 20:42:11 +0000 (13:42 -0700)]
fix handling of Ssl2 and enable disabled tests (#36098)

* attempt to fix ssl2

* adjust length calculation

* enable tests

* fix ReadAsyncInternal

* use PlatformDetection.SupportsSsl2

* feedback from review

Co-authored-by: Tomas Weinfurt <furt@Shining.local>
4 years agoTry using socket syscalls that accepts a single buffer to improve performance (#36371)
Tom Deseyn [Tue, 19 May 2020 18:43:24 +0000 (20:43 +0200)]
Try using socket syscalls that accepts a single buffer to improve performance (#36371)

* Try using socket syscalls that accepts a single buffer to improve performance

* Remove ref from Receive calls

* Prefix Pal methods invoking methods with Sys

* Also use single-buffer syscalls for sync Socket Receive methods

* Improve comment

* PR feedback

* Assert SocketAddress null instead of checking

4 years agoFixed Incorrectly named function arguments in TryGetPlatformSocketOption. (#36694)
AraHaan [Tue, 19 May 2020 18:35:01 +0000 (14:35 -0400)]
Fixed Incorrectly named function arguments in TryGetPlatformSocketOption. (#36694)

Fixes #36686.

4 years agoImprove sort function in crossgen2 (#36676)
David Wrighton [Tue, 19 May 2020 18:12:20 +0000 (11:12 -0700)]
Improve sort function in crossgen2 (#36676)

- Increase memory locality substantially in composite images
- Sort non-generic methods with module together
- Sort generic methods near other generic methods with similar instantiations

Json benchmark showed improvement from 237,827 RPS to 270,306 RPS, and reduced working set by about 10MB

4 years agoRevert unintentional alignment change for Vector256<T> (#36673)
Anton Lapounov [Tue, 19 May 2020 17:09:08 +0000 (10:09 -0700)]
Revert unintentional alignment change for Vector256<T> (#36673)

Addresses https://github.com/dotnet/runtime/pull/35864#issuecomment-629803015.  In an earlier change I also added the `type.Instantiation[0].IsPrimitive` condition to the `IsVectorType` predicate.  Revert that part as well and allow only primitive numeric types for HFA/HVA purpose.  The same list of 10 types is recognized in `MethodTable::GetVectorSize` and `Compiler::getBaseTypeAndSizeOfSIMDType`.

4 years agoAdd RequiresUnreferencedCodeAttribute (#36674)
Eric Erhardt [Tue, 19 May 2020 15:29:15 +0000 (10:29 -0500)]
Add RequiresUnreferencedCodeAttribute (#36674)

This attribute is used by the linker to know which methods are unsafe to use when an application is trimmed.

Fix #33862

4 years agoRemove duplicated code from SR.cs (#36277)
Marek Safar [Tue, 19 May 2020 14:26:01 +0000 (16:26 +0200)]
Remove duplicated code from SR.cs (#36277)

4 years ago[master] Update dependencies from mono/linker Microsoft/vstest (#36692)
dotnet-maestro[bot] [Tue, 19 May 2020 14:09:05 +0000 (14:09 +0000)]
[master] Update dependencies from mono/linker Microsoft/vstest (#36692)

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

Microsoft.NET.ILLink.Tasks
 From Version 5.0.0-preview.3.20268.2 -> To Version 5.0.0-preview.3.20268.5

* Update dependencies from https://github.com/microsoft/vstest build 20200518-01

Microsoft.NET.Test.Sdk
 From Version 16.7.0-preview-20200515-03 -> To Version 16.7.0-preview-20200518-01

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years agoFix RuntimeInformation.IsOSPlatform for Browser/WASM (#36665)
Alexander Köplinger [Tue, 19 May 2020 13:57:20 +0000 (15:57 +0200)]
Fix RuntimeInformation.IsOSPlatform for Browser/WASM (#36665)

The native code was still using the previous `WEBASSEMBLY` name instead of `BROWSER` as decided in https://github.com/dotnet/runtime/issues/33328.

4 years agoChecking strings against length seem to have better perf (#36443)
Youssef Victor [Tue, 19 May 2020 13:39:51 +0000 (15:39 +0200)]
Checking strings against length seem to have better perf (#36443)

* Chckecing strings against length seem to have better perf

* Apply suggestions from code review

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: Ben Adams <thundercat@illyriad.co.uk>
* Apply suggestions from code review

Co-authored-by: Ben Adams <thundercat@illyriad.co.uk>
* Update src/libraries/System.Drawing.Common/src/System/Drawing/BitmapSelector.cs

Co-authored-by: Ben Adams <thundercat@illyriad.co.uk>
* Apply suggestions from code review

* Update src/libraries/System.Private.CoreLib/src/System/Reflection/AssemblyNameFormatter.cs

* fix build error

* Update SmtpClient.cs

* Update AssemblyNameFormatter.cs

* Update LoggingEventSource.cs

* Fix build error

* Apply suggestions from code review

* Update src/libraries/System.ServiceModel.Syndication/src/System/ServiceModel/Syndication/SyndicationContent.cs

* Fix build error

* Apply suggestions from code review

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: Ben Adams <thundercat@illyriad.co.uk>
4 years agoLibunwind1.5rc2 (#36027)
Steve MacLean [Tue, 19 May 2020 11:46:16 +0000 (07:46 -0400)]
Libunwind1.5rc2 (#36027)

* Add libunwind 1.5rc2 source

Rename unused autoconfig dir aux -> aux_ consistent with
original checkin

* Delete files added by 1.3-rc1

* Update libunwind version in CMake

* Add libunwind-version.txt

* Add changes for SunOS from @am11

* Revert change to oop

* Remove obsolete add_definition

* Fix musl build

* Fix comment

* Be consistent and use HOST

* Fix error in unw_sigcontext libunwind/libunwind#179

Introduced by libunwind/libunwind#71

__reseverved needs to be big enough to store a unw_fpsimd_context_t
Which includes 32 128-bit registers, stored as 64 64-bit half registers.
Fix off by 2 issue

* Arm64 support !UNWIND_CONTEXT_IS_UCONTEXT_T

Co-authored-by: Adeel <adeelbm@outlook.com>
4 years agoRewrite NegotiateStream.XxAsync operations with async/await (#36583)
Stephen Toub [Tue, 19 May 2020 11:42:06 +0000 (07:42 -0400)]
Rewrite NegotiateStream.XxAsync operations with async/await (#36583)

* Rewrite NegotiateStream.Read/Write* operations with async/await

Gets rid of a bunch of IAsyncResult cruft and makes the XxAsync APIs cancelable.

* Combine NegoState into NegotiateStream

* Rewrite AuthenticateAs* with async/await

* Add more NegotiateStream tests

Including for cancellation and a product fix to enable cancellation.

* Update ref with overrides

* Remove custom IAsyncResults from System.Net.Security

* Fix UnitTests project

4 years ago[mono] Enable System.Runtime.Tests on Android (#36655)
Egor Bogatov [Tue, 19 May 2020 11:08:03 +0000 (14:08 +0300)]
[mono] Enable System.Runtime.Tests on Android (#36655)

4 years agoWASM app builder changes. (#36422)
Zoltan Varga [Tue, 19 May 2020 01:11:09 +0000 (21:11 -0400)]
WASM app builder changes. (#36422)

* Add an ExtraAssemblies parameter to the WasmAppBuilder task.

* Pass more assemblies to the pinvoke table generator.

* Improve the wasm sample.

* Move WasmAppBuilder to tools-local.

4 years agoPrefix protected fields with underscore for the internal XmlRawWriter (#35759)
Roman Marusyk [Mon, 18 May 2020 23:52:45 +0000 (02:52 +0300)]
Prefix protected fields with underscore for the internal XmlRawWriter (#35759)

* Prefix protected fields with underscore for the internal XmlRawWriter and its descendant classes

4 years agoRemove BuildOS (#36667)
Anirudh Agnihotry [Mon, 18 May 2020 21:49:44 +0000 (14:49 -0700)]
Remove BuildOS (#36667)

4 years agoFix R2RTest parsing of the issues.targets (#36650)
Jan Vorlicek [Mon, 18 May 2020 21:37:29 +0000 (23:37 +0200)]
Fix R2RTest parsing of the issues.targets (#36650)

The format of the file has changed a bit some time ago, but the R2RTest
wasn't updated accordingly, so test exclusion stopped working. This
change fixes it.

4 years agoProduce Mono+LLVM runtime packs on desktop platforms (#35841)
Jo Shields [Mon, 18 May 2020 21:35:38 +0000 (17:35 -0400)]
Produce Mono+LLVM runtime packs on desktop platforms (#35841)

* Add LLVM Mono runtime build

* Switch from 'llvm' boolean to 'runtimeVariant' freeform string in yaml

This makes it easier to add oddball variant builds, without a big pile of booleans for every possible variant

* Add an LLVM suffix to installer nupkgs

* Add runtimeVariant to CoreCLR artifact names

* Add installer run for LLVM JIT Mono

* Actually specify LLVM or not to installer build

* Unique name for LLVM installer run

* Ensure log uploads are disambiguated

* Fix dependency in full matrix

* Add LLVMAOT variant, which bundles llc/opt for current arch

* Make sure we don't use Mono.LLVM package names on CoreCLR or Mobile

* Fix perf runs to deal with runtimeVariant

* Try to reconcile perf test artifact names

* Make bundling llc/opt the default when LLVM enabled on Mono

4 years agoRemove PreserveDependency on non-existing type (#36657)
Eric Erhardt [Mon, 18 May 2020 19:33:42 +0000 (14:33 -0500)]
Remove PreserveDependency on non-existing type (#36657)

The DefaultArrayConverter type was been refactored away causing the linker to warn about it.

4 years agoRemove unnecessary initialization from Utf8JsonWriter ctors (#36651)
Stephen Toub [Mon, 18 May 2020 17:47:04 +0000 (13:47 -0400)]
Remove unnecessary initialization from Utf8JsonWriter ctors (#36651)

4 years agoRemoved redundant visibility check (#36648)
Yoh Deadfall [Mon, 18 May 2020 16:16:23 +0000 (19:16 +0300)]
Removed redundant visibility check (#36648)

4 years agoFix failing Sockets tests after argument exception changes (#36645)
Stephen Toub [Mon, 18 May 2020 15:58:41 +0000 (11:58 -0400)]
Fix failing Sockets tests after argument exception changes (#36645)

4 years agoDelete OrderBy(...).First{OrDefault}(...) optimization (#36643)
Stephen Toub [Mon, 18 May 2020 15:58:11 +0000 (11:58 -0400)]
Delete OrderBy(...).First{OrDefault}(...) optimization (#36643)

The optimization removes the O(n log n) cost of the OrderBy. But it can result in executing the predicate passed to First{OrDefault} more than in .NET Framework; it would always execute it n times, whereas previously it would execute it <= n times.  Developers have expressed concern about the change, in particular when using a relatively expensive predicate on a relatively short list, or when unadvisedly relying on side-effecting predicates.

4 years agoSync one more shared crossgen2 file (#36638)
Michal Strehovský [Mon, 18 May 2020 15:38:04 +0000 (17:38 +0200)]
Sync one more shared crossgen2 file (#36638)

4 years agoUpdate dependencies from https://github.com/mono/linker build 20200518.2 (#36647)
dotnet-maestro[bot] [Mon, 18 May 2020 14:18:48 +0000 (14:18 +0000)]
Update dependencies from https://github.com/mono/linker build 20200518.2 (#36647)

Microsoft.NET.ILLink.Tasks
 From Version 5.0.0-preview.3.20265.2 -> To Version 5.0.0-preview.3.20268.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years ago[mono] Linking statically ICU shim on mono (#35790)
Thays Grazia [Mon, 18 May 2020 14:02:32 +0000 (11:02 -0300)]
[mono] Linking statically ICU shim on mono (#35790)

Linking statically ICU shim on mono for windows, linux, macOs and android.

4 years agoFix mono file name on iOS/Browser (#36646)
Alexander Köplinger [Mon, 18 May 2020 13:49:35 +0000 (15:49 +0200)]
Fix mono file name on iOS/Browser (#36646)

We initially intended to just use libmono.so/dylib as the name to simplify and follow the libcoreclr.dylib pattern and we did that by just copying to a different name after the build.

However that didn't work on Android since the name gets embedded inside the binary and Android checks that these match, so we'd either have to change the (auto)make to use the correct library name (and possibly creates complex conditionals in the Makefile for netcore) or go back to using `libmonosgen-2.0` on iOS.

We decided to do the latter.

4 years ago[mono] Fix AssemblyLoadContext.GetRuntimeAssembly() for AssemblyBuilders (#36367)
Alexis Christoforides [Mon, 18 May 2020 12:46:49 +0000 (08:46 -0400)]
[mono] Fix AssemblyLoadContext.GetRuntimeAssembly() for AssemblyBuilders (#36367)

4 years agoAdd iOS x86 build (#36602)
Alexander Köplinger [Mon, 18 May 2020 09:27:21 +0000 (11:27 +0200)]
Add iOS x86 build (#36602)

Needed for the iOS Simulator for 32bit iOS devices.

4 years agoNaricc/ci interpreter arm64 (#36258)
Nathan Ricci [Sun, 17 May 2020 23:51:37 +0000 (19:51 -0400)]
Naricc/ci interpreter arm64 (#36258)

Change mono interpreter runs to be a scenario instead of a seperate leg. Also enable arm64 interpreter runs, and add test exclusions.

4 years agoCMake: Point download URLs directly to https:// (#36615)
Nick Craver [Sun, 17 May 2020 23:27:13 +0000 (19:27 -0400)]
CMake: Point download URLs directly to https:// (#36615)

4 years agoSync crossgen2 shared files (#36610)
Michal Strehovský [Sun, 17 May 2020 19:35:32 +0000 (21:35 +0200)]
Sync crossgen2 shared files (#36610)

4 years agoRemoved left-over NUnit references from comments (#36606)
Alfred Myers [Sun, 17 May 2020 15:37:47 +0000 (12:37 -0300)]
Removed left-over NUnit references from comments (#36606)

4 years ago[master] Update dependencies from mono/linker Microsoft/vstest dotnet/xharness (...
dotnet-maestro[bot] [Sun, 17 May 2020 14:18:20 +0000 (14:18 +0000)]
[master] Update dependencies from mono/linker Microsoft/vstest dotnet/xharness (#36598)

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

Microsoft.NET.ILLink.Tasks
 From Version 5.0.0-preview.3.20265.1 -> To Version 5.0.0-preview.3.20265.2

* Update dependencies from https://github.com/microsoft/vstest build 20200515-03

Microsoft.NET.Test.Sdk
 From Version 16.7.0-preview-20200515-01 -> To Version 16.7.0-preview-20200515-03

* Update dependencies from https://github.com/dotnet/xharness build 20200515.8

Microsoft.DotNet.XHarness.Tests.Runners
 From Version 1.0.0-prerelease.20265.1 -> To Version 1.0.0-prerelease.20265.8

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years ago[interp] Don't share interp_in signatures for different valuetypes (#36520)
monojenkins [Sat, 16 May 2020 20:47:39 +0000 (16:47 -0400)]
[interp] Don't share interp_in signatures for different valuetypes (#36520)

We share interp_in wrappers for different types of signatures if the corresponding params are equivalent. This was added in https://github.com/mono/mono/commit/5cbe93884798684efbb81abd79e0e2a170544b75. This was reusing some sharing mechanism used by gsharedvt. Those wrappers are shared with regard to managed->managed transitions so it takes additional freedoms, converting all valuetypes to ValueTuples instances. These can end up being marshalled differently from the initial struct so we can't use this valuetype sharing infrastructure in the interp_in_wrappers which can operate on native structs.

Fixes test_0_marshal_struct_delegate from pinvoke3.cs

Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
4 years ago[mono] Enable some System.Reflection.Emit tests (#35872)
Alexis Christoforides [Sat, 16 May 2020 17:38:41 +0000 (13:38 -0400)]
[mono] Enable some System.Reflection.Emit tests (#35872)

4 years agoFix StackTraceTests to work with JIT optimization (#36596)
Bruce Forstall [Sat, 16 May 2020 17:01:15 +0000 (10:01 -0700)]
Fix StackTraceTests to work with JIT optimization (#36596)

Disable optimization/inlining on methods that are expected to
remain on the stack.