platform/upstream/dotnet/runtime.git
4 years agoImplement BinaryPrimitives.ReverseEndianness for arm64 using rev (#34617)
Egor Bogatov [Fri, 24 Apr 2020 17:35:36 +0000 (20:35 +0300)]
Implement BinaryPrimitives.ReverseEndianness for arm64 using rev (#34617)

* Implement GT_BSWAP for arm64

* Add GT_BSWAP16

* use TARGET_ARM64 in codegenarmarch.cpp

4 years agoAdd runtimeFlavor parameter to build-test-job.yml (#35377)
Tomáš Rylek [Fri, 24 Apr 2020 16:35:28 +0000 (18:35 +0200)]
Add runtimeFlavor parameter to build-test-job.yml (#35377)

4 years agoAdd logic for immutable collection converters to share create-object delegate (#35080)
Layomi Akinrinade [Fri, 24 Apr 2020 16:25:42 +0000 (12:25 -0400)]
Add logic for immutable collection converters to share create-object delegate (#35080)

* Add logic for immutable collection converters to share create-object delegate

* Address review feedback

4 years agoEnable DnsGetHostEntry_LocalHost_ReturnsFqdnAndLoopbackIPs (#35399)
Alexander Nikolaev [Fri, 24 Apr 2020 16:21:19 +0000 (18:21 +0200)]
Enable DnsGetHostEntry_LocalHost_ReturnsFqdnAndLoopbackIPs (#35399)

Test is enabled because the failures were caused by Helix infra issue (a misconfigured agent) which was fixed a couple of days ago.

Fixes #34317

4 years agoMake C-lib math functions introspection more robust (#35325)
Adeel Mujahid [Fri, 24 Apr 2020 16:11:56 +0000 (19:11 +0300)]
Make C-lib math functions introspection more robust (#35325)

* Make atan2 introspection more robust

* Use volatile and variables for all math.h checks

4 years agoFix null reference handling in VSD stub for x86 (#35331)
Jan Vorlicek [Fri, 24 Apr 2020 15:39:34 +0000 (17:39 +0200)]
Fix null reference handling in VSD stub for x86 (#35331)

* Fix null reference handling in VSD stub for x86

The regression test that I've added recently to accompany a fix for null
reference handling in VSD stub for x64 is failing for x86. The problem
is that the null reference handling in VSD dispatch and resolve stubs
was broken in another way due to the x86 calling convention. When the
call went through a shuffle thunk that removes one stack argument due to
the shuffle, the manual unwinding in AdjustContextForVirtualStub was
getting an ESP that was off by one stack slot and exception handling
wasn't able to correctly unwind from that location to the caller.

This change fixes it by letting the AdjustContextForVirtualStub manually
unwind to the instruction after the call to the shuffle thunk / VSD stub
and updating the ESP according to the number of stack arguments of the
target method.

I have also modified the regression test. One change was to make a call
with multiple parameters to verify that the logic to get stack arguments
size is working correctly. Another change was to make sure that both
dispatch and resolve stub cases are tested.

* Replace MethodTable in the ResolveStub by size of stack args

This prevents issues in case the type represented by the MethodTable got
unloaded.

* Make the stack arguments size stuff Windows specific

On Unix x86, the stack is cleaned up by the caller, not the callee.

4 years agoRefactor get_time_stamp_ns (#34536)
Fan Yang [Fri, 24 Apr 2020 15:35:58 +0000 (11:35 -0400)]
Refactor get_time_stamp_ns (#34536)

* Refactor get_time_stamp_ns

* Add place holder function for pc to make pc build pass

* Add missing header file

* Move all time functions to mono-time.c

* Make sampling_thread_running a global variable

* Pass void* to init, clean_up and get_time function to accormodate different clock ID types for different os, and move back profiler specific function

* Add static keyword for local helper function and fix a typo

* Change to platform-specific typedef approach

* Add missing header file for macOS

* Add missing header file for linux

* Change header file name

* Change header file name one more time

* Fix failures on macOS

* Update src/mono/mono/utils/mono-time.h

Co-Authored-By: Ryan Lucia <ryan@luciaonline.net>
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
4 years agoBuild warnings (#35404)
Tom Deseyn [Fri, 24 Apr 2020 15:33:42 +0000 (17:33 +0200)]
Build warnings (#35404)

* Fix cmake warning about unmatched endif argument

* crossgen-corelib: fix empty mkdir warning

4 years ago[jit] use helper to obtain method signature (#35344)
monojenkins [Fri, 24 Apr 2020 15:16:04 +0000 (11:16 -0400)]
[jit] use helper to obtain method signature (#35344)

`mini_method_get ()` doesn't guarantee that `method->signature` is set.

Fixes a problem in https://github.com/mono/mono/pull/19624

/cc @lewing

Co-authored-by: lewurm <lewurm@users.noreply.github.com>
4 years agoMerge pull request #35403 from janvorli/update-unloadability-doc
Jan Vorlicek [Fri, 24 Apr 2020 14:47:02 +0000 (16:47 +0200)]
Merge pull request #35403 from janvorli/update-unloadability-doc

Update unloadability doc based on recent changes

4 years agoRemoved unecessary download of mono product build. (#35287)
Nathan Ricci [Fri, 24 Apr 2020 14:36:54 +0000 (10:36 -0400)]
Removed unecessary download of mono product build. (#35287)

4 years agoUpdate unloadability doc based on recent changes
Jan Vorlicek [Fri, 24 Apr 2020 12:56:29 +0000 (14:56 +0200)]
Update unloadability doc based on recent changes

The management of the handle that native runtime keeps to
AssemblyLoadContext has changed to fix a race recently, so I am updating
the doc according to the change.

4 years agoUpdate src/mono/mono/utils/mono-time.h
Fan Yang [Fri, 24 Apr 2020 12:18:51 +0000 (08:18 -0400)]
Update src/mono/mono/utils/mono-time.h

Co-Authored-By: Ryan Lucia <ryan@luciaonline.net>
4 years agoPrevent a possible assert in the debugger when a thread detaches (#34955)
monojenkins [Fri, 24 Apr 2020 10:52:31 +0000 (06:52 -0400)]
Prevent a possible assert in the debugger when a thread detaches (#34955)

When a new thread is attached to the VM, the debugger will add it to the
`thread_to_tls` hash table. When that thread detaches, it will be
removed. Once the thread is attached, if a client is debugging, the
client can use the `CMD_THREAD_GET_FRAME_INFO` command to ask for
details about that thread.

This is a possibility that the thread detaches before the
`CMD_THREAD_GET_FRAME_INFO` command is processed, so the thread may not
exist the the `thread_to_tls` hash table any more.

This is a race condition, but is a valid state, so instead of asserting,
the debugger agent should indicate to the client that the thread no
longer exists, using `ERR_UNLOADED`.

4 years ago[wasm] Rename the browser targets to `TargetsBrowser` (#35390)
Kenneth Pouncey [Fri, 24 Apr 2020 09:37:37 +0000 (11:37 +0200)]
[wasm] Rename the browser targets to `TargetsBrowser` (#35390)

- The change also makes sure that the `TargetsBrowser` is used consistently.
   - example TargetsWebAssembly and TargetsWASM

4 years agoMerge pull request #35363 from janvorli/fix-unloadability-tests
Jan Vorlicek [Fri, 24 Apr 2020 08:09:06 +0000 (10:09 +0200)]
Merge pull request #35363 from janvorli/fix-unloadability-tests

Fix failures in unloadability tests

4 years ago[wasm][debugger] Fix `evaluateOnCallFrame` for valuetype locals (#35361)
monojenkins [Fri, 24 Apr 2020 07:47:09 +0000 (03:47 -0400)]
[wasm][debugger] Fix `evaluateOnCallFrame` for valuetype locals (#35361)

.. including generic, and async methods. This fixes `hover` for valuetype locals.

Co-authored-by: radical <radical@users.noreply.github.com>
4 years agoAdd build configuration to generate runtime packs for WebAssem… (#34936)
Zoltan Varga [Fri, 24 Apr 2020 07:35:54 +0000 (03:35 -0400)]
Add build configuration to generate runtime packs for WebAssem… (#34936)

4 years agoDelete JIT_PATH host key/value pair (#35359)
Jan Kotas [Fri, 24 Apr 2020 04:03:08 +0000 (21:03 -0700)]
Delete JIT_PATH host key/value pair (#35359)

This was originally introduced to deal with the JIT being in a separate NuGet package. No longer the case for a years.

4 years agoFix failures on macOS
fanyang-mono [Fri, 24 Apr 2020 03:20:14 +0000 (23:20 -0400)]
Fix failures on macOS

4 years agoFix nethost.h header file when consuming as a static lib. (#35373)
Aaron Robinson [Fri, 24 Apr 2020 02:53:07 +0000 (19:53 -0700)]
Fix nethost.h header file when consuming as a static lib. (#35373)

4 years agoAdditional code cleanup (#35259)
Andrew Au [Fri, 24 Apr 2020 02:30:44 +0000 (19:30 -0700)]
Additional code cleanup (#35259)

* Additional code cleanup

* Code review feedback

* Remove associated clrconfigvalue.h entries

* More code review feedback

* Eliminate unnecessary entries in clrconfigvalues.h

4 years agoRevert "Build coreclr targetGeneric tests separately for CI (#34790)" (#35371)
Steve MacLean [Thu, 23 Apr 2020 23:15:05 +0000 (19:15 -0400)]
Revert "Build coreclr targetGeneric tests separately for CI (#34790)" (#35371)

This reverts commit 9188a5820ccc6dffc5763d22ee4a6cd040a4048c.

4 years agoDelete an extra new line when there is a child. (#35355)
Sergey Andreenko [Thu, 23 Apr 2020 22:42:09 +0000 (15:42 -0700)]
Delete an extra new line when there is a child. (#35355)

4 years agoJit: run throw helper merge phase before morph (#35255)
Andy Ayers [Thu, 23 Apr 2020 21:48:16 +0000 (14:48 -0700)]
Jit: run throw helper merge phase before morph (#35255)

Now that we have pred lists before morph, we can move the throw helper
tail merge phase earlier in the phase list.

This has two benefits:
* we can now merge a few more cases, because morph can introduce unique
temps for otherwise identical calls;
* it saves some throughput, because we no longer need to morph duplicate
calls.

There is more opportunity here to reduce code size if we can find the right
heuristic in morph to decide if throw helpers should be called or tail-called,
though the overall benefit is small (~600 methods, ~2000k bytes). I left the
current heuristic in place as I couldn't come up with anything better.

Fixes #35135.

4 years agoFix some overlooked template moves in the YML templates (#35311)
Tomáš Rylek [Thu, 23 Apr 2020 21:44:42 +0000 (23:44 +0200)]
Fix some overlooked template moves in the YML templates (#35311)

4 years agoChange header file name one more time
fanyang-mono [Thu, 23 Apr 2020 20:33:03 +0000 (16:33 -0400)]
Change header file name one more time

4 years agoFix failures in unloadability tests
Jan Vorlicek [Thu, 23 Apr 2020 20:32:43 +0000 (22:32 +0200)]
Fix failures in unloadability tests

The assert in EEClass::Destroy is invalid after a change #1201 that has
removed ArrayTypeDesc. It was causing failures of a large portion of the
coreclr tests.

There were also three tests that were failing due to test
incompatibilities with unloadability, so I am marking them as such.

4 years agoMerge pull request #35332 from janvorli/fix-runincontext-path
Jan Vorlicek [Thu, 23 Apr 2020 20:26:19 +0000 (22:26 +0200)]
Merge pull request #35332 from janvorli/fix-runincontext-path

Fix incorrect path of the runincontext script in Helix

4 years agoChange header file name
fanyang-mono [Thu, 23 Apr 2020 20:23:09 +0000 (16:23 -0400)]
Change header file name

4 years agoAdd missing header file for linux
fanyang-mono [Thu, 23 Apr 2020 18:22:13 +0000 (14:22 -0400)]
Add missing header file for linux

4 years ago[mono] Enable LLVM for iOS by default for AppleAppBuilder (#35338)
Egor Bogatov [Thu, 23 Apr 2020 17:47:51 +0000 (20:47 +0300)]
[mono] Enable LLVM for iOS by default for AppleAppBuilder (#35338)

* Enable LLVM for iOS by default

* Update Makefile

4 years agoChanges triggered by the CA1834 analyzer (#35227)
Prashanth Govindarajan [Thu, 23 Apr 2020 17:29:24 +0000 (10:29 -0700)]
Changes triggered by the CA1834 analyzer (#35227)

* Cherry pick if needed

* Changes triggered by https://github.com/dotnet/roslyn-analyzers/pull/3481

* sq

* Revert "Cherry pick if needed"

This reverts commit 55a98c41f6d2143737ec707faf2a3cf213474c97.

* sq

4 years agocorrectly set runWorkingDirectory (#35322)
Anirudh Agnihotry [Thu, 23 Apr 2020 17:21:40 +0000 (10:21 -0700)]
correctly set runWorkingDirectory (#35322)

4 years ago[meta] Add embedding API function to get the default ALC (#35191)
Ryan Lucia [Thu, 23 Apr 2020 15:49:30 +0000 (11:49 -0400)]
[meta] Add embedding API function to get the default ALC (#35191)

* Formatting fixes

* Add embedding API function get the default ALC

4 years agoAdd missing header file for macOS
Fan Yang [Thu, 23 Apr 2020 15:27:41 +0000 (11:27 -0400)]
Add missing header file for macOS

4 years agoBuild coreclr targetGeneric tests separately for CI (#34790)
Steve MacLean [Thu, 23 Apr 2020 15:09:23 +0000 (11:09 -0400)]
Build coreclr targetGeneric tests separately for CI (#34790)

* Build CoreClr tests separately

* Build coreclr targetGeneric tests separately for CI
* Build coreclr targetGeneric tests separately in runtime.yml
* Distinguish generic build based on Libraries config
* Build OSX release libraries when CoreCLR changed
* Always use tar.gz compression for generic tests

* Mark all CoreCLR Interop/COM projects OsSpecific

4 years agoChange to platform-specific typedef approach
fanyang-mono [Thu, 23 Apr 2020 14:39:52 +0000 (10:39 -0400)]
Change to platform-specific typedef approach

4 years agoUpdate docs links to 3.1 (#35309)
Maira Wenzel [Thu, 23 Apr 2020 13:52:53 +0000 (06:52 -0700)]
Update docs links to 3.1 (#35309)

4 years agoFix invalid cast in StringValues.this[int] (#35302)
Stephen Toub [Thu, 23 Apr 2020 13:51:42 +0000 (09:51 -0400)]
Fix invalid cast in StringValues.this[int] (#35302)

4 years agoUpdated assert statement to include a check for Timeout in FileSystem… (#35298)
vivekbm [Thu, 23 Apr 2020 13:50:34 +0000 (19:20 +0530)]
Updated assert statement to include a check for Timeout in FileSystem… (#35298)

* Updated assert statement to include a check for Timeout in FileSystem.Attributes.Windows

* fixes 28831
Added the check, the earlier commit had a syntax error.

4 years agoUpdate Android CI build image (#35333)
Alexander Köplinger [Thu, 23 Apr 2020 12:56:38 +0000 (14:56 +0200)]
Update Android CI build image (#35333)

Includes newest Android NDK and defines the ANDROID_NDK_ROOT environment variable which is preferred to ANDROID_NDK_HOME.

4 years ago[meta] Add GCHandle embedding API v2 with pointer-sized handles (#35197)
Ryan Lucia [Thu, 23 Apr 2020 12:36:16 +0000 (08:36 -0400)]
[meta] Add GCHandle embedding API v2 with pointer-sized handles (#35197)

4 years agoBuild iOS AOT compiler against LLVM, always. (#35306)
Jo Shields [Thu, 23 Apr 2020 12:22:49 +0000 (08:22 -0400)]
Build iOS AOT compiler against LLVM, always. (#35306)

4 years agoTimeout increased to 10 miliseconds (#35289)
Alexander Nikolaev [Thu, 23 Apr 2020 10:53:35 +0000 (12:53 +0200)]
Timeout increased to 10 miliseconds (#35289)

Timeout increased to 10 milliseconds in Timeout_TooShort_AllPendingOperationsCanceled

Fixes #32818

4 years agoMerge pull request #35049 from k15tfu/fix-coreclr-profiler-path-arm-arm64
David Mason [Thu, 23 Apr 2020 10:43:06 +0000 (03:43 -0700)]
Merge pull request #35049 from k15tfu/fix-coreclr-profiler-path-arm-arm64

Fix handling CoreClr profiler path for 32/64 bit flavors on ARM/ARM64

4 years agoRename the 'WebAssembly' OS to 'Browser' and the RID to 'brows… (#35323)
Zoltan Varga [Thu, 23 Apr 2020 10:05:13 +0000 (06:05 -0400)]
Rename the 'WebAssembly' OS to 'Browser' and the RID to 'brows… (#35323)

4 years agoenable Proxy_UseEnvironmentVariableToSetSystemProxy_RequestGoesThruProxy test (#34444)
Jan Jahoda [Thu, 23 Apr 2020 09:15:59 +0000 (11:15 +0200)]
enable Proxy_UseEnvironmentVariableToSetSystemProxy_RequestGoesThruProxy test (#34444)

* Disable test on windows and enable on other platforms

* enable test

* Add diag logs

* enhance logging

* Add body logging

* Add more logs

* Add logs to loopback server

* add trace

* Disallow run test on WinHttpHandler and remove logs

* Clean up

* rename variable

4 years agoJIT: revise how the jit tracks use of generics context (#34827)
Andy Ayers [Thu, 23 Apr 2020 08:05:57 +0000 (01:05 -0700)]
JIT: revise how the jit tracks use of generics context (#34827)

The generics context is reported by the jit specially whenever it feeds into
runtime lookups, as expansion of those lookups can expose pointers into runtime
data structures, and we don't want those data structures to be collected if
jitted code is still using them.

Sometimes uses of the context are optimized away, and reporting costs
code size and GC space, so we don't want to report the context unless there
is an actual use.

This change revises how the jit keeps track of context use -- instead of trying
to incrementally ref count uses of the generics context, we now just leverage
existing passes which do local accounting.

Initial motivation for this came from #34641 where the context use was
over-reported, but investigation showed we also some times under-report as
the context var could be cloned without changing the ref count.

So this change fixes both under and over reporting.

Closes #34641.

4 years agoRe-enable Windows 7 and Windows8.1 helix queues (#35211)
Santiago Fernandez Madero [Thu, 23 Apr 2020 07:35:04 +0000 (00:35 -0700)]
Re-enable Windows 7 and Windows8.1 helix queues (#35211)

4 years agoJson-Parse: Parse with `RapidJson::kParseStopWhenDoneFlag` on all architectures ...
Swaroop Sridhar [Thu, 23 Apr 2020 06:47:05 +0000 (23:47 -0700)]
Json-Parse: Parse with `RapidJson::kParseStopWhenDoneFlag` on all architectures (#35073)

RapidJson's `kParseStopWhenDoneFlag` indicates that parsing should stop once the root element is parsed, and should not throw an error for any further content.

This flag is useful when the input stream doesn't always have a null-terminator --
ex: an input `bytestream` (rather than a `stringstream`), files embeded within the single file bundle.
The limitation of using this flag is that any actual random text after the root element is silently ignored.

Currently, RapidJson is invoked with `kParseStopWhenDoneFlag` on Windows, but not on Unix.
This caused `kParseErrorDocumentRootNotSingular` failure on Unix when parsing json files from single-file bundles.

This change fixes this problem by passing `kParseStopWhenDoneFlag` on all platforms.
This also makes the host behavior consistent across platforms.

4 years agoSystem.Diagnostics Tracing APIs (#35220)
Tarek Mahmoud Sayed [Thu, 23 Apr 2020 03:57:13 +0000 (20:57 -0700)]
System.Diagnostics Tracing APIs (#35220)

* System.Diagnostics Tracing APIs

* address the feedback

4 years agoOptimize VectorX.Clamp according to proposed change (#34896)
AlFas [Thu, 23 Apr 2020 00:53:07 +0000 (03:53 +0300)]
Optimize VectorX.Clamp according to proposed change (#34896)

* Optimize Vector4.Clamp according to proposed change

* Apply clamp optimizations to all vector types

4 years agomore code cleanup (#35276)
Maoni Stephens [Thu, 23 Apr 2020 00:42:51 +0000 (17:42 -0700)]
more code cleanup (#35276)

mostly for gc_low/gc_high usage.

there is one functional change which is there's an incorrect assert in plan_phase which is not true when mark_list is used

4 years ago[mono] Bundle all tests to *.app for iOS as part of -subset Libs.Tests (#35283)
Egor Bogatov [Wed, 22 Apr 2020 21:07:00 +0000 (00:07 +0300)]
[mono] Bundle all tests to *.app for iOS as part of -subset Libs.Tests (#35283)

* Build *.app for iOS as part of Libs.Tests subset

* Add `-test` support

* Reduce *.app size (from 45 to 32 mb)

4 years agoMdhwang/reduce mobile checks (#35105)
Mitchell Hwang [Wed, 22 Apr 2020 21:00:47 +0000 (17:00 -0400)]
Mdhwang/reduce mobile checks (#35105)

* [eng] Add TargetsMobile Property to Subsets.props

* Replace TargetOS mobile conditions with TargetsMobile Property

* [libraries] Remove leftover condition`

Co-authored-by: Mitchell Hwang <mihw@microsoft.com>
4 years agoImplemented cmd version of excludemonofailures parameter. (#35292)
Nathan Ricci [Wed, 22 Apr 2020 20:06:26 +0000 (16:06 -0400)]
Implemented cmd version of excludemonofailures parameter. (#35292)

4 years agoFix SuperPmi MCS tool (#35290)
Carol Eidt [Wed, 22 Apr 2020 19:25:39 +0000 (12:25 -0700)]
Fix SuperPmi MCS tool (#35290)

It currently errors out if it finds a method without `CORINFO_FLG_STATIC`, `CORINFO_FLG_DONT_INLINE` or `CORINFO_FLG_CONSTRUCTOR`. Also, it only prints the first attribute it encounters.
It's unclear to me how this ever worked, but in any case it isn't useful to fail to generate a map or IL dump.

4 years agoGCPOLL and Natural loop fixes (#34837)
Brian Sullivan [Wed, 22 Apr 2020 18:42:22 +0000 (11:42 -0700)]
GCPOLL and Natural loop fixes (#34837)

* Fixes for GCPoll and COMPLUS_GCPollType=3

* This is a combination of 2 commits.

Fix for a rare case where fgReorderBlocks splits the blocks for a natural loop

* Address Code review feedback from Aaron

4 years ago[Arm64] Implement ASIMD Extract Insert ExtractVector64 ExtractVector128 (#35030)
Egor Chesakov [Wed, 22 Apr 2020 18:01:23 +0000 (11:01 -0700)]
[Arm64] Implement ASIMD Extract Insert ExtractVector64 ExtractVector128 (#35030)

* Implements Extract, Insert, ExtractVector64 and ExtractVector128 intrinsics.

* Implements a way to generate a fallback mechanism for intrinsics accepting an immediate operand when the operand is not constant.

* Renames NoContainment flag to SupportsContainment on Arm64 (presumably, there should be fewer intrinsics supporting containment analysis so it makes more sense to have NoContainment as default)

* Removes ival column from hwintrinsiclistarm64.h table and the corresponding field in HWIntrinsicInfo struct.

4 years agoRemove the explicit IEquatable implementation from the IntPtr/UIntPtr reference API...
Tanner Gooding [Wed, 22 Apr 2020 17:21:52 +0000 (10:21 -0700)]
Remove the explicit IEquatable implementation from the IntPtr/UIntPtr reference API (#35256)

4 years agoFix store/load float LCL_FIELD with unaligned offsets on arm32. (#34990)
Sergey Andreenko [Wed, 22 Apr 2020 16:56:27 +0000 (09:56 -0700)]
Fix store/load float LCL_FIELD with unaligned offsets on arm32. (#34990)

* Fix arm32 access to unaligned float fields.

* Add an additional test for the issue.

* Reenable the test.

* We don't need to require 8 bytes alignment for double, 4 is enough.

* Add comments.

* Move `buildInternalRegisterUses` after we define all of them.

* Extract `IsOffsetMisaligned`.

* Fix for the `IND float(ADD byref(LCL_VAR byref, CNT_INT 1))`.

4 years agoPing timeout in SendPingWithIPAddress test increased to 10 seconds (#35286)
Alexander Nikolaev [Wed, 22 Apr 2020 16:07:42 +0000 (18:07 +0200)]
Ping timeout in SendPingWithIPAddress test increased to 10 seconds (#35286)

Ping timeout in SendPingWithIPAddress test increased to 10 seconds to prevent failures.

4 years agoAdd static keyword for local helper function and fix a typo
fanyang-mono [Wed, 22 Apr 2020 14:33:02 +0000 (10:33 -0400)]
Add static keyword for local helper function and fix a typo

4 years agoStop passing in auto-discovered xunit traits (#35237)
Viktor Hofer [Wed, 22 Apr 2020 12:43:31 +0000 (14:43 +0200)]
Stop passing in auto-discovered xunit traits (#35237)

* Stop passing in auto-discovered xunit traits

With https://github.com/dotnet/arcade/pull/5314, framework and platform
traits don't need to be passed in manually anymore. Also removing the
obsolete vstest.runner.json as it isn't needed for VSTest.

4 years agoMerge pull request #35275 from kjpou1/doc/requirements/mono
Kenneth Pouncey [Wed, 22 Apr 2020 10:32:46 +0000 (12:32 +0200)]
Merge pull request #35275 from kjpou1/doc/requirements/mono

[docs] Helpful links when building the first time.

4 years ago[master] Update dependencies from Microsoft/vstest dotnet/xharness (#35198)
dotnet-maestro[bot] [Wed, 22 Apr 2020 10:19:33 +0000 (10:19 +0000)]
[master] Update dependencies from Microsoft/vstest dotnet/xharness (#35198)

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

- Microsoft.NET.Test.Sdk: 16.7.0-preview-20200416-02 -> 16.7.0-preview-20200420-01

* Update dependencies from https://github.com/microsoft/vstest build 20200421-02

- Microsoft.NET.Test.Sdk: 16.7.0-preview-20200416-02 -> 16.7.0-preview-20200421-02

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

- Microsoft.DotNet.XHarness.Tests.Runners: 1.0.0-prerelease.20220.2 -> 1.0.0-prerelease.20221.1

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

- Microsoft.DotNet.XHarness.Tests.Runners: 1.0.0-prerelease.20220.2 -> 1.0.0-prerelease.20221.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoFix a warning. (#35272)
monojenkins [Wed, 22 Apr 2020 10:03:54 +0000 (06:03 -0400)]
Fix a warning. (#35272)

<!--
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[wasm][debugger] Fix enumerating for `this` on valuetypes (#35267)
monojenkins [Wed, 22 Apr 2020 09:09:26 +0000 (05:09 -0400)]
[wasm][debugger] Fix enumerating for `this` on valuetypes (#35267)

- This also fixes the same thing for `evaluateOnCallFrame`
- And, showing type arguments in generic method names

Co-authored-by: radical <radical@users.noreply.github.com>
4 years ago[amd64] Fix tailcall with arguments passed on stack (#34814)
Vlad Brezae [Wed, 22 Apr 2020 08:49:25 +0000 (11:49 +0300)]
[amd64] Fix tailcall with arguments passed on stack (#34814)

On all platforms, OP_TAILCALL copies the arguments (that are passed on the stack) from the param area in the current frame, to the param area in the caller frame, meaning that it expects the arguments to be passed normally on the stack. However, on amd64, mono_arch_emit_call was storing these arguments directly in the param area of the caller (EMIT_NEW_ARGSTORE), instead of the param area of the current frame. OP_TAILCALL would then override the already set stack parameters with random data from the uninitialized param area of the current frame.

4 years agoMerge pull request #35173 from am11/feature/solaris/coreclr-port-without-libunwind...
Jan Vorlicek [Wed, 22 Apr 2020 08:38:06 +0000 (10:38 +0200)]
Merge pull request #35173 from am11/feature/solaris/coreclr-port-without-libunwind-changes

Port CoreCLR to SunOS

4 years agoJIT: add suppressed zero inits if we transform tail recursive call to… (#35148)
Andy Ayers [Wed, 22 Apr 2020 07:47:31 +0000 (00:47 -0700)]
JIT: add suppressed zero inits if we transform tail recursive call to… (#35148)

Track whether the jit has suppressed in-body zero initialization for any locals
because at the time it appeared prolog initialization would be sufficient. If
the jit subsequently decides to change a tail recursive call into a loop, use
this information to add back the missing zero initializations.

Added a test case.

Addresses #33529.

4 years ago[docs] Helpful links when building the first time.
Kenneth Pouncey [Wed, 22 Apr 2020 05:23:46 +0000 (07:23 +0200)]
[docs] Helpful links when building the first time.

- Add requirements link to the mono build README.md
- Add a link to the requirements document when missing openssl.

4 years agoEnable CI to run CoreCLR tests on Mono (#34054)
Nathan Ricci [Wed, 22 Apr 2020 04:18:31 +0000 (00:18 -0400)]
Enable CI to run CoreCLR tests on Mono (#34054)

Run the runtime tests on mono in ci.

Co-authored-by: Joseph Shields <directhex@apebox.org>
4 years agoExpose BinaryReader / BinaryWriter 7-bit encoding methods publicly (#35170)
Levi Broderick [Wed, 22 Apr 2020 03:44:47 +0000 (20:44 -0700)]
Expose BinaryReader / BinaryWriter 7-bit encoding methods publicly (#35170)

4 years agoAdd Checked configuration to crossgen2 project (#35266)
Simon Nattress [Wed, 22 Apr 2020 03:31:23 +0000 (20:31 -0700)]
Add Checked configuration to crossgen2 project (#35266)

The runtime is often built Checked during development for faster code that's still fairly debuggable. Add a Checked build option to Crossgen2's projects which lets runtime developers build / debug in VS and consume an existing Checked JIT.

4 years agoMore clrconfig cleanup (#35261)
Andrew Au [Wed, 22 Apr 2020 02:43:08 +0000 (19:43 -0700)]
More clrconfig cleanup (#35261)

* More clrconfig cleanup

* Fixed a build error

4 years agoStop passing GC types in IL tests. (#35207)
Aaron Robinson [Wed, 22 Apr 2020 01:56:13 +0000 (18:56 -0700)]
Stop passing GC types in IL tests. (#35207)

4 years agoEnable the installer for mono Linux_x64 (#35127)
Steve Pfister [Tue, 21 Apr 2020 19:35:58 +0000 (15:35 -0400)]
Enable the installer for mono Linux_x64 (#35127)

Since mono distributes only runtime packs, this change removes steps that assume the
shared framework exists along with installers.

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

4 years agoConsolidate Microsoft.NETCore.App property usage (#35116)
Mitchell Hwang [Tue, 21 Apr 2020 19:34:35 +0000 (15:34 -0400)]
Consolidate Microsoft.NETCore.App property usage (#35116)

* [eng] Add SharedFrameworkName Microsoft.NETCore.App property

* [src] Remove extra SharedFrameworkName declarations

Co-authored-by: Mitchell Hwang <mihw@microsoft.com>
4 years agoRemove DisallowNull annotation in JsonConverter.Write() (#35022)
Steve Harter [Tue, 21 Apr 2020 18:44:48 +0000 (13:44 -0500)]
Remove DisallowNull annotation in JsonConverter.Write() (#35022)

4 years agoMerge pull request #35253 from dotnet/leecow-patch
Lee Coward [Tue, 21 Apr 2020 18:42:24 +0000 (11:42 -0700)]
Merge pull request #35253 from dotnet/leecow-patch

Update 5.0 snap yaml

4 years agoadd 5.0 snap yamls
Lee Coward [Tue, 21 Apr 2020 18:32:19 +0000 (11:32 -0700)]
add 5.0 snap yamls

4 years agoMerge branch 'master' of https://github.com/dotnet/runtime into leecow-patch
Lee Coward [Tue, 21 Apr 2020 18:30:02 +0000 (11:30 -0700)]
Merge branch 'master' of https://github.com/dotnet/runtime into leecow-patch

4 years agoFix dactablegen's search for MSDia and remove DIADll from the tree (#35086)
Juan Hoyos [Tue, 21 Apr 2020 17:46:15 +0000 (10:46 -0700)]
Fix dactablegen's search for MSDia and remove DIADll from the tree (#35086)

* Copy msdia140 to binary path to ensure correct bitness
* Remove DIALib binary from the tree

4 years agoEmit type layout check fixups (#34927)
Simon Nattress [Tue, 21 Apr 2020 17:42:16 +0000 (10:42 -0700)]
Emit type layout check fixups (#34927)

* Emit type layout check fixups

When a ready-to-run compiled method uses value types from other version bubbles, emit a precode fixup to check at runtime that the type is still compatible (same size, alignment, GC layout).

Bring over `GCPointerMap*.cs` from CoreRT repo to get the compute the GC layout bytes that match what the runtime expects in the layout blob.

Simplify the behavior of the Crossgen test scripting. If tests opt out of crossgen by setting `<CrossGenTest>false</CrossGenTest>`, skip emitting the crossgen commands into the test run script. Also, stop setting the `RunCrossGen` and `RunCrossGen2` environment variables in the test script based on compile-time settings. These get set by runtest.py anyway. This set of tweaks allow for crossgen tests which we don't want to run the default crossgen commands on, and allow choosing either crossgen or crossgen2 as part of test execution.

4 years ago[GC] Fix the bounds of desired size equalization loop . (#35226)
Vladimir Sadov [Tue, 21 Apr 2020 17:13:52 +0000 (10:13 -0700)]
[GC] Fix the bounds of desired size equalization loop . (#35226)

* Fix the bounds of desired size equalization loop .

* Use <= in the right place.

4 years agoupdate branding to preview5 (#35215)
Anirudh Agnihotry [Tue, 21 Apr 2020 16:44:01 +0000 (09:44 -0700)]
update branding to preview5 (#35215)

4 years agoAdd API docs for HashAlgorithmName.{Try}FromOid.
Kevin Jones [Tue, 21 Apr 2020 16:27:30 +0000 (12:27 -0400)]
Add API docs for HashAlgorithmName.{Try}FromOid.

4 years agoAdd new IntPtr/UIntPtr API surface (#307)
John [Tue, 21 Apr 2020 16:23:33 +0000 (17:23 +0100)]
Add new IntPtr/UIntPtr API surface (#307)

* Add new IntPtr surface

* Add new UIntPtr API surface

* Add sequential layout to match [U]Int32

* Add interfaces and sequential layout

* Add interfaces

* Add namespaces

* Add namespaces

* Update UIntPtr.cs

* Update IntPtr.cs

* Change style

* make non versionable, elide copy

* fix style, elide copy, make non versionable

* Fix syntax error

* Fix style issues

* Fix style issues

* Update IntPtr.cs

* Update UIntPtr.cs

* Update ref assembly

* Allow comparison of intptr/uintptr in Array

* Fixed ELEMENT_TYPE cases, added tests based on Int32/UInt32 tests

* Fixes

* Update Array.cs

* Update Array.cs

* Update Array.cs

* Update ArrayTests.cs

* Update ArrayTests.cs

* Update UIntPtrTests.cs

* Update ArrayTests.cs

* fix instance methods??

* fixes

* Fixwa

* fix tests

* Add non versionables

* fix compare methods

* Fix comparison error

* fix boundary

* fix compares

* fix maxvals

* remove xunit buggy data

* silly var name error

* Update src/libraries/System.Private.CoreLib/src/Resources/Strings.resx

Co-Authored-By: Tanner Gooding <tagoo@outlook.com>
* Fix ToString

Co-authored-by: Tanner Gooding <tagoo@outlook.com>
4 years agoAdd API docs for HashAlgorithmName.{Try}FromOid.
Kevin Jones [Tue, 21 Apr 2020 16:07:09 +0000 (12:07 -0400)]
Add API docs for HashAlgorithmName.{Try}FromOid.

4 years agoMerge branch 'master' into feature/solaris/coreclr-port-without-libunwind-changes
Adeel Mujahid [Tue, 21 Apr 2020 15:00:20 +0000 (18:00 +0300)]
Merge branch 'master' into feature/solaris/coreclr-port-without-libunwind-changes

4 years ago[mono] Fix iOS sample (#35241)
Egor Bogatov [Tue, 21 Apr 2020 14:29:25 +0000 (17:29 +0300)]
[mono] Fix iOS sample (#35241)

4 years agoAvoid unnecessary ToLower calls in RegexCompiler generated code (#35185)
Stephen Toub [Tue, 21 Apr 2020 13:37:38 +0000 (09:37 -0400)]
Avoid unnecessary ToLower calls in RegexCompiler generated code (#35185)

* Avoid unnecessary ToLower calls in RegexCompiler generated code

We can skip calling ToLower{Invariant} if the only character that could possibly lower-case to the character we're comparing against is that character itself.  This then also lets us employ optimizations like using IndexOf when searching for `\n` as part of expressions like `.*`.

* Fix a comment

* Add test to validate UnicodeCategory assumptions

4 years agoMerge pull request #34997 from janvorli/implement-native-getmoduleindex
Jan Vorlicek [Tue, 21 Apr 2020 12:14:44 +0000 (14:14 +0200)]
Merge pull request #34997 from janvorli/implement-native-getmoduleindex

Implement native GetModuleIndex

4 years ago[mono] Add LLVM support for iOS test runner; use runtime packs (#35106)
Egor Bogatov [Tue, 21 Apr 2020 10:07:28 +0000 (13:07 +0300)]
[mono] Add LLVM support for iOS test runner; use runtime packs (#35106)

4 years ago[CBOR] Implement support for tagged types (#34767)
Eirik Tsarpalis [Tue, 21 Apr 2020 09:06:34 +0000 (10:06 +0100)]
[CBOR] Implement support for tagged types (#34767)

* [CBOR] Implement support for dateTime types

* fix test errors

* refine RFC3339 dateTime formatting logic

* add invalid date string tests

* Implement BigInteger support

* initial decimal support implementation

* use stack allocated buffers instead of thread local buffers

* add test cases for negative unix time dates

* add WriteNegativeIntegerEncoding tests

* implement checkpointing logic and apply to SkipValue() method

* implement checkpointing for tagged type readers

* store reader checkpoints in the stack

* add tests for rollback logic in tagged type readers

* add tested that utilizes nested reader state rollbacks

* use culture invariant decimal parsing in tests

* add WriteUnixTimeSeconds(double) method

* split unix time and string time readers into separate methods

* add WriteUnixTestSeconds invalid input test

* add support and tests for indefinite-length buffers in tagged types

* add PeekTag() tests

* add Read/WriteInt32() convenience methods

* add pervasive buffer postcondition checks on negative reader tests; fix related bug.

* add comment on DateTime parsing

* Rename CborReader.Peek() to CborReader.PeekState()

* Use correct overload for int32 handling

* add caching to CborReader.PeekState()

* Use "simple" instead of "special" for cbor major type

* add Write/ReadUInt32() convenience methods

* add uint32 negative tests

4 years agoImprove RegexCompiler's ToLower perf (#35203)
Stephen Toub [Tue, 21 Apr 2020 01:09:00 +0000 (21:09 -0400)]
Improve RegexCompiler's ToLower perf (#35203)

* Pool LocalBuilders in RegexCompiler

Currently GenerateGo/FindFirstChar create a few _tempLocal1, _tempLocal2, etc. LocalBuilders that various parts of the methods may use.  The developer then need to keep track of which of these locals is currently being used such that we maximize the re-use of them while not accidentally overlapping their use.  And the names end up being non-descriptive, so in some cases additional names are added for convenience.

The primary purpose of the PR is cleanup.  It adds a pool of LocalBuilders that lets them be rented just where they're needed, such that we only create locals when necessary, can give them appropriate names, etc.  However, it also makes it a lot easier for helpers to create temporary locals (e.g. as was done in EmitMatchCharacterClass) which then makes it easier to add additional optimizations.

* Avoid CultureInfo.TextInfo virtual calls in RegexCompiler

To support RegexOptions.IgnoreCase, RegexCompiler ends up generating a call to `char.ToLower(c, _culture)` for every character compared.  That `ToLower` call in turn needs to access `_culture.TextInfo`, and then call its `ToLower(char)` virtual method.  We can instead get the `TextInfo` once and call its `ToLower` method directly, saving a virtual call on every character being compared.

Note that we were already doing this (for .NET 5) in RegexInterpreter, but hadn't done it in RegexCompiler because of complications around locals management.  The previous commit fixed that and made this possible.

* Update src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexCompiler.cs

4 years agoAdd microsoft-extensions to area owners (#35186)
Dan Moseley [Mon, 20 Apr 2020 23:03:09 +0000 (16:03 -0700)]
Add microsoft-extensions to area owners (#35186)

* Add extensions

* Add missing data rows

* Add area-CodeGen-LLVM-mono

Co-authored-by: Marek Safar <marek.safar@gmail.com>
4 years agoGuard against chaching of dangling global parent class of module (#35150)
Juan Hoyos [Mon, 20 Apr 2020 22:47:45 +0000 (15:47 -0700)]
Guard against chaching of dangling global parent class of module (#35150)