Yaroslav Yamshchikov [Tue, 4 Feb 2020 02:46:54 +0000 (05:46 +0300)]
set THUMB_CODE bit (#21180)
Zoltan Varga [Tue, 4 Feb 2020 02:35:04 +0000 (21:35 -0500)]
[aot] Avoid inflating gparams with byreflike types during generic sharing. (#31670)
Fixes https://github.com/mono/mono/issues/18676.
Egor Chesakov [Tue, 4 Feb 2020 01:47:14 +0000 (17:47 -0800)]
[Arm64] Update execution characteristics for crc32b, crc32h, facge, facgt (#8500)
* Add execution characteristics for Crc32 instructions in emitarm64.cpp
* Update execution characteristics for DV_3B instructions in emitarm64.cpp
* Add execution characteristics for DV_3D instructions in emitarm64.cpp
* Update comment in emitIns_R_R_R in emitarm64.cpp
Fadi Hanna [Tue, 4 Feb 2020 01:09:30 +0000 (20:09 -0500)]
Save stack arguments size in InlinedCallFrame.m_Datum on x86 to handle callee's popping of arguments (#26834)
* Save stack arguments size in InlinedCallFrame.m_Datum on x86 to handle callee's popping of arguments
* Move stack arguments sizes logic to Windows-only
Santiago Fernandez Madero [Tue, 4 Feb 2020 00:44:33 +0000 (16:44 -0800)]
Fix package testing run name prefix (#31690)
Tomáš Rylek [Tue, 4 Feb 2020 00:19:59 +0000 (01:19 +0100)]
Disable two JIT tests failing with known issue tracked under #31665 (#31674)
* Disable two JIT tests failing with known issue tracked under #31665
* Address Andy's PR feedback - make the exclusion clauses global
Jan Kotas [Tue, 4 Feb 2020 00:14:05 +0000 (16:14 -0800)]
Delete unnecessary netstandard builds (#31641)
* Delete unnecessary netstandard builds and NuGet packages of inbox components
- Delete netstandard builds and NuGet packages for System.Reflection.Emit.*
- Delete netstandard builds and NuGet packages for System.Reflection.TypeExtensions
- Delete netstandard build for System.Buffers\ref
- Delete clrcompression UAP build support
Contributes to #2138
* Remove packages from the baseline
Drew Scoggins [Tue, 4 Feb 2020 00:08:52 +0000 (16:08 -0800)]
Merge pull request #31694 from DrewScoggins/anscoggi/FixArch
* Update Arch and add RunKind variable
* Fix up Linux script as well
Drew Scoggins [Mon, 3 Feb 2020 23:58:12 +0000 (15:58 -0800)]
Fix up Linux script as well
Eric Erhardt [Mon, 3 Feb 2020 23:48:01 +0000 (17:48 -0600)]
Add Single and Double overloads to BinaryPrimitives (#6864)
* Add Single and Double overloads to BinaryPrimitives
Fix #2365
Eugene Rozenfeld [Mon, 3 Feb 2020 23:40:18 +0000 (15:40 -0800)]
Remove popped trees more aggressively. (#31677)
When processing CEE_POP the importer sometimes created trees
like
ASG(tmp1, expr)
followed by
COMMA(ADDR(tmp1), NOP))
and that was causing some CQ issues.
LocalAddressVisitor was then marking tmp1 as address-exposed
and we never get rid of the dead ASG(tmp1, expr). What's worse, we
then were adding a zero-initialization for tmp1 in the prolog.
The fix here is to create a NOP instead of a COMMA is there are
no side-effects in the first operand of the COMMA.
This addresses the first example in #2325.
Drew Scoggins [Mon, 3 Feb 2020 23:39:42 +0000 (15:39 -0800)]
Update Arch and add RunKind variable
Drew Scoggins [Mon, 3 Feb 2020 23:38:14 +0000 (15:38 -0800)]
Merge branch 'master' of https://github.com/dotnet/runtime
Tomáš Rylek [Mon, 3 Feb 2020 23:19:21 +0000 (00:19 +0100)]
Initial Crossgen2 fixes for composite R2R support (#31652)
With initial local changes to enable composite R2R I have finally
been able to compile a CoreCLR unit test in this mode. It doesn't
yet work at runtime, these changes just fix initial compiler issues
I hit during the build:
1) Delegate constructor signature was missing some comparison logic
that ended up asserting in the node comparer in the composite
build.
2) I have removed two seeminly superfluous parameters to
CreateMethodEntrypointNodeHelper.
3) I have removed an assertion related to multi-file RVA fields
that I believe to be no longer relevant after the refactorings
to copy the RVA fields around properly.
Thanks
Tomas
Santiago Fernandez Madero [Mon, 3 Feb 2020 21:53:39 +0000 (13:53 -0800)]
Link System.Globalization.Native into coreclr (#6928)
* Link System.Globalization.Native into coreclr
* Add more paths to coreclr subset filters
* Fix linux build
* PR Feedback
* PR Feedback 2
* Fix build (pass -DREPO_ROOT_DIR only on coreclr atm), System.IO.Ports.Native needs to be built first
* Remove version header file from static libs
* Remove CORECLR_BUILD variable definition
monojenkins [Mon, 3 Feb 2020 21:05:51 +0000 (16:05 -0500)]
[mini] Add method-triggered printing for runtime stats (#2355)
This work extends the `--stats` command to take in an optional method name. When a matching method is compiled or transformed, the stats will be printed out at that point in addition to after program execution. This is useful for products looking to measure startup time and activity, as well as for ourselves to track any loader performance regressions.
Once this lands, we should see about running it on a cadence, ideally on both desktop and Android. Additionally, more work needs to be done to the counters to expose them in a way more friendly to consumption on Android/wasm (including a callback). We should also update the website to document this additional behavior.
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Co-authored-by: Kyle Markland <v-kymark@microsoft.com>
Co-authored-by: Rene Garcia <v-regarc@microsoft.com>
Steve MacLean [Mon, 3 Feb 2020 20:42:16 +0000 (15:42 -0500)]
Libraries native renames (#31668)
Match coreclr & cross compilation naming conventions
Rename BIT64 -> TARGET_64BIT in src/libraries/Native
Rename BIT32 -> TARGET_32BIT in src/libraries/Native
Rename FEATURE_PAL -> TARGET_UNIX in src/libraries/Native
Rename PLATFORM_UNIX -> TARGET_UNIX in src/libraries/Native
Rename PLATFORM_WINDOWS -> TARGET_WINDOWS in src/libraries/Native
Rename PLATFORM_OSX -> TARGET_OSX in src/libraries/Native
Rename _ARM_ -> TARGET_ARM in src/libraries/Native
Rename _ARM64_ -> TARGET_ARM64 in src/libraries/Native
Rename _AMD64_ -> TARGET_AMD64 in src/libraries/Native
Rename _X86_ -> TARGET_X86 in src/libraries/Native
Rename ARM -> TARGET_ARM in src/libraries/Native
Rename ARM64 -> TARGET_ARM64 in src/libraries/Native
Rename AMD64 -> TARGET_AMD64 in src/libraries/Native
Rename X86_ -> TARGET_X86 in src/libraries/Native
Stephen Toub [Mon, 3 Feb 2020 19:19:38 +0000 (14:19 -0500)]
Catch ObjectDisposedException in SmtpClient.Abort (#22867)
* Catch ObjectDisposedException in SmtpClient.Abort
* Address PR feedback
* Apply suggestions from code review
Co-Authored-By: Cory Nelson <phrosty@gmail.com>
Co-authored-by: Cory Nelson <phrosty@gmail.com>
Jan Vorlicek [Mon, 3 Feb 2020 18:16:19 +0000 (19:16 +0100)]
Fix x86 InlinedCallFrame popping during EH (#2215)
* Fix x86 InlinedCallFrame popping during EH
There is a bug in InlinedCallFrame popping on x86 during EH with R2R
compiled code. The code is popping this frame if it is at the top of
the explicit frames stack before executing catch handler. But it
is missing a check to see if the frame was actually in the unwound part
of the stack. So in some corner cases, it can end up popping a frame
that belongs to an active pinvoke somewhere up the call chain.
The fix is to do the popping only if the InlinedCallFrame is located at
an address smaller than the ESP of the caller of the method that
contains the exception handler.
* Fix typos in a comment close to my change
* Remove workaround for the original issue
buyaa-n [Mon, 3 Feb 2020 18:11:04 +0000 (10:11 -0800)]
Annotate System.ComponentModel.Composition for nullable (#1842)
* Annotating System.ComponentModel.Composition for nullable
Andrew Au [Mon, 3 Feb 2020 18:05:51 +0000 (10:05 -0800)]
Make fixup decoding lazy (#31646)
Eirik Tsarpalis [Mon, 3 Feb 2020 15:17:28 +0000 (15:17 +0000)]
Nullable annotate System.Security.Principal.Windows (#2347)
* annotate System.Security.Principal.Windows
* enable nullable for ref assembly
* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/SID.cs
Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/SID.cs
Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* address feedback
* address feedback
* remove dead code
* remove ComVisibleAttribute
* Make domainSid optional in Sid constructor
* add omitted nullable annotation
* address feedback
* work around annotation issue
* try fixing build
* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/WindowsIdentity.cs
Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/WindowsIdentity.cs
Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* address feedback
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Marek Safar [Mon, 3 Feb 2020 14:40:45 +0000 (15:40 +0100)]
Add missing method dependency to Mono SPC (#2338)
* Add missing method dependency to Mono SPC
Fixes #2227
* Reenable ILLinkTrimAssembly
* Fix entries in linker xml that used wrong names
* Add more entries to linker xml from CoreCLR
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
monojenkins [Mon, 3 Feb 2020 13:46:10 +0000 (08:46 -0500)]
[build] Check for Python 3 in configure.ac (#2372)
* [build] Check for Python 3 in configure.ac
I fear this causing packaging problems, but as-is we require Python 3 for most of our Python files but don't actually check for that in configure. We should be consistent about this. Some projects (notably wasm) also use the Python version detected here, so bumping this will also bump the version used in those cases (a good thing, since there are some known bugs when using the scripts with Python 2).
* Update docker images to reflect py3 inclusion
* Update centos-7 image
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Vlad Brezae [Mon, 3 Feb 2020 11:08:05 +0000 (03:08 -0800)]
[interp] Fix enum constrained calls on netcore (#31618)
We were failing to dereference a managed pointer to the enum, due to incorrect checks, when doing a constrained call.
Fixes https://github.com/mono/mono/issues/18530
monojenkins [Mon, 3 Feb 2020 10:17:03 +0000 (05:17 -0500)]
Fix ppc64 build by fixing -mminimal-toc more correctly. (#31636)
The original fix back at mono/mono#18554 did not work quite right, which was missed for lack of CI.
Reworked this check to instead test for `-mminimal-toc` on all powerpc hosts, and to only do the ELF version check on FreeBSD.
Fixes mono/mono#18554 mono/mono#18578 current CI build failures on AIX
Co-authored-by: Phil Jaenke <prj@rootwyrm.com>
Jan Kotas [Mon, 3 Feb 2020 06:12:13 +0000 (22:12 -0800)]
Revert "Optimize typeof(T1).IsAssignableFrom(typeof(T2))" (#31643)
Elinor Fung [Mon, 3 Feb 2020 05:56:51 +0000 (21:56 -0800)]
Split binder tracing tests into separate test projects (#3855)
* Split binder tracing tests into separate test projects
* Stop using specific time when waiting for events
* Don't run tests in a separate process under GC stress
Ben Adams [Mon, 3 Feb 2020 04:18:06 +0000 (04:18 +0000)]
Skip EqualityComparer<TKey>.Default creation in Dictionary .ctor (#31629)
* Skip EqualityComparer<TKey>.Default creation in Ditctionary .ctor
* Update src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs
Co-Authored-By: Stephen Toub <stoub@microsoft.com>
Yoh Deadfall [Sun, 2 Feb 2020 19:56:18 +0000 (22:56 +0300)]
Eliminated info creation for non-public properties (#2278)
Andy Ayers [Sun, 2 Feb 2020 18:52:45 +0000 (10:52 -0800)]
Optimize typeof(T1).IsAssignableFrom(typeof(T2)) (#1195)
* Optimize Type.IsAssignableFrom
* Add TypeIntrinsics.IsAssignableFrom to TypeIntrinsics.csproj
* Formatting
* Add License header
* Remove assert
* fix "mustexpand assert"
* Add tests for Arrays of vt
monojenkins [Sun, 2 Feb 2020 16:29:45 +0000 (11:29 -0500)]
Adjust mono_class_init_internal to no longer bypass cleanup when a fa… (#21964)
…ilure is detected.
This fixes: https://issuetracker.unity3d.com/issues/unity-physics-collisions-do-not-work-and-errors-are-thrown-when-entering-play-mode
<!--
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: Alex Thibodeau <alexthibodeau@unity3d.com>
Carol Eidt [Sun, 2 Feb 2020 14:28:43 +0000 (06:28 -0800)]
Allow type mismatch for struct single field (#6102)
On Arm64, we can have an HVA or HFA with a single scalar or SIMD field. When it is the destination of an assigment to a call result, the assignment may be re-typed to the non-struct type. It may be ideal in the long run to defer this re-typing until Lowering, but allow this case for now.
Fix #2182
Loosen assert
monojenkins [Sun, 2 Feb 2020 06:18:23 +0000 (01:18 -0500)]
[llvm] Enable jump threading with LLVM JIT. (#25687)
See https://github.com/mono/mono/issues/16243. This will allow elision of redundant bounds checks. This pass is already used during AOT (as part of opt -O2).
Here's `FirstOrDefault` (from mono/mono#16243) with this change:
```
0000000000000000 <gram_FirstOrDefault__int___>:
<BB>:1
0: 31 c0 xor %eax,%eax
2: 48 85 ff test %rdi,%rdi
5: 74 09 je 10 <gram_FirstOrDefault__int___+0x10>
7: 83 7f 18 01 cmpl $0x1,0x18(%rdi)
b: 7e 03 jle 10 <gram_FirstOrDefault__int___+0x10>
d: 8b 47 24 mov 0x24(%rdi),%eax
10: c3 retq
***
```
Co-authored-by: imhameed <imhameed@microsoft.com>
Ben Adams [Sun, 2 Feb 2020 06:01:51 +0000 (06:01 +0000)]
Highlight directory (#31625)
Andy Ayers [Sat, 1 Feb 2020 19:41:47 +0000 (11:41 -0800)]
JIT: fold trees after inline return expression updates (#1751)
Aggressively fold as we substitute inline return value trees in for the return
value placeholders. Notice when this folding leads to branch simplification,
and make the associated flow graph update.
The recently added early flow opt pass will then transitively remove any
newly unreachable code.
Resolves dotnet/coreclr#27395.
EgorBo [Sat, 1 Feb 2020 19:27:27 +0000 (22:27 +0300)]
Add tests for Arrays of vt
EgorBo [Sat, 1 Feb 2020 19:13:47 +0000 (22:13 +0300)]
Merge branch 'master' of github.com:dotnet/runtime into type-isassignedfrom
Jan Kotas [Sat, 1 Feb 2020 18:38:50 +0000 (10:38 -0800)]
Revert "Improve call counting mechanism (#1457)" (#30105)
* Revert "Revert "Disable test based on #129 (#130)" (#2310)"
This reverts commit
427cd918a027aed167b1c4bedb52c7ca50731aba.
* Revert "Fail FuncEval if slot backpatching lock is held by any thread (#2380)"
This reverts commit
fc06054a774e28a5a47bbe862adcf03251abb43c.
* Revert "Improve call counting mechanism (#1457)"
This reverts commit
3a457cb4b552d9b32fbf844389ad2a08bcb2a7a6.
EgorBo [Sat, 1 Feb 2020 11:39:08 +0000 (14:39 +0300)]
Merge branch 'master' of github.com:dotnet/runtime into type-isassignedfrom
# Conflicts:
# src/coreclr/tests/src/JIT/Intrinsics/TypeIntrinsics.cs
# src/libraries/System.Private.CoreLib/src/System/Type.Helpers.cs
Fadi Hanna [Sat, 1 Feb 2020 05:33:38 +0000 (00:33 -0500)]
Emit DebugDirectory section and all DebugDirectory entries (#2398)
* Emit DebugDirectory section and all DebugDirectory entries
- Add new RELOC type for raw data points
- Emit native DebugDirectory entry with proper MD5 hash of the output image
- Fix determinism issue: timestamp has to be copied from input IL image
Jan Kotas [Sat, 1 Feb 2020 03:17:23 +0000 (19:17 -0800)]
Cleanup NETCOREAPP ifdef usage in System.Runtime.Tests (#22224)
Fixes #21827
Jeremy Barton [Sat, 1 Feb 2020 01:47:45 +0000 (17:47 -0800)]
Disable macOS 10.15 from fullMatrix runs
This OS was just enabled a couple of days ago, and isn't testing so hot.
Turning it off until it can come back on in a passing state.
Carol Eidt [Sat, 1 Feb 2020 01:11:41 +0000 (17:11 -0800)]
Fix UpperVector save asserts (#2268)
Not all helper calls have standard kill sets.
Fix #2181
Steve MacLean [Sat, 1 Feb 2020 00:36:44 +0000 (19:36 -0500)]
Rename cross compilation related defines (#2256)
* Rename identifiers to be more consistent
This patch was a machine generated search and replace of
identifiers. The replacement was done in the order listed
for the path specified.
A regex was used to find the identifiers.
s/(^|[^A-CE-Za-z0-9_])${find}($|[^A-Za-z0-9_])
The 'D' character was specifically allowed a s a prefix
to catch add_definitions(-D${find}).
The patch also reverts all managed code changes after replacement.
_ARM_ -> HOST_ARM in src/coreclr
_ARM64_ -> HOST_ARM64 in src/coreclr
_AMD64_ -> HOST_AMD64 in src/coreclr
_X86_ -> HOST_X86 in src/coreclr
_HOST_UNIX_ -> HOST_UNIX in src/coreclr
_HOST_AMD64_ -> HOST_AMD64 in src/coreclr
_HOST_ARM64_ -> HOST_ARM64 in src/coreclr
_HOST_ARM_ -> HOST_ARM in src/coreclr
_HOST_X86_ -> HOST_X86 in src/coreclr
DBG_TARGET_AMD64 -> TARGET_AMD64 in src/coreclr
DBG_TARGET_ARM64 -> TARGET_ARM64 in src/coreclr
DBG_TARGET_ARM -> TARGET_ARM in src/coreclr
DBG_TARGET_X86 -> TARGET_X86 in src/coreclr
_TARGET_AMD64_ -> TARGET_AMD64 in src/coreclr
_TARGET_ARM_ -> TARGET_ARM in src/coreclr
_TARGET_ARM64_ -> TARGET_ARM64 in src/coreclr
_TARGET_X86_ -> TARGET_X86 in src/coreclr
_TARGET_ARMARCH_ -> TARGET_ARMARCH in src/coreclr
_TARGET_XARCH_ -> TARGET_XARCH in src/coreclr
_HOST_64BIT_ -> HOST_64BIT in src/coreclr
BIT64 -> HOST_64BIT in src/coreclr
_TARGET_64BIT_ -> TARGET_64BIT in src/coreclr
DBG_TARGET_64BIT -> TARGET_64BIT in src/coreclr
HOST_IS_WINDOWS_OS -> HOST_WINDOWS in src/coreclr
PLATFORM_UNIX -> HOST_UNIX in src/coreclr/*.cmake
PLATFORM_WINDOWS -> HOST_WINDOWS in src/coreclr/*.cmake
_TARGET_MAC64 -> TARGET_OSX in src/coreclr
FEATURE_PAL -> TARGET_UNIX in src/coreclr
_TARGET_UNIX_ -> TARGET_UNIX in src/coreclr
_TARGET_WINDOWS_ -> TARGET_WINDOWS in src/coreclr
PLATFORM_UNIX -> TARGET_UNIX in src/coreclr
PLATFORM_WINDOWS -> TARGET_WINDOWS in src/coreclr
* Miscellaneous manual fixes to fix compilation
Remove unused defines
Remove BIT32
Remove DBG_TARGET_AMD64_UNIX
Remove DBG_TARGET_ARM64_UNIX
Remove DBG_TARGET_ARM_UNIX
Remove DBG_TARGET_32BIT
Fixes for HOST_<arch> rename
Move TARGET_<Arch> and TARGET_<bit>
Move from clrdefinitions.cmake
to configurecompiler.cmake so it is used globally.
More jit.h
* Whitespace by clang-format
Yaroslav Yamshchikov [Fri, 31 Jan 2020 22:57:09 +0000 (01:57 +0300)]
crossgen2 ARM support misc (#21109)
Jared Parsons [Fri, 31 Jan 2020 22:11:05 +0000 (14:11 -0800)]
Fix handling of missing ConfigurationGroup property (#24077)
* Account for missing ConfigurationGroup
Our logic for setting the CoreCLR and Mono runtime configurations didn't
properly account for cases where only `$(Configuration)` was passed down
as a build property. It expects that both `$(Configuration)` and
`$(ConfigurationGroup)` are passed down as a pair.
This change guards against us accidentially setting the runtime
configuration to the current library definition of configuration which
is more like a target framework than Debug or Release.
Related to #23800
* Test for missing ConfigurationGroup
monojenkins [Fri, 31 Jan 2020 21:41:20 +0000 (16:41 -0500)]
Abort cmov optimization, when one of the out blocks is try block (#2373)
Fixes mono/mono#17733
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
David Mason [Fri, 31 Jan 2020 21:01:10 +0000 (13:01 -0800)]
Add profiler APIs for writing EventPipe events (#2173)
* Profiler APIs for writing events
* Code review feedback
* Change EVENTPIPE_EVENTID to EVENTPIPE_EVENT to avoid confusion with EventID
* have the runtime pack the arguments instead of the profiler
* Add more checks in asserts
David Wrighton [Fri, 31 Jan 2020 20:56:47 +0000 (12:56 -0800)]
New pgo format for crossgen2 (#2314)
* Adjust compilation model to support trace based profile guided optimization data in a new format
- Add parser for new format
- Adjust program startup and options parsing to make it simpler for the profiler guided logic to be aware of version bubbles
- Use CompilationModuleGroup and version bubble in parsing and handling of profile data
* Handle malformed and incorrect IBC data
Ivan Diaz Sanchez [Fri, 31 Jan 2020 20:30:05 +0000 (12:30 -0800)]
Referred GC Benchmarking Infra in the GC Performance testing docs (#5532)
Yaroslav Yamshchikov [Fri, 31 Jan 2020 19:49:01 +0000 (22:49 +0300)]
import thunks for ARM just from zapper (#21072)
buyaa-n [Fri, 31 Jan 2020 19:15:37 +0000 (11:15 -0800)]
Key should be non null (#5072)
Santiago Fernandez Madero [Fri, 31 Jan 2020 18:26:33 +0000 (10:26 -0800)]
Add runtime flavor to test run name for libraries outerloop runs (#12715)
* Add runtime flavor to test run name for libraries outerloop runs
* Bring Windows_x64 back
Stephen Toub [Fri, 31 Jan 2020 17:54:44 +0000 (12:54 -0500)]
Avoid extra indirect writes in BinaryPrimitives.TryRead methods (#20985)
monojenkins [Fri, 31 Jan 2020 16:41:39 +0000 (11:41 -0500)]
[aot] Add support for making direct cross-assembly calls in llvm mode. (#2225)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Jan Kotas [Fri, 31 Jan 2020 16:00:05 +0000 (08:00 -0800)]
Cleanup outdated docs (#21915)
* Delete outdated redundant PR docs
* Delete outdated docs
* Delete portability analyzer docs
Outdates and redundant with official documentation
monojenkins [Fri, 31 Jan 2020 14:54:20 +0000 (09:54 -0500)]
[jit] Avoid generating wbarriers for vtype stores to the stack. (#2089)
The existing heuristic doesn't work with llvm.
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Alexander Nikolaev [Fri, 31 Jan 2020 14:53:37 +0000 (15:53 +0100)]
Script copying SDKs to testhost folder so they can be loaded into stress test containers (#19178)
System.Net.Http stress test infra can build test containers from a local runtime build, however it currently fails on startup due to missing SDKs. This PR adds script which can be run before running the main run-docker-compose.ps1 to copy SDKs to testhost folder, so container building logic can find them.
Swift Kim [Fri, 31 Jan 2020 14:27:40 +0000 (23:27 +0900)]
Fix OverflowException from IntPtr casting (#14381)
Dong-Heon Jung [Fri, 31 Jan 2020 14:18:30 +0000 (23:18 +0900)]
Convert AppDomainNative::CreateDynamicAssembly to QCall (#2381)
- Get rid of the libunwind overhead by converting to QCall
Tomas Weinfurt [Fri, 31 Jan 2020 13:59:19 +0000 (05:59 -0800)]
Add missing throw in CertificateValidationApple_EndToEnd_Ok
Lee Coward [Fri, 31 Jan 2020 11:11:57 +0000 (03:11 -0800)]
Update yamls with latest release info. Clean out EOL versions. (#2371)
Jan Kotas [Fri, 31 Jan 2020 10:42:17 +0000 (02:42 -0800)]
Delete remaining reflection security checks (#2348)
* Delete remaining reflection security checks
Most the reflection security checks to restrict use of private reflection were deleted in CoreCLR years ago. There were still some left that got noticed in performance profiles.
* Delete IsCalledFromInterop
* Rename StaticAccessCheckContext to AccessCheckContext
Santiago Fernandez Madero [Fri, 31 Jan 2020 06:30:49 +0000 (22:30 -0800)]
Update Dotnet host for testing and add RuntimeFrameworkVersion to nca5.0 package testing (#2290)
* Update Dotnet host for testing and add RuntimeFrameworkVersion to nca5.0 package testing
* Update host version to latest containing musl arm fix
Stephen Toub [Fri, 31 Jan 2020 06:25:59 +0000 (01:25 -0500)]
Disable HttpListener tests failing on Mono in CI (#9373)
Zoltan Varga [Fri, 31 Jan 2020 05:39:22 +0000 (00:39 -0500)]
Merge pull request #10554 from monojenkins/sync-pr-18497-from-mono
Move generic_class_init out of line to assist branch prediction.
lateralusX [Fri, 31 Jan 2020 04:28:41 +0000 (04:28 +0000)]
Move generic_class_init out of line to assist branch prediction.
When calling a generic class we need to make sure it has been initilized. This is done by calling generic_class_init. Since the need to check if the method has been executed happens frequently, but will only run once, it should be put out of line, assisting branch predictor, preventing misspredictions (in all places but the first).
Currently this is not the case, since we will generate code like this:
```
0000000000000484: cmp byte ptr [rcx+2Dh],0
0000000000000488: jne
000000000000048F
000000000000048A: call p_3_plt_EmptyGame__jit_icall_mono_generic_class_init_llvm
000000000000048F: mov rax,qword ptr [mono_aot_EmptyGame_llvm_got+0C8h]
```
Where we will always (except for first call) take the forward branch.
Instead we should mark the call to the method as out of line, at least giving the code generator the information so it can move it out of line and preventing a jmp, unless when it needs to init, the slow path. Doing that will generate the following code:
```
0000000000000484: cmp byte ptr [rcx+2Dh],0
0000000000000488: je
00000000000004C1
000000000000048A: mov rax,qword ptr [mono_aot_EmptyGame_llvm_got+0C8h]
...
00000000000004C1: call p_3_plt_EmptyGame__jit_icall_mono_generic_class_init_llvm
00000000000004C6: jmp
000000000000048A
```
Tomas Weinfurt [Fri, 31 Jan 2020 04:27:00 +0000 (20:27 -0800)]
Improve resiliency of CertificateValidationRemoteServer_EndToEnd_Ok test (#2369)
* Improve resiliency of CertificateValidationRemoteServer_EndToEnd_Ok test
* minor update
* add sync version
* feedback from review
Tomas Weinfurt [Fri, 31 Jan 2020 04:25:49 +0000 (20:25 -0800)]
improve handling of kSecTrustResultRecoverableTrustFailure (#2135)
* improve handling of kSecTrustResultRecoverableTrustFailure
* feedback from review
Tomas Weinfurt [Fri, 31 Jan 2020 04:16:58 +0000 (20:16 -0800)]
improve Connection_UnderDifferentUsers_BehavesAsExpected test (#2549)
* improve Connection_UnderDifferentUsers_BehavesAsExpected test
* feedback from review
Justin Kotalik [Fri, 31 Jan 2020 04:04:45 +0000 (20:04 -0800)]
Fix Receive loop in System.Net.Quic, add test (#6035)
Andy Ayers [Fri, 31 Jan 2020 03:21:12 +0000 (19:21 -0800)]
JIT: improve stress range experience (#2313)
Use `compMethodHash` for stress and inline range inclusions.
Base all stress decisions on the hash of the root method.
Indicate if stress is potentially active for a method in the one-line output
from `DumpJittedMethods`. Indicate if stress is active but this method is
excluded from stress by name or hash.
Update inline xml to use hex for tokens and hashes.
Update`JitPrintInlinedMethods` to take a method set, likewise for `JitPrintDevirtualizedMethods`.
Layomi Akinrinade [Fri, 31 Jan 2020 02:57:20 +0000 (18:57 -0800)]
Update ActiveIssue URLs for Newtonsoft tests for immutable collections (#6215)
Jared Parsons [Fri, 31 Jan 2020 00:35:27 +0000 (16:35 -0800)]
Local live builds not picking up runtime config (#2093)
* Local live builds not picking up runtime config
The local live builds were not properly picking up the runtime
configuration varaible. This meant that libraries always attempted to
build against a Debug CoreCLR even if the developer specified
`-runtimeConfiguration Release`
* PR Feedback:
- Ensure that `$(RuntimeConfiguration)` is always set
- Remove duplicated logic in Subsets.props
* Remove unnecessary properties
* Progress
* Mix configurations
Change the live / live jobs so they mix release and debug
configurations. This will help ensure we avoid future breaks in this
area
* Undo MonoOsGorup delete
* Correct the import order
* Publish binary logs
* Pass -ci as this is a CI build
* Progress
* Test
* Set ArtifactsObjDir early enough for Mono
Mono currently relies on ArtifactsObjDir when setting
BaseIntermediateOutputPath. Not setting it leads to restore issues.
* Don't overwrite the properties
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Zoltan Varga [Thu, 30 Jan 2020 22:12:39 +0000 (17:12 -0500)]
Merge pull request #2397 from vargaz/aot-races
[aot] Fix some races if GOT entries are already set.
Santiago Fernandez Madero [Thu, 30 Jan 2020 22:07:11 +0000 (14:07 -0800)]
Try changing dotnet installation path to avoid clash with the one in tools directory (#3856)
Mike McLaughlin [Thu, 30 Jan 2020 21:20:58 +0000 (13:20 -0800)]
Fix unhandled exception line number issues (#2269)
Fix unhandled exception line number issues
There are a few paths to get the place (DebugStackTrace::DebugStackTraceElement::InitPass2) where
the offset/ip needs an adjustment:
1) The System.Diagnostics.StackTrace constructors that take an exception object. The stack trace in
the exception object is used (from the _stackTrace field).
2) Processing an unhandled exception for display (ExceptionTracker::ProcessOSExceptionNotification).
3) The System.Diagnostics.StackTrace constructors that don't take an exception object that get the
stack trace of the current thread.
For cases #1 and #2 the StackTraceInfo/StackTraceElement structs are built when the stack trace
for an exception is generated and is put in the private _stackTrace Exception object field. The
IP in each StackTraceElement is decremented for hardware exceptions and not for software exceptions
because the CrawlFrame isInterrupted/hasFaulted fields are not initialized (always false). This is
backwards for h/w exceptions leaf node frames but really can't be changed to be compatible with
other code in the runtime and SOS.
The fIsLastFrameFromForeignStackTrace BOOL in the StackTraceElement/DebugStackTraceElement structs
have been replaced with INT "flags" field defined by the StackTraceElementFlags enum. There is a new
flag that is set (STEF_IP_ADJUSTED) if the IP has been already adjusted/decremented. This flag is
used to adjust the native offset when it is converted to an IL offset for source/line number lookup
in DebugStackTraceElement::InitPass2().
When the stack trace for an exception is rendered to a string (via the GetStackFramesInternal FCALL)
the internal GetStackFramesData/DebugStackTraceElement structs are initialized. This new "flags"
field is passed from the StackTraceElement to the DebugStackTraceElement struct.
For case #3 all this happens in the GetStackFramesInternal FCALL called from the managed constructor
building the GetStackFramesData/DebugStackTraceElement structs directly.
Fixes issues #27765 and #25740.
Fix IL offset map search.
Zoltan Varga [Thu, 30 Jan 2020 20:58:38 +0000 (15:58 -0500)]
Merge pull request #2321 from vargaz/top-runtime-invoke-opt
[jit] Add a 'top-runtime-invoke-unhandled' option to treat exceptions which reach the top invoke frame as unhandled when embedding.
Zoltan Varga [Thu, 30 Jan 2020 20:57:45 +0000 (15:57 -0500)]
Merge pull request #2392 from monojenkins/sync-pr-18634-from-mono
[mono] Prevent direct MonoClass field access
Michal Strehovský [Thu, 30 Jan 2020 20:32:31 +0000 (21:32 +0100)]
Add support for emitting inlining info in large version bubble (#1981)
The existing inlining info format wasn't ready for large version bubble. This adds a new table that uses the NativeHashtable to store the inlining info.
This implements support in crossgen2, r2rdump, and the runtime. Crossgen will keep generating the old format until crossgen is decommissioned.
Stephen Toub [Thu, 30 Jan 2020 20:27:58 +0000 (15:27 -0500)]
Fix EventWrittenEventArgs.Keywords on EventSource error event (#2343)
When EventSource encounters an error, it emits an event with ID == 0. The EventWrittenEventArgs.Keywords property is incorrectly trying to find keyword data for this event, resulting in a null ref when accessing the property on an error event.
Stephen Toub [Thu, 30 Jan 2020 20:18:00 +0000 (15:18 -0500)]
Remove defunct !s after Roslyn changes for default(T) (#2377)
Santiago Fernandez Madero [Thu, 30 Jan 2020 19:33:59 +0000 (11:33 -0800)]
Update alpine arm64 image (#2370)
Zoltan Varga [Thu, 30 Jan 2020 18:29:09 +0000 (13:29 -0500)]
Merge pull request #2386 from vargaz/fix-wasm-mmap
[wasm] Fix mono_vfree ().
Tanveer Gani [Thu, 30 Jan 2020 18:28:26 +0000 (10:28 -0800)]
Add attribute to support inline namespaces in C++/CLI. (#781)
* Add attribute to support inline namespaces in C++/CLI.
A new assembly-scope custom attribute
[CppInlineNamespace(string dottedName)]
has been added to implement inline namespaces in C++/CLI. For every
inline namespace encountered in a translation unit, the C++ compiler
will emit this attribute with the fully scoped name, in CLR dotted
form, as the argument for the attribute.
* Add [CppInlineNamespace] to refs.
Koundinya Veluri [Thu, 30 Jan 2020 18:15:29 +0000 (10:15 -0800)]
Fail FuncEval if slot backpatching lock is held by any thread (#2380)
- In many cases cooperative GC mode is entered after acquiring the slot backpatching lock and the thread may block for debugger suspension while holding the lock. A FuncEval may time out on entering the lock if for example it calls a virtual or interface method for the first time. Failing the FuncEval when the lock is held enables the debugger to fall back to other options for expression evaluation.
- Also added polls for debugger suspension before acquiring the slot backpatching lock on background threads that often operate in preemptive GC mode. A common case is when the debugger breaks while the tiering delay timer is active, the timer ticks shortly afterwards (after debugger suspension completes) and if a thread pool thread is already available, the background thread would block while holding the lock. The poll checks for debugger suspension and pulses the GC mode to block before acquiring the lock.
- The fix is only a heuristic and lessens the problem when it is detected that the lock is held by some thread. Since the lock is acquired in preemptive GC mode, it is still possible that after the check at the start of a FuncEval, another thread acquires the lock and the FuncEval may time out. The polling makes it less likely for the lock to be taken by background tiering work, for example if a FuncEval starts while rejitting a method.
- The expression evaluation experience may be worse when it is detected that the lock is held, and may still happen from unfortunate timing
Fix for https://github.com/dotnet/runtime/issues/1537
Zoltan Varga [Thu, 30 Jan 2020 17:34:35 +0000 (12:34 -0500)]
[aot] Fix some races if GOT entries are already set.
decode_patch_info () would not decode patches if their corresponding GOT entry
was already set, causing half initialized MonoJumpInfo entries to be returned
to callers. Set the type of the MonoJumpInfo entry to MONO_PATCH_INFO_NONE
in these cases, and have the callers handle it.
dotnet-maestro[bot] [Thu, 30 Jan 2020 16:20:32 +0000 (17:20 +0100)]
[master] Update dependencies from 4 repositories (#2074)
* Update dependencies from https://github.com/dotnet/arcade build
20200122.3
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20072.3
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20072.3
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20072.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20072.3
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20072.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20072.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20072.3
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20072.3
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20072.3
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20072.3
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20072.3
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20072.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20072.3
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20072.3
* Update dependencies from https://github.com/dotnet/runtime-assets build
20200122.1
- System.Windows.Extensions.TestData - 5.0.0-beta.20072.1
- System.Security.Cryptography.X509Certificates.TestData - 5.0.0-beta.20072.1
- System.Private.Runtime.UnicodeData - 5.0.0-beta.20072.1
- System.Net.TestData - 5.0.0-beta.20072.1
- System.IO.Packaging.TestData - 5.0.0-beta.20072.1
- System.IO.Compression.TestData - 5.0.0-beta.20072.1
- System.Drawing.Common.TestData - 5.0.0-beta.20072.1
- System.ComponentModel.TypeConverter.TestData - 5.0.0-beta.20072.1
* Update dependencies from https://github.com/dotnet/arcade build
20200123.17
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20073.17
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20073.17
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20073.17
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20073.17
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20073.17
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20073.17
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20073.17
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20073.17
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20073.17
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20073.17
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20073.17
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20073.17
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20073.17
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20073.17
* Update dependencies from https://github.com/dotnet/arcade build
20200124.6
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20074.6
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20074.6
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20074.6
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20074.6
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20074.6
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20074.6
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20074.6
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20074.6
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20074.6
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20074.6
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20074.6
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20074.6
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20074.6
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20074.6
* Update dependencies from https://github.com/dotnet/arcade build
20200125.3
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20075.3
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20075.3
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20075.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20075.3
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20075.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20075.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20075.3
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20075.3
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20075.3
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20075.3
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20075.3
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20075.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20075.3
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20075.3
* Update dependencies from https://github.com/dotnet/arcade build
20200126.3
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20076.3
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20076.3
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20076.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20076.3
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20076.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20076.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20076.3
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20076.3
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20076.3
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20076.3
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20076.3
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20076.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20076.3
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20076.3
* Update dependencies from https://github.com/dotnet/arcade build
20200127.7
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20077.7
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20077.7
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20077.7
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20077.7
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20077.7
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20077.7
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20077.7
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20077.7
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20077.7
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20077.7
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20077.7
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20077.7
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20077.7
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20077.7
* Bang some nullability warnings on generics
* Update dependencies from https://github.com/dotnet/arcade build
20200129.8
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20079.8
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20079.8
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20079.8
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20079.8
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20079.8
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20079.8
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20079.8
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20079.8
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20079.8
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20079.8
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20079.8
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20079.8
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20079.8
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20079.8
* Update dependencies from https://github.com/microsoft/vstest build
20200130-01
- Microsoft.NET.Test.Sdk - 16.5.0-preview-
20200130-01
* Remove obsolete namespace for MonoAttribute
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Stephen Toub [Thu, 30 Jan 2020 16:08:25 +0000 (11:08 -0500)]
Tweak Regex compiler's FindFirstChar code gen (#2342)
* Tweak Regex compiler's FindFirstChar code gen
- If we're able to use IndexOf{Any} and we don't have any information on subsequent characters, we can avoid spitting the code related to looping, avoid unnecessary slicing, etc.
- If the Boyer-Moore prefix contains non-ASCII text, we currently don't use it when compiling FindFirstChar, but we previously made a change to also skip computing other prefix information if we got a Boyer-Moore prefix, which ends up making FindFirstChar terrible when there's Unicode in the prefix string. This fixes that to still compute the other prefix information in that case.
- We're currently often generating multiple "this.runtextpos = runtextend; return false" blocks. We can consolidate them.
- Makes a few cleanliness changes to the assembly generator, e.g. ensuring the internal types are sealed, the types are all beforefieldinit as the C# compiler would do, etc.
Also added/tweaked a few tests.
* Address PR feedback
Stephen Toub [Thu, 30 Jan 2020 16:05:39 +0000 (11:05 -0500)]
Allow using non-backtracking code gen for captures in atomic groups (#2327)
I think it was an oversight that I didn't include Atomic in this list previously. This lets our better non-backtracking code gen be used even when captures are inside of atomic groups.
mdh1418 [Thu, 30 Jan 2020 16:02:18 +0000 (16:02 +0000)]
[mono] Prevent direct MonoClass field access
Fixes mono/mono#15544
### After adding configure flag
<img width="874" alt="Screen Shot 2020-01-30 at 10 54 25 AM" src="https://user-images.githubusercontent.com/
16830051/
73466184-
81f4c180-434f-11ea-87f0-
0863c32b1251.png">
### After using m_class accessors
<img width="865" alt="Screen Shot 2020-01-30 at 10 55 04 AM" src="https://user-images.githubusercontent.com/
16830051/
73466229-
93d66480-434f-11ea-8914-
cef5571a0528.png">
<!--
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
-->
Zoltan Varga [Thu, 30 Jan 2020 14:36:12 +0000 (09:36 -0500)]
[wasm] Fix mono_vfree ().
monojenkins [Thu, 30 Jan 2020 14:24:33 +0000 (09:24 -0500)]
[wasm][debugger] Cancel Existing Single Step Request When Creating New (#2309)
When stepping out of a c# breakpoint into the runtime (or JS... Not sure if that's accurate),
multiple single step requests can be created when the breakpoint is hit again. In order to handle this scenario for wasm, we just cancel the existing one.
Stephen Toub [Thu, 30 Jan 2020 14:04:52 +0000 (09:04 -0500)]
Port more Regex doc samples to tests (#2326)
* Port more Regex doc samples to tests
* Address PR feedback
Adeel Mujahid [Thu, 30 Jan 2020 12:22:03 +0000 (14:22 +0200)]
Pass native build args from top-level scripts (#2071)
* Pass native build args from top-level scripts
* Remove obsolete message; switch platform/arch order
* Move export to a separate line
* Use URL-encoding to escape msbuild CMakeArgs property
Tomáš Rylek [Thu, 30 Jan 2020 10:27:34 +0000 (11:27 +0100)]
Improve thunk call disassembly in R2RDump (#2297)
* Improve thunk call disassembly in R2RDump
This change improves the disassembly of thunk-based calls to R2R
helpers used by Crossgen1 and considered for Crossgen2 to improve
disassembly quality and facilitate easier comparison of Crossgen1
vs. Crossgen2 codegen.
I have also added new options for hiding the instruction offsets
in the disassembly and for omitting functions with identical
disassembly in the common functions diff output. For SPC this
reduced the size of the dump in <code>--naked --hide-offsets
--diff-hide-same-disasm</code> mode by about one half.
In view of the fact that Andrew wasn't too happy about my change
to stop logging to the console I further simplified the related
code by basically reverting that aspect of my change in a more
radical manner.
I have also moved the call to CoreDisTools.ClearOutputBuffer
into CoreDisTools.GetInstruction so that we don't need to call it
manually in the higher-level code.
Thanks
Tomas
* JanV's PR feedback: use spaces, not tabs, in R2RDump output
Eirik Tsarpalis [Thu, 30 Jan 2020 07:59:30 +0000 (07:59 +0000)]
Nullable annotate System.Reflection.MetadataLoadContext.
* Nullable annotate System.Reflection.MetadataLoadContext
* address feedback
* address feedback
* undo accidental change
* address more feedback
* Revert "address more feedback"
This reverts commit
6519238856c318186ef225e360f732780038d435.
Andrew Arnott [Thu, 30 Jan 2020 07:19:45 +0000 (00:19 -0700)]
Hide redundant members from debugger views (#2361)
Egor Chesakov [Thu, 30 Jan 2020 03:32:38 +0000 (19:32 -0800)]
For a destination register use scalar forms (i.e. Sd, Hd, Bd) instead of vector ones (i.e. Vd.2S, Vd.4H, Vd.2B) for instructions that return scalar result (e.g. addv, smaxv, umaxv) in emitDispIns in emitarm64.cpp (#2324)