platform/upstream/dotnet/runtime.git
4 years ago[interp] Outline newobj and newobj_vt. (mono/mono#16267)
Jay Krell [Thu, 15 Aug 2019 17:23:24 +0000 (10:23 -0700)]
[interp] Outline newobj and newobj_vt. (mono/mono#16267)

In this variation, the exception handling and resume are split between the main function and the helper function, and no address-taken occurs on ip/sp/vt_sp.

The order is a little tangled but convincing.
The helper function returns MonoException* or checks context->has_resume_state and then returns, and then the caller does the checks again.

Based on past analysis this will conserve stack, but that was not double checked here.
i.e. due to `&valuetype_this`, though it is conditional and the code could be split up into inline and outline.

Commit migrated from https://github.com/mono/mono/commit/f35c755fea61f679a000cbf31b7249e0e320b689

4 years agoFix failing OSX Android lane (mono/mono#16274)
Jo Shields [Thu, 15 Aug 2019 14:37:04 +0000 (10:37 -0400)]
Fix failing OSX Android lane (mono/mono#16274)

Linker order matters when using .a files, so zlib.a MUST come after
sgen.a if sgen.a was compiled with support for compressed ppdb

Commit migrated from https://github.com/mono/mono/commit/dd6bd568a0067a1206e9460017d2f4edb63f2c32

4 years ago[exceptions] Don't debug hang on ThreadAbortException (mono/mono#16240)
Vlad Brezae [Thu, 15 Aug 2019 11:57:26 +0000 (14:57 +0300)]
[exceptions] Don't debug hang on ThreadAbortException (mono/mono#16240)

It is pretty much useless.

Commit migrated from https://github.com/mono/mono/commit/6fc089bf8b253df82a04822f7a34bf0c8c59ab52

4 years agoReduce redundant setting of thread name. (mono/mono#16253)
Jay Krell [Thu, 15 Aug 2019 08:56:38 +0000 (01:56 -0700)]
Reduce redundant setting of thread name. (mono/mono#16253)

Maintain a counter and only set if the counter has changed.
This cannot be fully thread safe, so is not.
Any thread can set any other thread name at any time.
You could be atomic to do better, and loop to do even better,
but the thread name could still be changed again right after the loop exists.

The previous code was also not reliable in this way, since again the name
could be changed right away.

mono/mono#16248

Commit migrated from https://github.com/mono/mono/commit/63e1828f7e1c9694f34fd7189df6abc5cde1f192

4 years ago[interp] [wasm] p vs. o on newobj (mono/mono#16264)
Jay Krell [Thu, 15 Aug 2019 08:42:12 +0000 (01:42 -0700)]
[interp] [wasm] p vs. o on newobj (mono/mono#16264)

Commit migrated from https://github.com/mono/mono/commit/5ec452666ad4c8a5d9cbab1c78b83789fc1f224f

4 years ago[interp] Fix some, not all, of the error management. (mono/mono#16232)
Jay Krell [Thu, 15 Aug 2019 08:41:49 +0000 (01:41 -0700)]
[interp] Fix some, not all, of the error management. (mono/mono#16232)

From mono/mono#16190.

Commit migrated from https://github.com/mono/mono/commit/fd4956fbf277ec56a13137e01b48efb98a5556f5

4 years ago[interp] Short-circuit MINT_STELEM_REF on NULL. (mono/mono#16229)
Jay Krell [Thu, 15 Aug 2019 08:39:45 +0000 (01:39 -0700)]
[interp] Short-circuit MINT_STELEM_REF on NULL. (mono/mono#16229)

Presumably this is not a useful semantic change,
to skip those functions, given NULL.

(We will probably want to outline all of this also, later).

Commit migrated from https://github.com/mono/mono/commit/7766f9b9262701d98eb79758e24d29aab614cc65

4 years ago[interp] Compute locals later to reduce register/stack pressure and conserve stack...
Jay Krell [Thu, 15 Aug 2019 08:39:27 +0000 (01:39 -0700)]
[interp] Compute locals later to reduce register/stack pressure and conserve stack. (mono/mono#16231)

i.e. do not def before a function call and use after, do both after.

Commit migrated from https://github.com/mono/mono/commit/fc724e6cf0c690b8c40ccfe12b0d2316747b1142

4 years ago[interp] Split leave into pieces, partially outlined, to conserve stack, (mono/mono...
Jay Krell [Thu, 15 Aug 2019 08:39:03 +0000 (01:39 -0700)]
[interp] Split leave into pieces, partially outlined, to conserve stack, (mono/mono#16213)

but without changing how exception handling macros access labels and locals.

This saves 16 bytes of stack on Linux/amd64/gcc and likely similar everywhere,
as it takes an address-taken local out of interp_exec_method_full (stackval tmp_sp).

See
https://github.com/mono/mono/pull/16171
https://github.com/mono/mono/pull/16171/commits/mono/mono@a6a8f0d5ffa875da9cda63444e401c37810a690f for a
full outlining.

Commit migrated from https://github.com/mono/mono/commit/dde3452690d2836d790054faaf719a958cee7bb8

4 years ago[cominterop] Fix copy-paste error in ComVisibleAttribute testing helper.
Nikolay Sivov [Wed, 14 Aug 2019 21:55:54 +0000 (00:55 +0300)]
[cominterop] Fix copy-paste error in ComVisibleAttribute testing helper.

This type was introduced with mono/mono@29a95bafd87830c430432546af4bf7076ba5542f.

Commit migrated from https://github.com/mono/mono/commit/5b66d3d5187906d708fd9c22e67e5581f117bb37

4 years agoEnable and document debug with sdb with netcore config.
Thays Grazia [Wed, 14 Aug 2019 22:51:42 +0000 (19:51 -0300)]
Enable and document debug with sdb with netcore config.

Commit migrated from https://github.com/mono/mono/commit/dcfec3966c027c4a9411b34138a530839b2b9889

4 years agoRemove ampersand from cfg->error per old agreement. (mono/mono#16219)
Jay Krell [Wed, 14 Aug 2019 23:07:56 +0000 (16:07 -0700)]
Remove ampersand from cfg->error per old agreement. (mono/mono#16219)

Commit migrated from https://github.com/mono/mono/commit/2463605f01643e21753cb73874ae683457280d77

4 years ago[interp] Fix icall signature (mono/mono#16227)
Vlad Brezae [Wed, 14 Aug 2019 21:18:45 +0000 (00:18 +0300)]
[interp] Fix icall signature (mono/mono#16227)

Commit migrated from https://github.com/mono/mono/commit/4e793ad30c24b30097ba3e9865799b6d9e7e0390

4 years agoFix linking of OS-provided zlib (mono/mono#16177)
Jo Shields [Wed, 14 Aug 2019 20:58:07 +0000 (16:58 -0400)]
Fix linking of OS-provided zlib (mono/mono#16177)

* Fix linking of OS-provided zlib

This is a reduced version of https://github.com/mono/mono/pull/16091
without the Z_PREFIX stuff

* Get rid of HAVE_ZLIB, be explicit about HAVE_SYS_ZLIB vs HAVE_STATIC_ZLIB

* Proposed fixes from Alex

Commit migrated from https://github.com/mono/mono/commit/f2d813c90df3a6c4d15eab240b0a68ec055c8f5b

4 years ago[metadata] Create strongly typed versions of mono_assembly_request_prepare (mono...
Aleksey Kliger (λgeek) [Wed, 14 Aug 2019 19:07:26 +0000 (15:07 -0400)]
[metadata] Create strongly typed versions of mono_assembly_request_prepare (mono/mono#16094)

* [metadata] Create strongly typed versions of mono_assembly_request_prepare

Addresses the family of issues similar to Coverity mono/mono#1443346.

This came up as part of the Coverity review, and Coverity notices that this is
writting beyond the end of the structure.  While this is correct, this requires
that the idiom be properly followed - that is, that the structure being passed
is of the given size.

Replaced instead with a method that eliminates the room for error with methods
that will initialize the whole structure, and the actual size computation is
done inside the method with the proper type sizes.

While I used methods, I feel that this should use macros.

Commit migrated from https://github.com/mono/mono/commit/ce92c4376f31e9caf964938a3899d179bdc97e51

4 years agoignore stacktrace tests
Egor Bogatov [Wed, 14 Aug 2019 10:59:00 +0000 (13:59 +0300)]
ignore stacktrace tests

Commit migrated from https://github.com/mono/mono/commit/abb43f9361192c26ce2355a1f254852efd07abbf

4 years ago[interp] Reduce frame size by partially outlining load remote field. (mono/mono#16196)
Jay Krell [Wed, 14 Aug 2019 10:34:54 +0000 (03:34 -0700)]
[interp] Reduce frame size by partially outlining load remote field. (mono/mono#16196)

Extracted from https://github.com/mono/mono/pull/16171.
Ultimately over 100 bytes can be saved.

Tactically not outlined or indirected:
 vt_sp change
 ip advancement
 error handling

 Also partially fixes the error reuse from https://github.com/mono/mono/pull/16190.

Commit migrated from https://github.com/mono/mono/commit/d1c0974e46bf0edd5f337e72b6032e903d90b703

4 years agoMake small_id_mutex not recursive. (mono/mono#15485)
Jay Krell [Wed, 14 Aug 2019 10:33:58 +0000 (03:33 -0700)]
Make small_id_mutex not recursive. (mono/mono#15485)

(Later non-recursive Windows mutexes should be SRWLOCK and only statically initialized.)

Commit migrated from https://github.com/mono/mono/commit/60ac98ee29d267646629bc39558f44e4e5af8b4e

4 years agoUse ERROR_DECL. (mono/mono#16220)
Jay Krell [Wed, 14 Aug 2019 10:28:00 +0000 (03:28 -0700)]
Use ERROR_DECL. (mono/mono#16220)

Commit migrated from https://github.com/mono/mono/commit/8c5d0a790e4677150c71fc58949f0420e1a50cf1

4 years ago[interp] Remove address-taking of vt_sp. (mono/mono#16215)
Jay Krell [Wed, 14 Aug 2019 10:27:22 +0000 (03:27 -0700)]
[interp] Remove address-taking of vt_sp. (mono/mono#16215)

Theoretically could help reduce frame size but it has not been seen to.

Commit migrated from https://github.com/mono/mono/commit/74b0d01e07c01d0bbc40c2b80ca4d007b037270a

4 years ago[interp] Outline `mono_interp_calli_nat_dynamic_pinvoke` to reduce stack. (mono/mono...
Jay Krell [Wed, 14 Aug 2019 10:25:44 +0000 (03:25 -0700)]
[interp] Outline `mono_interp_calli_nat_dynamic_pinvoke` to reduce stack. (mono/mono#16201)

Now that we have that function, also change from malloc to alloca.

This is part of mono/mono#16171 and ultimately over 100 bytes were saved.

Commit migrated from https://github.com/mono/mono/commit/4c17442dc31553109a8792e0f6d32221392d798c

4 years agoCompletely replace mono_error_ok with is_ok and make first external_only. (mono/mono...
Jay Krell [Wed, 14 Aug 2019 10:24:50 +0000 (03:24 -0700)]
Completely replace mono_error_ok with is_ok and make first external_only. (mono/mono#16217)

Commit migrated from https://github.com/mono/mono/commit/136205ab45ca3fe01c49a321103e1563885c8da1

4 years agoSkip degenerate qsort: num < 2, size == 0, base == 0 (mono/mono#16016)
Jay Krell [Wed, 14 Aug 2019 10:22:40 +0000 (03:22 -0700)]
Skip degenerate qsort: num < 2, size == 0, base == 0 (mono/mono#16016)

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

Some is redundant for some qsort implementations.

Commit migrated from https://github.com/mono/mono/commit/12de10007cf9a2973452c9cf2df36692808fefb6

4 years agoFix warning LNK4221 warning in assembly-load-context.obj (mono/mono#16004)
Jay Krell [Wed, 14 Aug 2019 10:19:08 +0000 (03:19 -0700)]
Fix warning LNK4221 warning in assembly-load-context.obj (mono/mono#16004)

LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

Commit migrated from https://github.com/mono/mono/commit/6873d5370d78c2385aa5a1782fed5fc9bd7d36f4

4 years ago[interp] Outline `get_virtual_method_fast` to save 16 bytes of stack. (mono/mono...
Jay Krell [Wed, 14 Aug 2019 10:17:23 +0000 (03:17 -0700)]
[interp] Outline `get_virtual_method_fast` to save 16 bytes of stack. (mono/mono#16198)

Ultimately over 100 bytes are savable in a few steps.

Commit migrated from https://github.com/mono/mono/commit/9123ac0197071f084f463899f082e44cd5722e08

4 years ago[interp] Outline `set_resume_state` to conserve stack in main interpreter loop (mono...
Jay Krell [Wed, 14 Aug 2019 10:17:01 +0000 (03:17 -0700)]
[interp] Outline `set_resume_state` to conserve stack in main interpreter loop (mono/mono#16200)

This is not intuitive but I definitely saw it.

Commit migrated from https://github.com/mono/mono/commit/dbf13301c8bb48982da0a1021619631d1c52c0db

4 years ago[debugger] Debugger tries to execute a single step when the thread is already termina...
Thays Grazia [Wed, 14 Aug 2019 01:47:28 +0000 (22:47 -0300)]
[debugger] Debugger tries to execute a single step when the thread is already terminated (mono/mono#16208)

* Debugger tries to execute a single step when the thread is already terminated.

* Fixing how to get thread tls.

Commit migrated from https://github.com/mono/mono/commit/f812d90fa1b62590169f9d12e4aae76ea76b1387

4 years ago[runtime] Initialize thread suspend policy at startup, inline getter (mono/mono#16149)
Aleksey Kliger (λgeek) [Tue, 13 Aug 2019 19:16:05 +0000 (15:16 -0400)]
[runtime] Initialize thread suspend policy at startup, inline getter (mono/mono#16149)

* [runtime] Initialize thread suspend policy at startup, inline getter

On some benchmarks we saw mono_threads_suspend_policy() using a lot of CPU
time.

Rather than doing an init-on-first-use, initialize the policy once upfront when
the JIT it starting up and make the getter method static inline.

* move mono_threads_suspend_policy_init into mono_thread_info_init

* [mini] Initialize suspend policy for `mono --version`

Need to initialize the suspend policy before printing its name.  Otherwise the
suspend policy is unset since no other runtime initialization is done for `--version`.

Commit migrated from https://github.com/mono/mono/commit/592de53a1f687d115fef86978e56a7fe7b4340c2

4 years ago[netcore] Cleanup System.Private.CoreLib.csproj (mono/mono#16199)
Alexander Köplinger [Tue, 13 Aug 2019 14:41:03 +0000 (16:41 +0200)]
[netcore] Cleanup System.Private.CoreLib.csproj (mono/mono#16199)

- The eng/Versions.props was already imported by the arcade targets causing a double-import warning:

> warning MSB4011: "/Users/alexander/dev/mono/eng/Versions.props" cannot be imported again. It was already imported at "/Users/alexander/.nuget/packages/microsoft.dotnet.arcade.sdk/1.0.0-beta.19379.1/tools/DefaultVersions.props (17,3)". This is most likely a build authoring error. This subsequent import will be ignored.

- Remove BaseAddress and TRACE from the project file, this was done upstream at https://github.com/dotnet/coreclr/commit/mono/mono@bc430cdd2010bf7790854a60380d00c506c346a6

- Remove unecessary DebugSymbols/DebugType settings, we already set them in the global PropertyGroup

Commit migrated from https://github.com/mono/mono/commit/ff77b427f4f0c9ef7f926a302564ee239619e471

4 years ago[sre] Outline typebuilder_setup_fields loop body (mono/mono#16184)
Aleksey Kliger (λgeek) [Tue, 13 Aug 2019 13:31:31 +0000 (09:31 -0400)]
[sre] Outline typebuilder_setup_fields loop body (mono/mono#16184)

The loop body uses coop handles, so wrap it in HANDLE_FUNCTION_ENTER/HANDLE_FUNCTION_RETURN

Commit migrated from https://github.com/mono/mono/commit/1f4ac5d767570b5c4c73ce75b6c9c49bfcb5fc56

4 years ago[interp] Replace `mono_error_ok` with `is_ok`. (mono/mono#16193)
Jay Krell [Tue, 13 Aug 2019 13:30:28 +0000 (06:30 -0700)]
[interp] Replace `mono_error_ok` with `is_ok`. (mono/mono#16193)

The locally unknown function, despite being small/fast, forces saving values in stack and nonvolatile registers
around calling it.
Both nonvolatile registers and stack are at a premium here, whereas usually stack is cheap.
The macro is just a read from offset 0 and checking for zero.

Commit migrated from https://github.com/mono/mono/commit/ef199425a2867b20695cb1c4e6df4b699dd8891a

4 years ago[netcore] decimal should have alignment=8 (mono/mono#15666)
Egor Bogatov [Mon, 12 Aug 2019 19:57:47 +0000 (22:57 +0300)]
[netcore] decimal should have alignment=8 (mono/mono#15666)

* Fix System.Runtime.InteropServices tests

* Update marshal.c

* Update marshal.c

* Update marshal.c

Commit migrated from https://github.com/mono/mono/commit/c36f0a126ecb41ba44bb57e098cb6cece8124d68

4 years agoMerge pull request mono/mono#16151 from spouliot/ios-intr-enable-sre
Zoltan Varga [Mon, 12 Aug 2019 18:44:54 +0000 (14:44 -0400)]
Merge pull request mono/mono#16151 from spouliot/ios-intr-enable-sre

[sdk] Enable the SRE runtime code inside iOS builds

Commit migrated from https://github.com/mono/mono/commit/5bc4944bf09ccf0a56a28c8e5a957d6001f51063

4 years ago[interp] Fix stub_get_resume_state write to out parameter (mono/mono#16145)
Aleksey Kliger (λgeek) [Mon, 12 Aug 2019 17:09:59 +0000 (13:09 -0400)]
[interp] Fix stub_get_resume_state write to out parameter (mono/mono#16145)

Addresses Coverity CID 1452245

Commit migrated from https://github.com/mono/mono/commit/ad64c781eba4e9fcbf104a64828cdf7fc1d910a3

4 years ago[netcore] Pass MONO_ASMCTX_LOADFROM on LoadFrom calls (mono/mono#16075)
Ryan Lucia [Mon, 12 Aug 2019 15:46:12 +0000 (11:46 -0400)]
[netcore] Pass MONO_ASMCTX_LOADFROM on LoadFrom calls (mono/mono#16075)

Commit migrated from https://github.com/mono/mono/commit/cadd114f6435e732d532733cd92db49c11fabc6c

4 years ago[msbuild] Bump to track xplat-master and update roslyn (mono/mono#16155)
Ankit Jain [Mon, 12 Aug 2019 15:03:13 +0000 (11:03 -0400)]
[msbuild] Bump to track xplat-master and update roslyn (mono/mono#16155)

Prompted by mono/msbuildmono/mono#126:

This includes:

- merge mono-2019-06
- SDK update to track dotnet release/3.0.100-preview8
- Roslyn updated to 3.3.0-beta2-19381-14

Commit migrated from https://github.com/mono/mono/commit/c028454befe4ab6f9bf59f90e4136fc197014216

4 years ago[debugger] Cleanup MonoError on in isFixedSizeArray (mono/mono#16146)
Aleksey Kliger (λgeek) [Mon, 12 Aug 2019 13:50:58 +0000 (09:50 -0400)]
[debugger] Cleanup MonoError on in isFixedSizeArray (mono/mono#16146)

Cleanup MonoError on error paths.  Also change `return FALSE` to `return 0`.

Addresses Coverity CID 1452205

Commit migrated from https://github.com/mono/mono/commit/dd3f6e0d31a055f616e42561383e0365c8fc6e4c

4 years ago[mono] Fix some compiler warnings (mono/mono#16159)
Nikolay Sivov [Mon, 12 Aug 2019 10:42:59 +0000 (13:42 +0300)]
[mono] Fix some compiler warnings (mono/mono#16159)

* [mini] Remove unused variables.

* [mini] Remove unused function.

Single call site is conditionally compiled.

* [sgen] Remove unused variable.

* [utils] Fix misleading indentation warnings.

Commit migrated from https://github.com/mono/mono/commit/612e0644b6a183d15e66a3761d995b5f8b837d4b

4 years ago[remoting+interp] [remoting+debugger] Fix use of dangling local. (mono/mono#16173)
Jay Krell [Mon, 12 Aug 2019 10:35:30 +0000 (03:35 -0700)]
[remoting+interp] [remoting+debugger] Fix use of dangling local. (mono/mono#16173)

Commit migrated from https://github.com/mono/mono/commit/c70b4cc3cc8ef19b9b5c25a96ad23421d1b65175

4 years ago[interp] Remove unnecessary loops, that optimizer might handle. (mono/mono#16169)
Jay Krell [Mon, 12 Aug 2019 10:34:46 +0000 (03:34 -0700)]
[interp] Remove unnecessary loops, that optimizer might handle. (mono/mono#16169)

Commit migrated from https://github.com/mono/mono/commit/4e5544f02de02eb72df30c3a94cc650c3768ad0d

4 years ago[w32process-win32] Don't duplicate CreateProcess search logic. (mono/mono#16156)
Vincent Povirk [Mon, 12 Aug 2019 10:05:05 +0000 (05:05 -0500)]
[w32process-win32] Don't duplicate CreateProcess search logic. (mono/mono#16156)

When given a null application name, CreateProcess already
searches the path and appends .exe in some cases. .NET's
Process class behaves in the same way (see
https://github.com/mono/mono/pull/16089#issuecomment-519984244).

The duplicated logic is unnecessary and broken in several ways.
Failures are ignored and the command line arguments are
executed. Relative paths are expected not to end in "exe".
Many corner cases work differently from .NET and CreateProcess.

This change makes it impossible for process_complete_path to fail,
so I removed the gboolean return and pulled out the output
parameter. Its caller wasn't handling the return value correctly
anyway.

Commit migrated from https://github.com/mono/mono/commit/7413bb84ec909502d922cb0b45d8d998f7e5d259

4 years agoMerge pull request mono/mono#16136 from EgorBo/fix-inlining
Zoltan Varga [Mon, 12 Aug 2019 02:32:01 +0000 (22:32 -0400)]
Merge pull request mono/mono#16136 from EgorBo/fix-inlining

[netcore] Fix inlining

Commit migrated from https://github.com/mono/mono/commit/835282004ca3f466f809a7440b7e79f189cc86cc

4 years ago[interp] Fix overflow of execution stack (mono/mono#16115)
Vlad Brezae [Fri, 9 Aug 2019 17:28:30 +0000 (20:28 +0300)]
[interp] Fix overflow of execution stack (mono/mono#16115)

We were not tracking max_stack_height for a few opcodes.

Commit migrated from https://github.com/mono/mono/commit/b52830cf1120bdeaf693080e22b3af87e3aef9e8

4 years agoMerge pull request mono/mono#16139 from steveisok/run-single-ios-sdk-test
Zoltan Varga [Fri, 9 Aug 2019 16:58:01 +0000 (12:58 -0400)]
Merge pull request mono/mono#16139 from steveisok/run-single-ios-sdk-test

Added the option to run a single test in the iOS SDK

Commit migrated from https://github.com/mono/mono/commit/54c07051a8f3c633dd9392bff4adb12a8b5f03cd

4 years ago[netcore] Make mono_assembly_request_prepare take an ALC (mono/mono#16061)
Ryan Lucia [Fri, 9 Aug 2019 15:44:50 +0000 (11:44 -0400)]
[netcore] Make mono_assembly_request_prepare take an ALC (mono/mono#16061)

* Make mono_assembly_request_prepare take an ALC

* Typo

* Fix pedump

* Use default ALC

* Make v1 preload hook external-only

* Convert pedump and monodis

* fixup: use default ALC in netcore preload hook

trusted platform assemblies should be loaded into the default ALC

Commit migrated from https://github.com/mono/mono/commit/a1bb37cd52a15184fc6b5da4d680249132421c78

4 years ago[build] Remove ILDISASM variable from platform Makefiles
Alexander Köplinger [Wed, 7 Aug 2019 18:40:10 +0000 (20:40 +0200)]
[build] Remove ILDISASM variable from platform Makefiles

It was written by configure.ac to config.make and is unused anyway.

Commit migrated from https://github.com/mono/mono/commit/f15fe47075a5981d20c8d3d7ccff5de1be97e502

4 years ago[build] Remove EXTERNAL_MCS setting in platform Makefiles
Alexander Köplinger [Wed, 7 Aug 2019 18:23:25 +0000 (20:23 +0200)]
[build] Remove EXTERNAL_MCS setting in platform Makefiles

Setting an explicit mcs is no longer supported by the rest of the build scripts.

Commit migrated from https://github.com/mono/mono/commit/8697b31082e5f21447e46c4cf4389ec950a645a3

4 years agofix inlining
Egor Bogatov [Fri, 9 Aug 2019 09:55:50 +0000 (12:55 +0300)]
fix inlining

Commit migrated from https://github.com/mono/mono/commit/a7e428d82f3042960e42a638e26afe73b1381eda

4 years agoMake System.Runtime.Intrinsics.X86.*.IsSupported intrinsic
Egor Bogatov [Thu, 8 Aug 2019 16:38:39 +0000 (19:38 +0300)]
Make System.Runtime.Intrinsics.X86.*.IsSupported intrinsic

Commit migrated from https://github.com/mono/mono/commit/7deb53514dfd0c0662c2a8a95e019b9ec6244f3d

4 years agofix minor issues
Egor Bogatov [Thu, 8 Aug 2019 15:29:53 +0000 (18:29 +0300)]
fix minor issues

Commit migrated from https://github.com/mono/mono/commit/9442ed95d7b781fd2562f73bbd5f4fac326f32b2

4 years ago[merp] Use a separate program as the hang supervisor. (mono/mono#15715)
Alexis Christoforides [Fri, 9 Aug 2019 07:31:57 +0000 (10:31 +0300)]
[merp] Use a separate program as the hang supervisor. (mono/mono#15715)

* [merp] Use a separate program as the hang supervisor.

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

macOS does not like signals being sent from the forked supervisor process, possibly towards anywhere but definitely when sent to the parent process. The following message is currently spewed after the supervisor process attempting to send a SIGSEGV to a hanged Mono process:
"The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec()."

We follow that direction and introduce a new binary that, when available in the mono executable's binary directory, is used to abort the parent process for us.

Commit migrated from https://github.com/mono/mono/commit/2c4b60fe24bfbccb3fa1553aed1065ce072343e1

4 years ago[netcore] Don't return REFERENCE_MISSING in netcore_load_reference
Ryan Lucia [Thu, 8 Aug 2019 22:07:54 +0000 (18:07 -0400)]
[netcore] Don't return REFERENCE_MISSING in netcore_load_reference

Commit migrated from https://github.com/mono/mono/commit/6a459c25d771dec436bb6a8785c683f6b15fe6f7

4 years agoMerge pull request mono/mono#16125 from vargaz/wasm-keep-config-cache
Zoltan Varga [Fri, 9 Aug 2019 07:20:03 +0000 (03:20 -0400)]
Merge pull request mono/mono#16125 from vargaz/wasm-keep-config-cache

[wasm] Add a KEEP_CONFIG_CACHE option to Make.config to avoid deleting the autoconf cache file on make clean.

Commit migrated from https://github.com/mono/mono/commit/e71604d695f57dc39a496509dddd99f898d39eb2

4 years ago[tests] Fix accessing field of MarshalByRefObject in remoting1.cs (mono/mono#16119)
Alexander Köplinger [Thu, 8 Aug 2019 22:07:41 +0000 (00:07 +0200)]
[tests] Fix accessing field of MarshalByRefObject in remoting1.cs (mono/mono#16119)

We need to copy it to a local variable first.
This was exposed by a new Roslyn optimization for String.Concat (see https://github.com/dotnet/roslyn/issues/37830).

Commit migrated from https://github.com/mono/mono/commit/ec35e146360962d49a26d628d2254c85c5322449

4 years ago[perfcounter] Define mono_perfcounter_foreach even if perfcounters are disabled....
Aleksey Kliger (λgeek) [Thu, 8 Aug 2019 18:06:21 +0000 (14:06 -0400)]
[perfcounter] Define mono_perfcounter_foreach even if perfcounters are disabled. (mono/mono#16100)

Fixes netcore build on win32

Commit migrated from https://github.com/mono/mono/commit/36af44e3be4a0f73586e886b96f86ee500f8ab32

4 years ago[sdb][interp] Use the interpreter's resume state to compute the IL offset in compute_...
imhameed [Thu, 8 Aug 2019 00:05:55 +0000 (17:05 -0700)]
[sdb][interp] Use the interpreter's resume state to compute the IL offset in compute_frame_info. (mono/mono#15936)

[sdb][interp] Use the interpreter's resume state to compute the IL offset in compute_frame_info.

This recovers the relevant bits of the "resume state" from the interpreter and uses that to recalculate the `il_offset` for the top frame.

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

Commit migrated from https://github.com/mono/mono/commit/fc4d234ef61bc3150be6a3d15e8e80a6bc9fbfa5

4 years ago[llvm] Explicitly check for errors when calling LegacyIRCompileLayer::addModule....
imhameed [Wed, 7 Aug 2019 19:15:55 +0000 (12:15 -0700)]
[llvm] Explicitly check for errors when calling LegacyIRCompileLayer::addModule. (mono/mono#16082)

[llvm] Explicitly check for errors when calling LegacyIRCompileLayer::addModule.

LLVM built with LLVM_ENABLE_ASSERTIONS=On will crash if errors are not
explicitly consumed.

Commit migrated from https://github.com/mono/mono/commit/4462f10fb66e85b66d8d5497653fdbcd2775eb93

4 years agoRelax locking (mono/mono#15986)
Ryan Lucia [Wed, 7 Aug 2019 18:17:19 +0000 (14:17 -0400)]
Relax locking (mono/mono#15986)

* Remove usage of loader lock

Originally added in https://github.com/mono/mono/commit/mono/mono@c4cbd3b700eea52c84c68c9450d80357b3be681d but no longer relevant

* Make get_agent_domain_info lock-free and relax loader lock

* Syntax errors

* Undo first commit, other than the commit message

* Fixes

Commit migrated from https://github.com/mono/mono/commit/aece3efc9939a22e970f0d30a654bfaece61aea0

4 years ago[netcore] Re-enable IsAssignableFrom test
Ryan Lucia [Tue, 6 Aug 2019 18:12:59 +0000 (14:12 -0400)]
[netcore] Re-enable IsAssignableFrom test

This was fixed a while back but never removed from the exclusions

Commit migrated from https://github.com/mono/mono/commit/dcd57151613af34b213e0bd49de70e402d19cc47

4 years agoMerge pull request mono/mono#16085 from kjpou1/wasm-sdk-v0.2.0
Zoltan Varga [Wed, 7 Aug 2019 15:17:12 +0000 (11:17 -0400)]
Merge pull request mono/mono#16085 from kjpou1/wasm-sdk-v0.2.0

[wasm][sdk] Bump SDK Version 0.2.0

Commit migrated from https://github.com/mono/mono/commit/d18daefdbc9fa6ad530f1d28642f305d308cc90a

4 years agoThere is no need to zero static data, and it is racy (mono/mono#15699)
Jay Krell [Wed, 7 Aug 2019 14:40:57 +0000 (07:40 -0700)]
There is no need to zero static data, and it is racy (mono/mono#15699)

if there are multiple threads calling (unlikely).
This zeroing was made moot by mono/mono@470354fa817716739615ff0c6cfefca42ec8b385 January 2019.

Commit migrated from https://github.com/mono/mono/commit/e8d28feb1e7a8cb0820704aee66410f4ae13c252

4 years agoAllow generating DIM bitcode (mono/mono#16070)
Thays Grazia [Wed, 7 Aug 2019 14:06:56 +0000 (11:06 -0300)]
Allow generating DIM bitcode (mono/mono#16070)

Commit migrated from https://github.com/mono/mono/commit/e690fb0240027d95908f1d7ffa3d401b8d1167ba

4 years ago[utils] Move MAP_ANONYMOUS check after sys/mman.h import
Alexander Köplinger [Wed, 7 Aug 2019 13:54:09 +0000 (15:54 +0200)]
[utils] Move MAP_ANONYMOUS check after sys/mman.h import

The flag is defined in that header on OSX. Followup to mono/mono@2abe569ede069f172c3213a49cfb07c39c5c58dc

Commit migrated from https://github.com/mono/mono/commit/521d4c839555a9df6d0dcade229072c7b8b9ee21

4 years ago[w32socket] Translate ELOOP and ENAMETOOLONG (mono/mono#16039)
Aleksey Kliger (λgeek) [Wed, 7 Aug 2019 13:42:39 +0000 (09:42 -0400)]
[w32socket] Translate ELOOP and ENAMETOOLONG (mono/mono#16039)

Translate to WSAELOOP and WSAENAMETOOLONG, respectively.

See https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2

Addresses part of https://github.com/mono/mono/issues/16024

Commit migrated from https://github.com/mono/mono/commit/aea457cdb3ea8217ef702e8a521e732f6f3e3693

4 years ago[trace] Improve enter/leave output formatting (mono/mono#16036)
Nikolay Sivov [Wed, 7 Aug 2019 13:05:44 +0000 (16:05 +0300)]
[trace] Improve enter/leave output formatting (mono/mono#16036)

* [trace] Use specific integer types for return value traces.

* [trace] Improve argument list formatting for ENTER lines.

Return value changes are especially visible for bools, where currently 4 bytes integers are printed.

Commit migrated from https://github.com/mono/mono/commit/10c5e6407ec5f3f691cd65b4fe6591e05cb224aa

4 years ago[win32] Fix some compilation warnings (mono/mono#15956)
Nikolay Sivov [Wed, 7 Aug 2019 12:45:19 +0000 (15:45 +0300)]
[win32] Fix some compilation warnings (mono/mono#15956)

* [mini] Remove unused variable.

* [mini] Mark win32 exception handling functions static.

* [mini] Remove unused variable.

* [mini] Suppress unused function warning.

* [metadata] Fix unused function warning for Win32 build.

Commit migrated from https://github.com/mono/mono/commit/d34381f72e0a04febdb6d6ea084377d0d635e15f

4 years agoFix compilation on OSX 10.9 (mono/mono#14411)
iamphi [Wed, 7 Aug 2019 12:42:57 +0000 (05:42 -0700)]
Fix compilation on OSX 10.9 (mono/mono#14411)

Found solution from:
https://github.com/eclipse/omr/issues/902#issuecomment-288559044

Commit migrated from https://github.com/mono/mono/commit/2abe569ede069f172c3213a49cfb07c39c5c58dc

4 years ago[runtime] Fix an autoconf warning. (mono/mono#16078)
Zoltan Varga [Wed, 7 Aug 2019 10:06:00 +0000 (06:06 -0400)]
[runtime] Fix an autoconf warning. (mono/mono#16078)

[runtime] Fix an autoconf warning.

<!--
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
-->

Commit migrated from https://github.com/mono/mono/commit/ba1c949a24594c65d9fca77fb13c3af09c54c16b

4 years ago[interp] Fix DEBUG_INTERP build (mono/mono#16057)
Vlad Brezae [Wed, 7 Aug 2019 09:47:41 +0000 (12:47 +0300)]
[interp] Fix DEBUG_INTERP build (mono/mono#16057)

Commit migrated from https://github.com/mono/mono/commit/e702e8286fc3a7267fdd9eda572b0539446701cc

4 years agoRemove code moved to shared partition
Marek Safar [Wed, 7 Aug 2019 06:54:49 +0000 (08:54 +0200)]
Remove code moved to shared partition

Commit migrated from https://github.com/mono/mono/commit/25b84915e180d6721d6e2dd87585e366a61ca9ec

4 years ago[netcore] Set flag for processor arch when parsing assembly names
Ryan Lucia [Tue, 6 Aug 2019 17:22:45 +0000 (13:22 -0400)]
[netcore] Set flag for processor arch when parsing assembly names

Commit migrated from https://github.com/mono/mono/commit/022fc4ea3798f6c8e56a9c888e27c0bcc562245c

4 years ago[arm] respect I1 and I2 on gsharedvt out transition (mono/mono#16000)
Bernhard Urban [Tue, 6 Aug 2019 22:25:51 +0000 (00:25 +0200)]
[arm] respect I1 and I2 on gsharedvt out transition (mono/mono#16000)

[arm] respect I1 and I2 on gsharedvt out transition

In order to trigger the problem, we must call into gsharedvt code ("in" transition) and then escape the gsharedvt world ("out" transition). The bug happens in the latter. Also some other stars need to align (I haven't fully understood it), thus the repro is quite long.

The provided repro only triggers with LLVM, which we don't have enabled on CI yet: https://github.com/mono/mono/issues/15999

Fixes https://github.com/mono/mono/issues/15261
Fixes https://github.com/mono/mono/issues/15262
Fixes https://github.com/mono/mono/issues/15263
Fixes https://github.com/mono/mono/issues/15307

Commit migrated from https://github.com/mono/mono/commit/fe0f311a848068ab2d17a9b9dd15326e5712d520

4 years agoMerge pull request mono/mono#16071 from vargaz/wasm-xunit-3
Zoltan Varga [Tue, 6 Aug 2019 21:57:22 +0000 (17:57 -0400)]
Merge pull request mono/mono#16071 from vargaz/wasm-xunit-3

[wasm] More xunit fixes.

Commit migrated from https://github.com/mono/mono/commit/add830f9cbffc7a531a744baf76211e4300193ab

4 years ago[wasm] Compile interp.c with -mllvm -join-liveintervals=false to fix compilation...
Zoltan Varga [Sun, 4 Aug 2019 21:50:54 +0000 (17:50 -0400)]
[wasm] Compile interp.c with -mllvm -join-liveintervals=false to fix compilation times.

Commit migrated from https://github.com/mono/mono/commit/476af240d242b557ea82723f601795697fffb2e5

4 years ago[Coop] Convert mono_object_isinst_icall. (mono/mono#15963)
Jay Krell [Tue, 6 Aug 2019 19:26:55 +0000 (12:26 -0700)]
[Coop] Convert mono_object_isinst_icall. (mono/mono#15963)

Commit migrated from https://github.com/mono/mono/commit/9bf703b031bf81fa621c3d2318a4fc4333b80d3b

4 years agoUpdate NetBSD support (mono/mono#15938)
coypoop [Tue, 6 Aug 2019 18:32:38 +0000 (18:32 +0000)]
Update NetBSD support (mono/mono#15938)

Based on the FreeBSD variation.
Needs some additional changes I'm still ironing out.

Commit migrated from https://github.com/mono/mono/commit/5a4283d1b3d0dc4dacac97cd56326179324fde78

4 years ago[netcore] Update test exclusions to reflect ALC work (mono/mono#16059)
Ryan Lucia [Tue, 6 Aug 2019 18:08:18 +0000 (14:08 -0400)]
[netcore] Update test exclusions to reflect ALC work (mono/mono#16059)

Commit migrated from https://github.com/mono/mono/commit/64bf7ef9db3db3d4ed27a3809bc7b98e9322208a

4 years ago[netcore] Avoid calling load hooks during AOT.
Zoltan Varga [Tue, 6 Aug 2019 13:49:28 +0000 (09:49 -0400)]
[netcore] Avoid calling load hooks during AOT.

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

Commit migrated from https://github.com/mono/mono/commit/3c88e9f251684c46ca07286a9637a2e5266eec15

4 years agoMerge pull request mono/mono#16058 from vargaz/wasm-requests-2
Zoltan Varga [Tue, 6 Aug 2019 16:53:44 +0000 (12:53 -0400)]
Merge pull request mono/mono#16058 from vargaz/wasm-requests-2

[wasm] Update WASM-REQUESTS.md.

Commit migrated from https://github.com/mono/mono/commit/662b72f913db6e7e8a3f51540a6c8361e188763f

4 years ago[netcore] Make the load hook ALC-aware (mono/mono#16012)
Ryan Lucia [Tue, 6 Aug 2019 10:16:15 +0000 (06:16 -0400)]
[netcore] Make the load hook ALC-aware (mono/mono#16012)

The meat of this PR is what the title suggests, and with this commit all the basic ALC functionality should be working properly. Probably worth checking if this makes any new tests pass.

Additionally, this PR includes a second commit that switches over the search hook to use loaded_assemblies from the ALCs. This may break some existing tests due to remaining unimplemented ALC behavior, notably the native loading mechanism needed for Openssl in some of the cryptography tests. My inclination is to include the commit regardless and just disable the failing tests so that any future ALC work can watch for regressions in the loader, but I would appreciate input from steveisok on how important those tests are. I've not disabled anything yet in order to see exactly what new failures are introduced.

Commit migrated from https://github.com/mono/mono/commit/85296ef1be7bb34c1c92953ca66a026e5dcd0771

4 years agoUWP now allows LoadLibrary. (mono/mono#16015)
Jay Krell [Tue, 6 Aug 2019 10:14:38 +0000 (03:14 -0700)]
UWP now allows LoadLibrary. (mono/mono#16015)

Commit migrated from https://github.com/mono/mono/commit/474092add6c0c9f41ff3724485d3d05be48b4c5f

4 years agoMerge pull request mono/mono#16006 from vargaz/as-gsharedvt
Zoltan Varga [Tue, 6 Aug 2019 01:04:44 +0000 (21:04 -0400)]
Merge pull request mono/mono#16006 from vargaz/as-gsharedvt

[jit] Avoid asserting on Unsafe.As<T> in gsharedvt methods.

Commit migrated from https://github.com/mono/mono/commit/9b4bc613e4193441c041f7f33e4da668da75b9b1

4 years agoBump version to 6.7 (mono/mono#16031)
Jo Shields [Mon, 5 Aug 2019 19:31:47 +0000 (15:31 -0400)]
Bump version to 6.7 (mono/mono#16031)

* Bump version to 6.7

Commit migrated from https://github.com/mono/mono/commit/c8c52f7e9f75113a8fcaa58397496a3423b47e58

4 years ago[netcore] ifdef out unused icalls/files. (mono/mono#16009)
Zoltan Varga [Mon, 5 Aug 2019 15:13:40 +0000 (11:13 -0400)]
[netcore] ifdef out unused icalls/files. (mono/mono#16009)

* [netcore] ifdef out unused icalls/files.

* Add MONO_EMPTY_SOURCE_FILE.

Commit migrated from https://github.com/mono/mono/commit/93a6bc31511decdf93357e78fb2a1a14bf7c76c1

4 years agoMerge pull request mono/mono#15640 from vargaz/wasm-xunit
Zoltan Varga [Sun, 4 Aug 2019 21:05:59 +0000 (17:05 -0400)]
Merge pull request mono/mono#15640 from vargaz/wasm-xunit

Add beginnings of support for running xunit tests.

Commit migrated from https://github.com/mono/mono/commit/17b35dc4fc96144e19078a5fca965cb8c4c75805

4 years ago[jit] Avoid asserting on Unsafe.As<T> in gsharedvt methods.
Zoltan Varga [Sat, 3 Aug 2019 19:06:55 +0000 (15:06 -0400)]
[jit] Avoid asserting on Unsafe.As<T> in gsharedvt methods.

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

Commit migrated from https://github.com/mono/mono/commit/60bfa99043e0112a4d30ebccd5c9f800d0cc101a

4 years ago[netcore] Minor fixes around System.Reflection (mono/mono#15905)
Egor Bogatov [Sat, 3 Aug 2019 18:49:38 +0000 (21:49 +0300)]
[netcore] Minor fixes around System.Reflection (mono/mono#15905)

* Minor fixes

* Update HelloWorld.csproj

Commit migrated from https://github.com/mono/mono/commit/e08bddaa63bd117fad4fe6b99d41e272689adf97

4 years ago[netcore] Enable ALC loaded_assemblies (mono/mono#15850)
Ryan Lucia [Sat, 3 Aug 2019 18:47:38 +0000 (14:47 -0400)]
[netcore] Enable ALC loaded_assemblies (mono/mono#15850)

* Typo

* Enable loaded_assemblies and lock

* Make mono_domain_assembly_open_internal ALC-aware

* Populate loaded_assemblies

Switch from prepend to append

* Some notes

* Exclude add_assembly_to_alc on non-netcore

* Cleanup appdomain.c

* Remove mono_alc_cleanup for now

* Update comment

* Disable using loaded_assemblies in the search hook

* Adjust alc cleanup

Commit migrated from https://github.com/mono/mono/commit/848811e4b26519ce62672886813f6eb73d572be5

4 years agoRemove error_init from native icall wrappers since managed does it. (mono/mono#15943)
Zoltan Varga [Sat, 3 Aug 2019 16:00:46 +0000 (12:00 -0400)]
Remove error_init from native icall wrappers since managed does it. (mono/mono#15943)

Preferable would be native only, i.e. for interpreter and for when
it is actually unused, but ok for now.

Between removing the managed and the native, managed is preserved
in case there uses of MonoError in C# other than icall wrappers.
Keep them safe.

But again ideally move it to native and remove the managed type,
pending debugging WebAssembly failure doing so.

Commit migrated from https://github.com/mono/mono/commit/9da563509e7d6f0e05d0c9f14dc949dc182567df

4 years agoFix usage of mono_debug_get_seq_points to avoid leaks (mono/mono#15977)
Jb Evain [Sat, 3 Aug 2019 15:59:25 +0000 (08:59 -0700)]
Fix usage of mono_debug_get_seq_points to avoid leaks (mono/mono#15977)

Commit migrated from https://github.com/mono/mono/commit/283c0557d376a7c680cfe5993d1ea872391bbf99

4 years ago[llvm] Add support for JIT + LLVM 9.0. (mono/mono#15997)
imhameed [Sat, 3 Aug 2019 15:58:40 +0000 (08:58 -0700)]
[llvm] Add support for JIT + LLVM 9.0. (mono/mono#15997)

* [llvm] Add support for llvm 9.0.

Works with this branch:
https://github.com/mono/llvm/tree/release_90

* Add support for JIT + LLVM 9.

* Don't assume that all memset targets will be aligned; fixes LLVM 6 on amd64.

Commit migrated from https://github.com/mono/mono/commit/3ab93f97e681868216327b8b0b7c19112ccfc1d3

4 years agoEnable MONO_ARCH_EMULATE_FCONV_TO_U4 on PPC (mono/mono#15991)
Calvin Buckley [Fri, 2 Aug 2019 23:00:02 +0000 (20:00 -0300)]
Enable MONO_ARCH_EMULATE_FCONV_TO_U4 on PPC (mono/mono#15991)

Fixes regression related to floating point introduced in mono/mono#15930.

This does mean we have to take a slower path instead of using the
PPC instruction, but it provides consistent results. Other CPUs
have to do this too, so it's not like PPC is impacted unfairly.
(i.e, NaN gives an inconsistent result, at least with POWER7 and
some amd64 CPUs tested)

Fixes mono/mono#15990.

Commit migrated from https://github.com/mono/mono/commit/e70ac8c6ae7ff3f03517be90babb8f7c25d18b97

4 years agoDon't use clock_nanosleep on PASE (mono/mono#15988)
Calvin Buckley [Fri, 2 Aug 2019 21:04:50 +0000 (18:04 -0300)]
Don't use clock_nanosleep on PASE (mono/mono#15988)

* Don't use clock_nanosleep on PASE

PASE exports this AIX syscall so autoconf detects it, but using it
will trigger SIGILL (for unimplemented syscall), which emits a LIC
log entry type of 4700-000F.

* Change ifdef guard for clock_nanosleep in threads

It only used clock_nanosleep on Linux, but enable it for all except
PASE. Android used to be guarded against, but the reasoning was
unknown, so @akoeplinger requested to have that guard removed.

Commit migrated from https://github.com/mono/mono/commit/9ea07610ee4c2879f5d598aa6f34b6df79401047

4 years ago[netcore] Fix comments in ALC to use Mono terminology (mono/mono#15998)
Aleksey Kliger (λgeek) [Fri, 2 Aug 2019 20:31:06 +0000 (16:31 -0400)]
[netcore] Fix comments in ALC to use Mono terminology (mono/mono#15998)

Commit migrated from https://github.com/mono/mono/commit/713df6a9c48c2c4da4037b4bbad43244fbcc505f

4 years ago[netcore] Implement referenced assembly resolving and ALC.GetLoadContext (mono/mono...
Aleksey Kliger (λgeek) [Fri, 2 Aug 2019 18:06:44 +0000 (14:06 -0400)]
[netcore] Implement referenced assembly resolving and ALC.GetLoadContext (mono/mono#15946)

* [netcore] Implement GetLoadContext

* [netcore] Implement ALC-aware referenced assembly resolution.

The process is described in
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.loader.assemblyloadcontext?view=netcore-3.0#usage-in-the-runtime

We try four things until one of them returns a non-null assembly.

1. Check if the assembly is already loaded in the ALC of the requesting
assembly.
2. If the ALC is not the default ALC, invoke the Load override.
3. Try the default ALC (TPA - trusted platform assemblies) loading.
4. Invoke the Resolving event of the original ALC.

The implementation borrows some managed code from
https://github.com/dotnet/coreclr/blob/mono/mono@8ba2e15201361402acd0ae9710bd37d50785cdfa/src/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs#L84-L187

It would be nice if that code was shared between the runtimes.

* [runtime] Implement mono_assembly_name_culture_is_neutral

* [netcore] Add mono_alc_invoke_resolve_using_resolve_satellite

* [netcore] Use ResolveSatelliteAssembly for satellite assembly refs

* [netcore] Some AssemblyLoadContextTest tests now pass

System.Runtime.Loader.Tests.AssemblyLoadContextTest.PublicConstructor_Default
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_NullParameter
System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_AssemblyNotFound
System.Runtime.Loader.Tests.AssemblyLoadContextTest.PublicConstructor_Theory (with isCollectible: False)
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_ValidAssembly
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_SystemPrivateCorelibAssembly
System.Runtime.Loader.Tests.AssemblyLoadContextTest.DefaultAssemblyLoadContext_Properties
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_AssemblyNotFound
System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_ValidTrustedPlatformAssembly

Commit migrated from https://github.com/mono/mono/commit/2f2f6c104b2a0115a7fb1ab24673b587c27e4365

4 years ago[netcore] Use mono-netcore to run real world apps using `dotnet run` (mono/mono#15942)
Egor Bogatov [Fri, 2 Aug 2019 15:06:37 +0000 (18:06 +0300)]
[netcore] Use mono-netcore to run real world apps using `dotnet run` (mono/mono#15942)

So currently we have two .NET Core:

1) `mono-repo/.dotnet` - we use it to bootstrap and build stuff (the SDK version is specified in `global.json`) - if you open `netcore/Makefile` it's referred there as `$(DOTNET)` variable.
2) `mono-repo/netcore/.dotnet` - it's just a runtime + CoreFX libs (it doesn't contain SDK stuff, templates, msbuild, etc) - we use it only to run tests because this runtime is synchronized with corefx tests in `eng/Versions.prop` file which is updated by a bot and `netcore/shared` sources for our System.Private.CoreLib also depend on that exact runtime version (the sources also updated by the bot).

This PR introduces a rule to copy mono bits to the `mono-repo/.dotnet` folder to be able to run real world apps (at your own risk) using mono-netcore (so when you run `mono-root/.dotnet/.dotnet run -c Release` for an app - even MSBuild will use mono runtime to build that app). However in theory we need exact SDK for the runtime version we have but I have no idea where and how to get one.

BTW, currently MSBuild crashes when it's powered by mono on `$(DOTNET) build` command for a hello world.
```
monoeg_assertion_message
mono_domain_assembly_preload
invoke_assembly_preload_hook
...
at <unknown> <0xffffffff>
at System.Reflection.RuntimeAssembly:GetExportedTypes <0x000a2>
at AssemblyInfoToLoadedTypes:ScanAssemblyForPublicTypes <0x0008e>
```

Commit migrated from https://github.com/mono/mono/commit/d0aa0310ee386433a9ef0b4c15ac07c928211bcb

4 years agoMake System.Private.CoreLib.csproj VS friendly (mono/mono#15965)
Egor Bogatov [Fri, 2 Aug 2019 14:05:22 +0000 (17:05 +0300)]
Make System.Private.CoreLib.csproj VS friendly (mono/mono#15965)

Now it's possible to open System.Private.CoreLib.csproj in an IDE and build (use Roslyn version from eng/Versions.props).

Commit migrated from https://github.com/mono/mono/commit/40f28b2e6371c708989ff59dd1cb4f7dcc22aedc

4 years ago[debugger] Invoke method with fixed size array as an attribute of this (mono/mono...
Thays Grazia [Fri, 2 Aug 2019 13:47:25 +0000 (10:47 -0300)]
[debugger] Invoke method with fixed size array as an attribute of this (mono/mono#15766)

Implement debugger invoke when the this has an attribute that is a fixed size array.

Fixes mono/mono#15556

Commit migrated from https://github.com/mono/mono/commit/3a9df67a64c129fa3c5c32334c231739965f1efb

4 years ago[interp] Remove unconditional branches to next instruction (mono/mono#15939)
Vlad Brezae [Fri, 2 Aug 2019 09:16:07 +0000 (12:16 +0300)]
[interp] Remove unconditional branches to next instruction (mono/mono#15939)

[interp] Remove unconditional branches to next instruction

These are very common, at least in debug builds. Optimize them away so it doesn't distort performance numbers.

Commit migrated from https://github.com/mono/mono/commit/4883b56c10a077e4c82feff604172d6994994e1a

4 years ago[netcore] Minor fixes, fix GetTypeTests.GetType_EmptyString (mono/mono#15933)
Egor Bogatov [Thu, 1 Aug 2019 20:56:56 +0000 (23:56 +0300)]
[netcore] Minor fixes, fix GetTypeTests.GetType_EmptyString (mono/mono#15933)

* Fixes https://github.com/mono/mono/issues/15023

* Fixes https://github.com/mono/mono/issues/15189 (were marked as "require large array
support" in dotnet/corefx by @filipnavara)

* Move InternalGetHashCode to RuntimeHelpers

Commit migrated from https://github.com/mono/mono/commit/26f3df98810411b62fcf41daaff5d407df3ba7b5