platform/upstream/dotnet/runtime.git
4 years agoRemove unused variable assignments in CapiHelper
Key Kim [Mon, 10 Aug 2020 16:51:35 +0000 (01:51 +0900)]
Remove unused variable assignments in CapiHelper

4 years agoSystem.Diagnostics Tracing APIs additions (#40534)
Tarek Mahmoud Sayed [Mon, 10 Aug 2020 16:27:24 +0000 (09:27 -0700)]
System.Diagnostics Tracing APIs additions (#40534)

4 years agouse new OperatingSystem APIs in test projects that target NetCoreAppCurrent only...
Adam Sitnik [Mon, 10 Aug 2020 15:50:42 +0000 (17:50 +0200)]
use new OperatingSystem APIs in test projects that target NetCoreAppCurrent only (#40522)

* use new OperatingSystem APIs in test projects that target NetCoreAppCurrent only

* use `||` instead of `|`

4 years agoSupport extra compiler flags during building (#39191)
Omair Majid [Mon, 10 Aug 2020 13:43:39 +0000 (09:43 -0400)]
Support extra compiler flags during building (#39191)

Many Linux distributions like to use an extra set of compiler flags (via
`CFLAGS`, `CXXFLAGS` and `LDFLAGS`) to produce builds that are hardened
against vulnerabilities and exploits. The flags sometimes also enable
extra warnings to inform packagers about potential memory issues.

This pach adds support for that to dotnet/runtime.

The obvious method to make this work is to just export the `CFLAGS`,
`CXXFLAGS`, and `LDFLAGS` directly. This, however, enables those flags
during configure-time (aka `cmake` without `--build` too). That means
several cmake configure tests get executed with unexpected compiler
flags. These configure tests can then report incorrect results.

For example, https://bugzilla.redhat.com/show_bug.cgi?id=1712158
demonstrates an issue where the check for `strerror_r` in the runtime
comes to the wrong conclusion because `-Wall` is enabled and a variable
is unused.

A slightly longer fix is to support another set of environment
variables, and use them to set `CFLAGS`, `CXXFLAGS`, `LDFLAGS`, but only
for the invocation of `cmake --build`/`make`.

See #35727 for the complete details.

Fixes #35727

4 years ago[aot] Fix the handling of r4/r8 parameter types with attributes during generic sharin...
monojenkins [Mon, 10 Aug 2020 12:31:04 +0000 (08:31 -0400)]
[aot] Fix the handling of r4/r8 parameter types with attributes during generic sharing. (#40498)

The attributes need to be ignored as with the other types, otherwise gsharedvt wrappers for signatures with
parameters like double f = default will not be found.

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

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
4 years agoUse new OS checks in src (#40520)
Adam Sitnik [Mon, 10 Aug 2020 11:05:30 +0000 (13:05 +0200)]
Use new OS checks in src (#40520)

* use new OperatingSystem APIs in System.Net.Ping and remove dependency from System.Runtime.InteropServices.RuntimeInformation

* use new OperatingSystem APIs in System.Security.Cryptography.Algorithms

* use new OperatingSystem APIs in System.ComponentModel.Composition and improve perf..

* use new OperatingSystem APIs in System.Net.Http and remove dependency from System.Runtime.InteropServices.RuntimeInformation

* Apply suggestions from code review

* there is no need to cache the results anymore

4 years agoFix typo in docs/workflow/building/libraries (#40600)
Key Kim [Mon, 10 Aug 2020 03:40:09 +0000 (12:40 +0900)]
Fix typo in docs/workflow/building/libraries (#40600)

build command does not exist, it should be build.cmd

4 years agoRedefine signal for architecture mips (#40513)
SUN Guoyun [Mon, 10 Aug 2020 03:20:04 +0000 (11:20 +0800)]
Redefine signal for architecture mips (#40513)

define SIGSTOP 19 is just ok for architecture x86、arm、s390、powerpc and so on.
but others architecture has different values.

Co-authored-by: Sunguoyun <sunguoyun@loongson.cn>
Co-authored-by: hev <wangrui@loongson.cn>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
4 years agocheck for Null returned from Assembly.GetEntryAssembly (#40598)
Manish Godse [Mon, 10 Aug 2020 03:00:59 +0000 (20:00 -0700)]
check for Null returned from Assembly.GetEntryAssembly (#40598)

Fixes 40588

4 years agomake ssl tests more portable (#40303)
Tomas Weinfurt [Mon, 10 Aug 2020 01:46:16 +0000 (18:46 -0700)]
make ssl tests more portable (#40303)

* make ssl tests more portable

* feedback from review

* fix build

* fix http broken by one previous commits

* feedback from review

* fix tests with old ssl versions.S

* more ssl fixes

4 years ago[wasm][debugger] Add support for invoking getters on ValueTypes (#40548)
Ankit Jain [Sun, 9 Aug 2020 16:36:16 +0000 (12:36 -0400)]
[wasm][debugger] Add support for invoking getters on ValueTypes (#40548)

* [wasm][debugger][tests] Fix negative pointer tests

* [wasm][debugger][tests] Fix test to correctly check the valuetype local

test: `CheckUpdatedValueTypeFieldsOnResume`

* [wasm][debugger][tests] Make value checks consistent

- In some places we weren't checking for the `description` property
- and this hid a bug where sometimes that property wasn't added (eg. for
numbers)
- Instead, we were working around that by "fixing it up" later

- Now, we use the same checks for `Check{Number,String,*}` API, and the
`CheckValue/CheckProps` API used with `TNumber` etc.

- So, this commit:
- fixes the checks, and the tests
- and fixes the bug

* [wasm][debugger] Add new `id` types, which have associated properties

- these are of the form `dotnet:${scheme}:{id-args-object}`
- Examples:
    - `dotnet:valuetype:{ containerId: 4 }`
    - `dotnet:valuetype:{ num: 2 }` - the `num` field is
    autogenerated if no id-args are provided. This gets used when
    valuetypes are expanded.

- `this._id_table [id-string]` has associated property objects for every
`id`
    - This might contain, for example, `klass` pointer, and base64
    representation of a valuetype

* [wasm][debugger] Update valuetype code to use the new `id`s

* [wasm][debugger] Simplify array API in `mini-wasm-debugger.c`

.. to use a single function to get details of the full array, and
individual elements.

* [wasm][debugger] library_mono.js: improvements to valuetype code

- Allow `_new_id` to update properties for existing objectIds
- Extract valuetype id assigment code to a separate function

* [wasm][debugger] mini-wasm-debugger.c- extract object id lookup into a function

* [wasm][debugger][tests] Rename method param to be self descriptive

* [wasm][debugger][tests] Rework cfo test for getters

- add some new getters to the test classes
- this will become useful in subsequent commits that add support for
invoking getters on valuetypes

* [wasm][debugger][tests] Improve valuetype locals/method args tests

- this also becomes useful in subsequent commits which enable invoking
getters on valuetypes

* [wasm][debugger] Add support for invoking getters on valuetypes

- keep a copy of the value bytes, and the klass pointer
- this allows being able to invoke getters on such a valuetype, at a
later point
- This allows getters like `DateTime.Date`, which has the type
`DateTime`

* [wasm][debugger] mono.js: fix warnings

.. and replace `var` with `let`, or `const`, where appropriate.

* [wasm][debugger] mono.js: _split_object_id -> _parse_object_id

* [wasm][debugger] Streamline accessing exported debugger.c functions

.. especially the ones that return data in `MONO.var_info`.

To use:

1. `this._register_c_var_fn ('mono_wasm_get_object_properties', 'bool', [ 'number', 'bool' ]);`
2. Now, this function can be called as `this.mono_wasm_get_object_properties_info (.. )`
    - returns `res` which has the contents of `MONO.var_info`, after running
    `_fixup_name_value_objects` on it.

* [wasm][debugger] Return errors from debugger.c's details functions

- functions like those for getting object/vt properties, can fail, for
example, if the objectId is invalid.
- We now return that bool result, and that gets surfaced to the caller

- This will also help to differentiate the case where the result of such
a function was a failure vs just an empty result

* [wasm][debugger] Small checks on inputs, and some negative tests

- These tests don't actually depend on the error message, and we don't
have another to way to differentiate why a command might have failed
with an exception. So, right now, they will pass as long as the commands
fail as expected.

- Future TODO: return `error`, instead of exception details for issues
in `mono.js`, like incorrect input, invalid id etc, and update these
tests accordingly.

* Update src/mono/mono/mini/mini-wasm-debugger.c

Co-authored-by: Larry Ewing <lewing@microsoft.com>
* Remove description checking from TString

Co-authored-by: Larry Ewing <lewing@microsoft.com>
4 years agoUpdate Microsoft.CodeAnalysis.NetAnalyzers to 3.3.0-beta3.20407.4 (#40560)
Stephen Toub [Sun, 9 Aug 2020 09:32:44 +0000 (05:32 -0400)]
Update Microsoft.CodeAnalysis.NetAnalyzers to 3.3.0-beta3.20407.4 (#40560)

4 years agoUpdate linux-requirements.md (#40576)
Key Kim [Sun, 9 Aug 2020 01:56:21 +0000 (10:56 +0900)]
Update linux-requirements.md (#40576)

append -y option and add ``` around command code

4 years agofix flaky test (#40565)
Geoff Kizer [Sat, 8 Aug 2020 18:12:58 +0000 (11:12 -0700)]
fix flaky test (#40565)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
4 years agoinclude more details in exception if remote certificate validation fails (#40110)
Tomas Weinfurt [Sat, 8 Aug 2020 17:36:52 +0000 (10:36 -0700)]
include more details in exception if remote certificate validation fails (#40110)

* include more details in exception if remote certificate validation fails

* fix unit test linking

* feedback from review

* update exception message

4 years agoMinimal fix for Issue 620 (#40535)
Brian Sullivan [Sat, 8 Aug 2020 16:50:41 +0000 (09:50 -0700)]
Minimal fix for Issue 620 (#40535)

* Minimal fix for Issue 620
Added test case: Runtime_620.cs
Added lvForceLoadNormalize

* Changed conditional to "else if"

4 years agoSuperpmi: adjust relocations (#40563)
Carol Eidt [Sat, 8 Aug 2020 15:08:42 +0000 (08:08 -0700)]
Superpmi: adjust relocations (#40563)

Fix #39908

4 years agoReenable the test. (#40515)
Sergey Andreenko [Sat, 8 Aug 2020 04:24:05 +0000 (21:24 -0700)]
Reenable the test. (#40515)

4 years agoDisable EOL Target Frameworks check in newer SDKs (#40552)
Santiago Fernandez Madero [Sat, 8 Aug 2020 01:53:35 +0000 (20:53 -0500)]
Disable EOL Target Frameworks check in newer SDKs (#40552)

4 years ago[Arm64] Treat methods of non-generic Vector64 and Vector128 classes as intrinsics...
Egor Chesakov [Sat, 8 Aug 2020 00:51:23 +0000 (17:51 -0700)]
[Arm64] Treat methods of non-generic Vector64 and Vector128 classes as intrinsics (#40441)

4 years agoWhen returning a SIMD value use v0 register as the candidate for source operand of...
Egor Chesakov [Sat, 8 Aug 2020 00:28:41 +0000 (17:28 -0700)]
When returning a SIMD value use v0 register as the candidate for source operand of GT_RETURN in case when it is a single-register local variable

4 years agoUpdate using-dotnet-cli.md (#40504)
Austin Wise [Fri, 7 Aug 2020 23:50:22 +0000 (16:50 -0700)]
Update using-dotnet-cli.md (#40504)

* Update using-dotnet-cli.md

Update the First Run section for .NET 5.

* more renames

* typo

Co-authored-by: danmosemsft <danmose@microsoft.com>
4 years agoContinue updating previous generic dictionaries after expansion (#40355)
Tomáš Rylek [Fri, 7 Aug 2020 23:17:32 +0000 (01:17 +0200)]
Continue updating previous generic dictionaries after expansion (#40355)

Fix perf regression after introduction of expandable generic
dictionaries. When we expand a generic dictionary, we should back
propagate the change to previously allocated shorter versions of
the same dictionary, otherwise already running JITted code may
continue referring to the "old version" of the dictionary implying
repeated slow path generic lookups.

Thanks

Tomas

4 years agoFix StringBuilder AV (#40500)
Dan Moseley [Fri, 7 Aug 2020 23:10:58 +0000 (16:10 -0700)]
Fix StringBuilder AV (#40500)

* Fix StringBuilder AV

* OOME

4 years ago[wasm] [debugger] Support Exception Break on Debugger (handled and unhandled) (#40480)
Thays Grazia [Fri, 7 Aug 2020 23:07:48 +0000 (20:07 -0300)]
[wasm] [debugger] Support Exception Break on Debugger (handled and unhandled) (#40480)

* Support Exception Break on Debugger (handled and unhandled)

Co-authored-by: Ankit Jain <radical@gmail.com>
4 years agoRemove perf CI runs (#40540)
Drew Scoggins [Fri, 7 Aug 2020 22:23:13 +0000 (15:23 -0700)]
Remove perf CI runs (#40540)

4 years agoSign and add entitlements to createdump and host binaries (#40485)
Mike McLaughlin [Fri, 7 Aug 2020 22:21:30 +0000 (15:21 -0700)]
Sign and add entitlements to createdump and host binaries (#40485)

Sign and add entitlements to createdump and host binaries

Enables createdump on MacOS.

Part of issue #https://github.com/dotnet/runtime/issues/34916.

Don't attempt to sign in a public PR job

4 years agoReduced code size and optimized name key creation for JSON properties and parameters...
Yoh Deadfall [Fri, 7 Aug 2020 22:18:28 +0000 (01:18 +0300)]
Reduced code size and optimized name key creation for JSON properties and parameters (#40136)

4 years ago[mono] Allow creating `TypedReference *` and `TypedReference &` via reflection. ...
imhameed [Fri, 7 Aug 2020 21:55:57 +0000 (14:55 -0700)]
[mono] Allow creating `TypedReference *` and `TypedReference &` via reflection. (#40472)

CoreCLR gained support for creating`TypedReference *` and `TypedReference &` via `MakePointerType` and `MakeByRefType` in https://github.com/dotnet/coreclr/pull/25817.

Reenable byref System.Void-related reflection tests.

Fixes https://github.com/dotnet/runtime/issues/31713.
Fixes https://github.com/dotnet/runtime/issues/37489.

4 years agoWASM: Add pkgproj for the browser debug proxy/host transport package (#40494)
Alexander Köplinger [Fri, 7 Aug 2020 20:52:31 +0000 (22:52 +0200)]
WASM: Add pkgproj for the browser debug proxy/host transport package (#40494)

* WASM: Add pkgproj for the browser debug proxy/host transport package

* Update src/mono/wasm/debugger/BrowserDebugProxy/MonoProxy.cs

Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
4 years agoFix covariant override disassembly (#40502)
David Wrighton [Fri, 7 Aug 2020 20:26:55 +0000 (13:26 -0700)]
Fix covariant override disassembly (#40502)

- This introduces a new path where ildasm must generate a full token description instead of relying on ilasm to produce the signature from the method body

4 years ago[Wasm] Add simple browser sample (#40460)
Steve Pfister [Fri, 7 Aug 2020 19:46:47 +0000 (15:46 -0400)]
[Wasm] Add simple browser sample (#40460)

4 years agoMake Extensions linker friendly. (#40431)
Eric Erhardt [Fri, 7 Aug 2020 19:35:53 +0000 (14:35 -0500)]
Make Extensions linker friendly. (#40431)

* Make Extensions linker friendly.

Annotating the rest of the Microsoft.Extensions libraries.

Fix #40396

* Disable parallelism in trimming tests to fix race condition.

4 years agoUpdate Equals method from ActivityContext (#40465)
Eddy Nakamura [Fri, 7 Aug 2020 18:58:32 +0000 (15:58 -0300)]
Update Equals method from ActivityContext (#40465)

4 years agoFix Issue #877 - Use GT_OBJ when copying a struct (#40483)
Brian Sullivan [Fri, 7 Aug 2020 18:08:34 +0000 (11:08 -0700)]
Fix Issue #877 - Use GT_OBJ when copying a struct (#40483)

4 years ago[JsonSerializer] Prevent arbitrary properties from being cached when deserializing...
Layomi Akinrinade [Fri, 7 Aug 2020 17:52:37 +0000 (10:52 -0700)]
[JsonSerializer] Prevent arbitrary properties from being cached when deserializing with parameterized ctors (#40495)

* [JsonSerializer] Prevent arbitrary properties from being cached when deserializing with parameterized ctors

* Address review feedback

* Correct check on when to grow property pool in sync code paths

4 years agoadd NetworkException (#40344)
Geoff Kizer [Fri, 7 Aug 2020 16:52:30 +0000 (09:52 -0700)]
add NetworkException (#40344)

* add NetworkException

4 years agoFix Japanese Abbreviated Era Names (#40300)
Tarek Mahmoud Sayed [Fri, 7 Aug 2020 16:18:40 +0000 (09:18 -0700)]
Fix Japanese Abbreviated Era Names (#40300)

4 years agoAdd -y to apt-get install commands (#40492)
Drew Scoggins [Fri, 7 Aug 2020 16:16:38 +0000 (09:16 -0700)]
Add -y to apt-get install commands (#40492)

4 years agoHandle 16 byte HFA fields in arm64 profiler (#40482)
Andy Ayers [Fri, 7 Aug 2020 16:05:39 +0000 (09:05 -0700)]
Handle 16 byte HFA fields in arm64 profiler (#40482)

Fixes #40277.

4 years agoDisable formatting for outerloop. (#40517)
Sergey Andreenko [Fri, 7 Aug 2020 15:56:52 +0000 (08:56 -0700)]
Disable formatting for outerloop. (#40517)

4 years agoAdd code to preserve public fields of input types to JsonSerializer (#40508)
Layomi Akinrinade [Fri, 7 Aug 2020 15:44:54 +0000 (08:44 -0700)]
Add code to preserve public fields of input types to JsonSerializer (#40508)

4 years ago[JsonSerializer] Verify null can't be assigned to non-nullable structs (#40446)
Layomi Akinrinade [Fri, 7 Aug 2020 15:36:19 +0000 (08:36 -0700)]
[JsonSerializer] Verify null can't be assigned to non-nullable structs (#40446)

4 years agoUse T? for unconstrained nullable types (#40197)
Stephen Toub [Fri, 7 Aug 2020 15:25:42 +0000 (11:25 -0400)]
Use T? for unconstrained nullable types (#40197)

* Temporarily upgrade compiler version for T? support

* Use T? for unconstrained nullable types

4 years agoIncrease multiple HTTP/2 connections test timeouts again (#40464)
Alexander Nikolaev [Fri, 7 Aug 2020 15:19:33 +0000 (17:19 +0200)]
Increase multiple HTTP/2 connections test timeouts again (#40464)

Fixes #40115
Fixes #40436

4 years agoAddress additional feedback from #40172 (#40505)
Layomi Akinrinade [Fri, 7 Aug 2020 15:18:09 +0000 (08:18 -0700)]
Address additional feedback from #40172 (#40505)

4 years agofix nullable annotation for ImmutableInterlocked.Update methods (#40459)
Eirik Tsarpalis [Fri, 7 Aug 2020 14:09:56 +0000 (15:09 +0100)]
fix nullable annotation for ImmutableInterlocked.Update methods (#40459)

4 years ago[Wasm] Rename System.Runtime.InteropServices.JavaScript to System.Private.Runtime...
Steve Pfister [Fri, 7 Aug 2020 13:45:17 +0000 (09:45 -0400)]
[Wasm] Rename System.Runtime.InteropServices.JavaScript to System.Private.Runtime.InteropServices.JavaScript (#40478)

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

4 years ago[Wasm] Ensure monovm_initialize is called on startup and address other startup items...
Steve Pfister [Fri, 7 Aug 2020 13:30:15 +0000 (09:30 -0400)]
[Wasm] Ensure monovm_initialize is called on startup and address other startup items (#39446)

This PR addresses:

- Calling monovm_initialize matches how other mono platforms init themselves (Fixes https://github.com/dotnet/runtime/issues/39074)
- Set the entry assembly (Fixes https://github.com/dotnet/runtime/issues/38994)
- Make sure the assembly location is set to empty for assemblies that are loaded from memory (Fixes https://github.com/dotnet/runtime/issues/39650)

4 years ago[mono][interp] Optimize box+unbox to no-op (#40017)
Egor Bogatov [Fri, 7 Aug 2020 13:07:56 +0000 (16:07 +0300)]
[mono][interp] Optimize box+unbox to no-op (#40017)

4 years agoEnable CBOR property tests in CI runs (#40135)
Eirik Tsarpalis [Fri, 7 Aug 2020 10:52:56 +0000 (11:52 +0100)]
Enable CBOR property tests in CI runs (#40135)

* enable cbor property tests in CI runs

* address feedback

4 years agoRemove new platform members from OSPlatform (#40373)
Adam Sitnik [Fri, 7 Aug 2020 10:18:34 +0000 (12:18 +0200)]
Remove new platform members from OSPlatform (#40373)

* Remove new platform members from OSPlatform

* remove IsOSPlatformEarlierThan and IsOSPlatformOrLater methods

* remove unused resource and dependency

* delegate RuntimeInformation.IsOSPlatform to call OperatingSystem.IsOSPlatform. it won't compile now as the new guards have not been merged yet (#40457)

* remove OSPlatform.Browser and it's usage

4 years agoTrim async debugging when debugging feature is disabled (#40400)
Marek Safar [Fri, 7 Aug 2020 09:03:27 +0000 (11:03 +0200)]
Trim async debugging when debugging feature is disabled (#40400)

4 years agoImplement platform guards in OperatingSystem class (#40457)
Adam Sitnik [Fri, 7 Aug 2020 07:16:19 +0000 (09:16 +0200)]
Implement platform guards in OperatingSystem class (#40457)

* add Is$OsName methods to OperatingSystem class

* add OperatingSystem.*VersionAtLeast methods

* add IsOSPlatform and IsOSPlatformVersionAtLeast

* add xml comments

* address code review suggestions

* move TARGET_* defines to a common file

4 years agoFix caching EH clause type handle problem in a conservative fashion (#40493)
David Wrighton [Fri, 7 Aug 2020 03:56:25 +0000 (20:56 -0700)]
Fix caching EH clause type handle problem in a conservative fashion (#40493)

This caching was intended to improve performance of repeatedly catching exceptions. As it happens, the critical section that was being used to protect the cache could trigger a GC, and cause a failure under stress. However, some years ago, the eh clause as operated on by the ResolveEHClause method was changed to be a copy of the EHClause stored during the JIT operation, and thus the caching efforts done in this function did not provide value, and in fact are a minor source of multithread scaling concerns.

- Remove the dynamic caching. (Note, the TypeHandle member variable and the HasCachedTypeHandle function, are still used for LCG dynamic methods.)
- Rename the critical section used to protect the cache, as it is now only used to protect from loading multiple copies of the JIT.

4 years agoAdd DesignerAttribute to types that had it in full framework (#40425)
Santiago Fernandez Madero [Fri, 7 Aug 2020 03:03:19 +0000 (22:03 -0500)]
Add DesignerAttribute to types that had it in full framework (#40425)

* Add DesignerAttribute to types that had it in full framework

* Move DesignerAttributeTests to Primitives and fix test errors

* Remove DesignerAttribute.cs from TypeConverter

4 years agoMake ComponentModel intrinsic TypeConverters linker-safe (#39973)
Layomi Akinrinade [Fri, 7 Aug 2020 00:35:14 +0000 (17:35 -0700)]
Make ComponentModel intrinsic TypeConverters linker-safe (#39973)

* Make ComponentModel intrinsic TypeConverters linker-safe

* Avoid reflection in converter func lookup

* Re-add code path that supports editors

* Consolidate intrinsic converter caches, move converter-specific code to new method, add trimming tests

* Address feedback

* Revert change to GetIntrinsicTypeEditor method

* Handle inheritance with Uri and CultureInfo types

* Add heirarchy-related comments to cache docs

4 years agoAdd nullability annotations for *XPath* files in Xml/Dom and Xml/Xsl (#40295)
David Cantu [Fri, 7 Aug 2020 00:00:09 +0000 (17:00 -0700)]
Add nullability annotations for *XPath* files in Xml/Dom and Xml/Xsl (#40295)

* Add nullability annotations for *XPath* files in Xml/Dom and Xml/Xsl

* Fix build issues

* Address feedback

* Add TODO for replacing MaybeNull attributes

4 years agoFix gc stress coverage handling of epilogs on X86 (#40432)
David Wrighton [Thu, 6 Aug 2020 23:48:52 +0000 (16:48 -0700)]
Fix gc stress coverage handling of epilogs on X86 (#40432)

Epilog checking relies on precise control of when instrumentation for the  first prolog
instruction is enabled or disabled. In particular, if a function has multiple epilogs, or
the first execution of the function terminates via an exception, and subsequent completions
do not, then the function may trigger a false stress fault if epilog checks are not disabled.

This fix makes it so that if the first instruction is hit during a GC coverage in a situation where
the epilog could be examined in the future, that the epilog verification is disabled.

Also an opportunistic fix for a probably unimportant race condition around checking the
callerThread during epilog processing.

4 years agoRemove workaround in DefaultValueAttributeCtorTest trimming test (#40448)
Layomi Akinrinade [Thu, 6 Aug 2020 23:44:35 +0000 (16:44 -0700)]
Remove workaround in DefaultValueAttributeCtorTest trimming test (#40448)

4 years agoimport array access as OBJ for structs. (#40488)
Sergey Andreenko [Thu, 6 Aug 2020 23:08:09 +0000 (16:08 -0700)]
import array access as OBJ for structs. (#40488)

4 years agoAllow execution of R2R code in singlefile app on windows. (#40104)
Vladimir Sadov [Thu, 6 Aug 2020 22:00:33 +0000 (15:00 -0700)]
Allow execution of R2R code in singlefile app on windows. (#40104)

* Keep executable PE sections executable in LayoutILOnly.

* Install unwind handlers if present

* do not do RtlAddFunctionTable on x86

* Check for Cor header before checking for R2R header.

* Delete function table in image dtor

* Avoid PAGE_EXECUTE_READWRITE, we should not need writeable for R2R

* Do relocations in ConvertedImageLayout only if the file is in a bundle. (otherwise R2R stays disabled)

4 years ago[Arm64] Treat Math/MathF.FusedMultiplyAdd as intrinsics (#40124)
Egor Chesakov [Thu, 6 Aug 2020 21:56:56 +0000 (14:56 -0700)]
[Arm64] Treat Math/MathF.FusedMultiplyAdd as intrinsics (#40124)

* Transform Math{F}.FusedMultiplyAdd(x,y,z) into

AdvSimd.FusedMultiplyAddScalar(
  Vector64.CreateScalarUnsafe(z),
  Vector64.CreateScalarUnsafe(y),
  Vector64.CreateScalarUnsafe(x)).ToScalar() on Arm64 in importer.cpp

* Add containment analysis for AdvSimd_FusedMultiplyAddScalar in lower.h lowerarmarch.cpp

* Set tgtPrefOp1 for intrinsics with SIMD-to-SIMD move semantics in lsraarm64.cpp

4 years agoQUIC and HTTP/3 fixes (#40468)
Cory Nelson [Thu, 6 Aug 2020 19:43:49 +0000 (12:43 -0700)]
QUIC and HTTP/3 fixes (#40468)

Update/fix MsQuic P/invoke layer.
Fix a race condition in MsQuicListener setting MsQuicConnection.Connected.
Some MsQuic cleanup.
Remove (un-reviewed) HttpVersion.Version30 and SslApplicationProtocol.Http3 APIs.
Fix Alt-Svc support.
Make Alt-Svc tests timeout properly.

4 years agomap TcpListener APM methods to Task-based methods (#40476)
Geoff Kizer [Thu, 6 Aug 2020 19:20:25 +0000 (12:20 -0700)]
map TcpListener APM methods to Task-based methods (#40476)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
4 years agoJIT: Properly handle a switch opt case during early flow opts (#40434)
Andy Ayers [Thu, 6 Aug 2020 19:01:01 +0000 (12:01 -0700)]
JIT: Properly handle a switch opt case during early flow opts (#40434)

Don't try rethreading statement lists if we're doing and early flow opt.

Fixes #40195.

4 years agoRevert " Define SIGSTOP for architecture mips (#40299)" (#40470)
Santiago Fernandez Madero [Thu, 6 Aug 2020 18:35:48 +0000 (11:35 -0700)]
Revert " Define SIGSTOP for architecture mips (#40299)" (#40470)

This reverts commit 0f7370baa68c5809f93095cbce9bf614f44cc731.

4 years agoSimplify JS interop for Blazor WebAssembly (#40467)
Steve Sanderson [Thu, 6 Aug 2020 18:25:59 +0000 (19:25 +0100)]
Simplify JS interop for Blazor WebAssembly (#40467)

4 years agoRe-enable debug_levels less than zero to indicate debugging without debug logging...
Larry Ewing [Thu, 6 Aug 2020 18:19:59 +0000 (13:19 -0500)]
Re-enable debug_levels less than zero to indicate debugging without debug logging (#40458)

4 years agoAdd nodejs and npm install steps (#40474)
Drew Scoggins [Thu, 6 Aug 2020 17:35:56 +0000 (10:35 -0700)]
Add nodejs and npm install steps (#40474)

4 years agoFix several typos in bash script generation for Crossgen2 (#40417)
Tomáš Rylek [Thu, 6 Aug 2020 16:39:42 +0000 (18:39 +0200)]
Fix several typos in bash script generation for Crossgen2 (#40417)

4 years ago[wasm] Fix GC support in ves_icall_get_trace (). (#40384)
Zoltan Varga [Thu, 6 Aug 2020 14:52:46 +0000 (10:52 -0400)]
[wasm] Fix GC support in ves_icall_get_trace (). (#40384)

* [wasm] Fix GC support in ves_icall_get_trace ().

* Fix a c++-ism.

4 years ago[System.Console] Fix manual test (#39460)
Eirik Tsarpalis [Thu, 6 Aug 2020 11:28:06 +0000 (12:28 +0100)]
[System.Console] Fix manual test (#39460)

* do not report '\n' as Ctrl+Enter on unix

* add macos instructions

* add windows test instructions

4 years agoCheck more patterns for retBuffer. (#40340)
Sergey Andreenko [Thu, 6 Aug 2020 07:57:33 +0000 (00:57 -0700)]
Check more patterns for retBuffer. (#40340)

* Check more patterns for retBuffer.

We force return buffers containing GC pointers to be on the stack and before we make a copy we check if the return buffer is already on the stack. Fix the check by adding `LCL_VAR_ADDR`, `ADD(LCL_VAR_ADDR, CNST)` patterns.

* Clear `EnableExtraSuperPmiQueries` during SPMI replay.

It is set during collection for easier test of struct promotion enhancements but it could let to chk/rel diffs if used during replay.

4 years agoRemove EventSourceAttribute usages when EventSource feature is disabled (#40329)
Marek Safar [Thu, 6 Aug 2020 07:42:59 +0000 (09:42 +0200)]
Remove EventSourceAttribute usages when EventSource feature is disabled (#40329)

4 years ago Define SIGSTOP for architecture mips (#40299)
SUN Guoyun [Thu, 6 Aug 2020 05:06:02 +0000 (13:06 +0800)]
 Define SIGSTOP for architecture mips (#40299)

 define SIGSTOP 19 is just ok for architecture x86、arm、s390、powerpc and so on.
 but others architecture has different values.

Co-Authored-By: hev <wangrui@loongson.cn>
4 years agoFix Docker cross-build command (#40433)
Oleksandr Tymoshenko [Thu, 6 Aug 2020 04:58:39 +0000 (07:58 +0300)]
Fix Docker cross-build command (#40433)

4 years agoImprove dictionary & hashset lookup perf for OrdinalIgnoreCase (#36252)
Levi Broderick [Thu, 6 Aug 2020 04:16:21 +0000 (21:16 -0700)]
Improve dictionary & hashset lookup perf for OrdinalIgnoreCase (#36252)

4 years agoAdd HeaderEncodingSelector to MultipartContent (#39169)
Miha Zupan [Thu, 6 Aug 2020 02:56:52 +0000 (04:56 +0200)]
Add HeaderEncodingSelector to MultipartContent (#39169)

* Add HeaderEncodingSelector to MultipartContent

* Test cleanup

* Avoid WriteLatin1 logic duplication

* Move to common HeaderEncodingSelector<TContext>

* Fix indentation

4 years agoConsider debug levels less than zero disabled (#40429)
Larry Ewing [Thu, 6 Aug 2020 02:28:31 +0000 (21:28 -0500)]
Consider debug levels less than zero disabled (#40429)

4 years agoFix -numproc script handling (#40437)
Steve MacLean [Thu, 6 Aug 2020 01:54:00 +0000 (21:54 -0400)]
Fix -numproc script handling (#40437)

4 years agoFix crossgenning of sparse COM interface types on non-Windows and add test (#40404)
Jeremy Koritzinsky [Thu, 6 Aug 2020 00:52:34 +0000 (17:52 -0700)]
Fix crossgenning of sparse COM interface types on non-Windows and add test (#40404)

4 years ago[mono] Don't save byref `System.Void` into `MonoDomain::typeof_void`. (#40405)
imhameed [Thu, 6 Aug 2020 00:49:12 +0000 (17:49 -0700)]
[mono] Don't save byref `System.Void` into `MonoDomain::typeof_void`. (#40405)

`mono_type_get_object_checked` will return the `MonoReflectionType`
referred to by `MonoDomain::typeof_void` if present. If a byref
`System.Void` is stored in this field, then
`get_ContainsGenericParameters` applied to `System.Void` will loop
indefinitely, because our implementation of
`get_ContainsGenericParameters` expects `GetElementType` to yield a
`MonoReflectionType` with one layer of "type function application"
removed.

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

4 years agoTurnoff wasm runs for CI (#40421)
Drew Scoggins [Wed, 5 Aug 2020 23:12:54 +0000 (16:12 -0700)]
Turnoff wasm runs for CI (#40421)

4 years agoRefactor Microsoft.Extensions TargetFrameworks (#40397)
Eric StJohn [Wed, 5 Aug 2020 22:59:28 +0000 (15:59 -0700)]
Refactor Microsoft.Extensions TargetFrameworks (#40397)

I went through every Microsoft.Extensions project to try to either
reduce the number of TargetFrameworks they build for, or add
a TargetFramework to avoid the need of bringing an additional
dependency on Microsoft.Bcl.AsyncInterfaces.

4 years ago[wasm] Moving wasm debugger to dotnet/runtime (#40146)
Thays Grazia [Wed, 5 Aug 2020 22:34:41 +0000 (19:34 -0300)]
[wasm] Moving wasm debugger to dotnet/runtime (#40146)

* Moving Wasm debugger to dotnet/runtime

The build is working.
The tests are running.
- make -C src/mono/wasm/ run-debugger-tests

4 years agoBuild Globalization native shim as C++ and don't define __typeof (#40352)
Santiago Fernandez Madero [Wed, 5 Aug 2020 22:22:51 +0000 (15:22 -0700)]
Build Globalization native shim as C++ and don't define __typeof (#40352)

* Build Globalization native shim as C++ and don't define __typeof
intrinsic

* PR Feedback, use TYPEOF in all shims

4 years agoAdding support for X86Base.CpuId (#40167)
Tanner Gooding [Wed, 5 Aug 2020 22:16:05 +0000 (15:16 -0700)]
Adding support for X86Base.CpuId (#40167)

* Adding support for X86Base.CpuId

* Rename getcpuid and getextcpuid to __cpuid and __cpuidex, respectively

* Removing xchg from the Unix x64 __cpuid implementation

* Add a comment as to why the X86/X86Base/CpuId test limits the checked vendors

* Apply suggestions from code review

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Adding back a missing parentheses

* Fixing a typo in the isGenuineIntel check

* Avoid a conflict around cpuInfo

* Avoid an implicit cast when comparing the cpuidInfo

* Separate the __cpuidex qcall into coreclr and mono specific variants

* Add the partial modifier to the X86Base.PlatformNotSupported.cs file

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
4 years ago[test] fix hang in macOS variants of reverse diagnostics server tests (#40225)
John Salem [Wed, 5 Aug 2020 21:39:45 +0000 (14:39 -0700)]
[test] fix hang in macOS variants of reverse diagnostics server tests (#40225)

Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
4 years agoAdd wasm runs (#39548)
Drew Scoggins [Wed, 5 Aug 2020 21:38:10 +0000 (14:38 -0700)]
Add wasm runs (#39548)

* Add WASM microbenchmark runs

This commit adds WASM microbenchmark support to the perf lab.

* Increase timeout for first run

* Add runkind

* Update proj file selection

4 years agoSystem.Diagnostics.Activity Perf Improvement (#40362)
Mikel Blanchard [Wed, 5 Aug 2020 20:45:22 +0000 (13:45 -0700)]
System.Diagnostics.Activity Perf Improvement (#40362)

4 years ago[mono] Pass delegate target when using CreateDelegate (#40321)
Vlad Brezae [Wed, 5 Aug 2020 20:04:00 +0000 (23:04 +0300)]
[mono] Pass delegate target when using CreateDelegate (#40321)

* Pass delegate target when using CreateDelegate

* [tests] Add test that checks `this` with CreateDelegate API

4 years agoAdd support for reporting byrefs to RVA static fields of collectible assemblies ...
David Wrighton [Wed, 5 Aug 2020 19:54:45 +0000 (12:54 -0700)]
Add support for reporting byrefs to RVA static fields of collectible assemblies (#40346)

- Keep track of all RVA static field locations
  - For assemblies loaded from PE files, use a range that is the entire PE range
  - For assemblies dynamically created, use piecemeal ranges for each individual RVA static field
- Report byref references via the GcReportLoaderAllocator mechanism in PromoteCarefully

- Add a test to cover this scenario, and thread statics
  - disable test on Mono, as it doesn't pass there yet

4 years agoIn mono_wasm_invoke_js_marshalled, pass through treatResultAsVoid parameter (#39435)
Steve Sanderson [Wed, 5 Aug 2020 19:10:13 +0000 (20:10 +0100)]
In mono_wasm_invoke_js_marshalled, pass through treatResultAsVoid parameter (#39435)

4 years agoAdd savepoint API to DbTransaction (#34561)
Shay Rojansky [Wed, 5 Aug 2020 19:02:13 +0000 (22:02 +0300)]
Add savepoint API to DbTransaction (#34561)

Closes #33397

4 years agoIssue 39764 fix: Host and Application Lifetime Notifications (#39832)
Werner Mairl [Wed, 5 Aug 2020 18:48:57 +0000 (20:48 +0200)]
Issue 39764 fix: Host and Application Lifetime Notifications (#39832)

4 years agoTransform dead late arg store to NOP (#40348)
Carol Eidt [Wed, 5 Aug 2020 18:33:30 +0000 (11:33 -0700)]
Transform dead late arg store to NOP (#40348)

When deleting a dead store, preserve the GTF_LATE_ARG and transform it to NOP.

Fix #39742

4 years agoremove dead code (#40363)
Geoff Kizer [Wed, 5 Aug 2020 17:48:27 +0000 (10:48 -0700)]
remove dead code (#40363)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
4 years agoAdd BindConfiguration extension method for OptionsBuilder (#39825)
Fredrik Høisæther Rasch [Wed, 5 Aug 2020 16:50:22 +0000 (18:50 +0200)]
Add BindConfiguration extension method for OptionsBuilder (#39825)

4 years agoMark System.Security.Cryptography.OpenSsl as unsupported on Windows, fixes #40101...
Adam Sitnik [Wed, 5 Aug 2020 16:25:25 +0000 (18:25 +0200)]
Mark System.Security.Cryptography.OpenSsl as unsupported on Windows, fixes #40101 (#40377)