platform/upstream/dotnet/runtime.git
4 years agoAnnotate Microsoft.Win32.Registry
Manuel Pfemeter [Wed, 29 Jan 2020 20:11:10 +0000 (21:11 +0100)]
Annotate Microsoft.Win32.Registry

4 years agoFix build warnings (#32122)
Next Turn [Tue, 11 Feb 2020 18:52:59 +0000 (02:52 +0800)]
Fix build warnings (#32122)

4 years agoSmtpClientTest: disable TestZeroTimeout (#32099)
Tom Deseyn [Tue, 11 Feb 2020 18:49:41 +0000 (19:49 +0100)]
SmtpClientTest: disable TestZeroTimeout (#32099)

Disable to prevent CI failures.

4 years agoSpecial-case two set loops in RegexCompiler (#32003)
Stephen Toub [Tue, 11 Feb 2020 18:35:11 +0000 (10:35 -0800)]
Special-case two set loops in RegexCompiler (#32003)

* Optimize .* in Singleline mode

When RegexOptions.Singleline is specified, `.*` goes from meaning `[^\n]*` to meaning `[everything]*`.  As such, when we encounter it, we can just jump to the end without actually comparing anything.  This is worth optimizing in in the compiler because, well, why not, but we don't in the interpreter because it's not a common-enough pattern to spend cycles checking for.

* Use IndexOfAny to implement set loops of 2 or 3 negated chars

* Apply suggestions from code review

Co-Authored-By: Dan Moseley <danmose@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
4 years ago[mini] Wrap check for debug info enabled in ENABLE_NETCORE in all places (#32113)
monojenkins [Tue, 11 Feb 2020 15:50:38 +0000 (10:50 -0500)]
[mini] Wrap check for debug info enabled in ENABLE_NETCORE in all places (#32113)

See if this fixes the weird bug-10127.exe test failure that only occurs on Windows C++ builds.

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoAdd mono offsets-tool for generating cross-compiler offsets (#32110)
Alexander Köplinger [Tue, 11 Feb 2020 12:37:58 +0000 (13:37 +0100)]
Add mono offsets-tool for generating cross-compiler offsets (#32110)

This is a build-only tool used to generate the offsets file for Mono cross compilers.

Taken from https://github.com/mono/mono/tree/071b7259d517b9298c2672e16248f62c5e3ce500/mono/tools/offsets-tool

4 years ago[interp] reclaim stack fragments when not used. (#32022)
monojenkins [Tue, 11 Feb 2020 09:59:43 +0000 (04:59 -0500)]
[interp] reclaim stack fragments when not used. (#32022)

When a requested frame size doesn't fit in an already allocated stack fragment, we instead allocate another, larger fragment.
When doing this we missed to free the existing stack fragment, and in combination with a second problem (`current->next` not being cleared when unused) it can accumulate to a lot of unused stack fragments and in worst-case to OOM, as it happened on Linux corlib xunit tests.

Thanks to Jay for tracking it down.

Co-authored-by: Bernhard Urban-Forster <bernhard.urban@xamarin.com>
4 years ago[cross] support arm-linux-gnueabihf cross compiling with netcore (#31803)
monojenkins [Tue, 11 Feb 2020 08:49:57 +0000 (03:49 -0500)]
[cross] support arm-linux-gnueabihf cross compiling with netcore (#31803)

Some notes on usage:

```console
$ sudo apt install g{++,cc}-gnu-linux-gnueabihf python3-pip

$ ./autogen.sh --disable-boehm --target=arm-linux-gnueabihf \
    --with-cross-offsets=arm-linux-gnueabihf-cross-offsets.h \
    --with-core=only \
    CFLAGS="-O0 -ggdb3 -fno-omit-frame-pointer" \
    CXXFLAGS="-O0 -ggdb3 -fno-omit-frame-pointer"

$ make -C tools/offsets-tool-py/

$ python3 tools/offsets-tool-py/offsets-tool.py \
    --targetdir=/home/lewurm/work/mono \
    --abi=arm-linux-gnueabihf \
    --monodir=/home/lewurm/work/mono \
    --outfile=arm-linux-gnueabihf-cross-offsets.h \
    --libclang=/usr/lib/x86_64-linux-gnu/libclang-7.so.1 \
    --sysroot=/usr/arm-linux-gnueabihf \
    --netcore
```

Co-authored-by: Bernhard Urban-Forster <bernhard.urban@xamarin.com>
4 years ago[mono] Allow the use of an override directory for LLVM. (#32070)
imhameed [Tue, 11 Feb 2020 08:37:27 +0000 (00:37 -0800)]
[mono] Allow the use of an override directory for LLVM. (#32070)

With this change, a custom LLVM directory can be set via the `MonoLLVMDir` property. When using a custom LLVM directory, llvm-init.proj will be ignored.

`--enable--llvm` (with two dashes) is not a valid mono configure argument, and `--enable-llvm` is implied by `--with-llvm`.

4 years agoAdd volatile for cross thread communication. (#31964)
monojenkins [Tue, 11 Feb 2020 08:16:19 +0000 (03:16 -0500)]
Add volatile for cross thread communication. (#31964)

This test is flaky. Maybe this helps. Otherwise I'll dig in later.

Co-authored-by: Jay Krell <jay.krell@cornell.edu>
4 years agoAnnotate System.Security.Cryptography.Algorithms for nullable (#2375)
buyaa-n [Tue, 11 Feb 2020 06:04:54 +0000 (22:04 -0800)]
Annotate System.Security.Cryptography.Algorithms for nullable (#2375)

* Annotate System.Security.Cryptography.Algorithms for nullable

4 years agoUse ref for stream event in System.Net.Quic (#32086)
Justin Kotalik [Tue, 11 Feb 2020 05:36:25 +0000 (21:36 -0800)]
Use ref for stream event in System.Net.Quic (#32086)

4 years agoBuild failed due to -Werror option (#32040)
Kirill Frolov [Tue, 11 Feb 2020 04:42:15 +0000 (07:42 +0300)]
Build failed due to -Werror option (#32040)

* fixed error processing for pipe2 call in Unix/../pal_process.c

Due to -Werror warning (function result not checked) is converted to an
error.

Fix #32038

* fixed warnings in Unix/../pal_networking.c

Due to -Werror all warnings (wrong signess, wrong types) converted to
errors, so why this changes needed.

Fix #32038

4 years agoCrossgen2: ensure base address >= 4 GiB for 64-bit Windows targets (#32064)
Anton Lapounov [Tue, 11 Feb 2020 04:40:49 +0000 (20:40 -0800)]
Crossgen2: ensure base address >= 4 GiB for 64-bit Windows targets (#32064)

Crossgen2: ensure base address >= 4 GiB for 64-bit Windows targets.
Also fix ADRP's argument calculation for ARM64.

4 years agoTighten up some SSE2 ASCII + UTF-16 transcoding logic (#32036)
Levi Broderick [Tue, 11 Feb 2020 04:33:14 +0000 (20:33 -0800)]
Tighten up some SSE2 ASCII + UTF-16 transcoding logic (#32036)

Makes more efficient use of register allocation and uses paddusw to speed up some operations

4 years agoFix infinite loop in string.Replace (#31946)
Levi Broderick [Tue, 11 Feb 2020 04:29:53 +0000 (20:29 -0800)]
Fix infinite loop in string.Replace (#31946)

When string.Replace is given a target string with zero collation weight, it would enter an infinite loop. It is now changed so that the call to Replace terminates when such a condition is encountered.

4 years agoRename CoreCLR runtime R2R section names to match Crossgen2 naming (#32084)
Tomáš Rylek [Tue, 11 Feb 2020 02:45:20 +0000 (03:45 +0100)]
Rename CoreCLR runtime R2R section names to match Crossgen2 naming (#32084)

4 years agoSet azure devops variable if any package reports are found and skip copy packages...
Santiago Fernandez Madero [Tue, 11 Feb 2020 02:18:09 +0000 (18:18 -0800)]
Set azure devops variable if any package reports are found and skip copy packages base on that (#32083)

* Set azure devops variable if any package reports are found

* Run target in CI as well

4 years agoR2RDump changes for composite R2R format support (#32027)
Tomáš Rylek [Tue, 11 Feb 2020 01:59:53 +0000 (02:59 +0100)]
R2RDump changes for composite R2R format support (#32027)

I have separated the R2RDump-specific changes from my broader
composite R2R change. The gist of the change is becoming able to
read the new "native R2R header" flavor and look up MSIL in
separate DLL's next to the R2R executable.

On top of this basic scheme I have removed the section ID
duplication between ReadyToRunSection.cs and RuntimeHeaders.cs.
I have also slightly cleaned up unnecessary double dictionary
lookups for R2R sections.

For now I have made EH clause parsing work in single-assembly build
mode only, for composite R2R that will require additional changes.

Thanks

Tomas

4 years agoAdd assert to Unix GCToOSInterface::GetCurrentProcessorNumber for clarity (#32033)
Jan Kotas [Tue, 11 Feb 2020 01:36:25 +0000 (17:36 -0800)]
Add assert to Unix GCToOSInterface::GetCurrentProcessorNumber for clarity (#32033)

Fixes #31995

4 years agoadd fromPackage to exclude properties (#32063)
Anirudh Agnihotry [Tue, 11 Feb 2020 00:33:55 +0000 (16:33 -0800)]
add fromPackage to exclude properties (#32063)

4 years ago[Arm64] Implement FMA, FMS, MLA, MLS (#31899)
Egor Chesakov [Tue, 11 Feb 2020 00:23:31 +0000 (16:23 -0800)]
[Arm64] Implement  FMA, FMS, MLA, MLS (#31899)

* Add "FusedMultiplyAdd" and "FusedMultiplyAddScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs

* Add "FusedMultiplySubtract" and "FusedMultiplySubtractScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs

* Add "FusedMultiplyAddNegatedScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs

* Add "FusedMultiplySubtractNegatedScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs

* Add "MultiplyAdd" and "MultiplyAddScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs

* Add "MultiplySubtract" and "MultiplySubtractScalar" in AdvSimd.cs AdvSimd.PlatformNotSupported.cs

* Update System.Runtime.Intrinsics.Experimental.cs

* Add fused multiply-add and multiply-subtract intrinsics in hwintrinsiclistarm64.h

* Add "MultiplyAdd" and "MultiplySubtract" in hwintrinsiclistarm64.h

* Implement fused multiply-add and multiply-subtract intrinsics in hwintrinsiccodegenarm64.cpp

* Add fused multiply-add and multiply-subtract intrinsics in GenerateTests.csx

* Mark uses of op2 and op3 of fma, fms, mla, mls intrinsics as delay free in lsraarm64.cpp

* Add "MultiplyAdd" in GenerateTests.csx

* Add "MultiplySubtract" in GenerateTests.csx

* Update AdvSimd/ AdvSimd.Arm64/

* Update Helpers.cs Helpers.tt

4 years agopass Span through Windows PAL (#32008)
Tomas Weinfurt [Tue, 11 Feb 2020 00:20:47 +0000 (16:20 -0800)]
pass Span through Windows PAL (#32008)

* pass Span through Windws PAL

* feedback from review

* feedback from review

* remove missed referenmces to GetBuffer

4 years agoSuppress GCC warning (#32052)
Sinan Kaya [Mon, 10 Feb 2020 23:56:29 +0000 (18:56 -0500)]
Suppress GCC warning (#32052)

4 years agoDisplay stack trace at stack overflow (#31956)
Jan Vorlicek [Mon, 10 Feb 2020 23:39:03 +0000 (00:39 +0100)]
Display stack trace at stack overflow (#31956)

* Display stack trace at stack overflow

This change enables printing stack trace at stack overflow to the
console. In case multiple threads fail with stack overflow in parallel,
only the trace of the first thread is printed.

* Update the stack overflow stack size to use fixed size as a basis rather than
basing it on the virtual page size.
* Rename the AdjustContextForWriteBarrier to AdjustContextForJITHelpers
* Add waiting for the stack overflow stack trace printing completion to
the `EEPolicy::HandleFatalStackOverflow` so that it gets printed
completely even in case of multiple threads failing with stack overflow.

4 years agoFix signing in PR runs (#31926)
Tomáš Rylek [Mon, 10 Feb 2020 23:23:25 +0000 (00:23 +0100)]
Fix signing in PR runs (#31926)

Make URCT copying unconditional to unblock installer tasks in debug
mode.

Thanks

Tomas

4 years agoFixed armel/tizen support in build-commons.h (#32043)
Kirill Frolov [Mon, 10 Feb 2020 23:08:26 +0000 (02:08 +0300)]
Fixed armel/tizen support in build-commons.h (#32043)

This commit adds possibility to build .NET runtime
in Tizen's build environment (32-bit arm, little endian,
soft fp). Two issues was fixed:

1) wrong host os detection (tizen's build system is "armel",
   but not "arm");

2) build is allowed not only on "arm", "arm64" and "x64" hosts,
   but on "armel" host too.

Fixes #32042

4 years agoAdd MailAddress.TryCreate api (#1052)
Marco Rossignoli [Mon, 10 Feb 2020 23:05:58 +0000 (00:05 +0100)]
Add MailAddress.TryCreate api (#1052)

* Add TryCreate apis

* address PR feedback

* Update src/libraries/Common/src/System/Net/Mail/MailAddressParser.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/Common/src/System/Net/Mail/DotAtomReader.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/Common/src/System/Net/Mail/MailAddressParser.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Address PR feedback, split TryParse parameters for better visibility

* Address PR feedback, add return api documentation, update code comments

* set out parameter when we have result

Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years agoSuperIlc changes for composite build mode support (#32028)
Tomáš Rylek [Mon, 10 Feb 2020 22:29:08 +0000 (23:29 +0100)]
SuperIlc changes for composite build mode support (#32028)

This change mostly modifies CompilerRunner to support processes
with multiple input paths so that we can run a single Crossgen2
compilation over a larger set of input files. Based on the latest
iteration of my overall composite R2R support change I have now
made it such that SuperIlc passes the framework assemblies to
Crossgen2 using the "-u" option which means "use as input but
don't automatically root all methods in the module i.o.w. compile
only what is transitively reachable from the test app input modules".

Thanks

Tomas

4 years agoRemove Daily Builds section (#32057)
Eric Erhardt [Mon, 10 Feb 2020 22:18:36 +0000 (16:18 -0600)]
Remove Daily Builds section (#32057)

This section has been out of date since the repo consolidation. The Master column is from November - the last build from core-setup. The other columns don't make sense for this repo, since we don't service those releases from dotnet/runtime.

We can bring this table back when we get a way to keep the links up to date. See #32055 for tracking that.

4 years agoAdd a Windows Arm64 job to the runtime innerloop pipeline (#2095)
Tomáš Rylek [Mon, 10 Feb 2020 20:16:19 +0000 (21:16 +0100)]
Add a Windows Arm64 job to the runtime innerloop pipeline (#2095)

Also adds exclusion clause for two failing JIT tests.

4 years agoAllow TYP_SIMD8 to be enregistered (#811)
Carol Eidt [Mon, 10 Feb 2020 20:15:11 +0000 (12:15 -0800)]
Allow TYP_SIMD8 to be enregistered (#811)

Allow TYP_SIMD8 to be enregistered

Fix #539

4 years agoEnable builds of mono VM with LLVM JIT
Jo Shields [Mon, 10 Feb 2020 19:42:44 +0000 (14:42 -0500)]
Enable builds of mono VM with LLVM JIT

The meta-package for LLVM dependencies will be done as a follow up

4 years agoRemove monodis from mono sources (#32031)
Alexander Köplinger [Mon, 10 Feb 2020 18:40:38 +0000 (19:40 +0100)]
Remove monodis from mono sources (#32031)

It's not needed for dotnet/runtime and was already disabled in the build.

4 years agouse TestHelper to create client and server stream (#32007)
Tomas Weinfurt [Mon, 10 Feb 2020 18:39:38 +0000 (10:39 -0800)]
use TestHelper to create client and server stream (#32007)

4 years ago[master] Update dependencies from dotnet/arcade (#31917)
dotnet-maestro[bot] [Mon, 10 Feb 2020 17:53:36 +0000 (09:53 -0800)]
[master] Update dependencies from dotnet/arcade (#31917)

* Update dependencies from https://github.com/dotnet/arcade build 20200206.12

- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20106.12
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20106.12
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20106.12
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20106.12
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20106.12
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20106.12
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20106.12
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20106.12
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20106.12
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20106.12
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20106.12
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20106.12
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20106.12
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20106.12
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20106.12

* Update dependencies from https://github.com/dotnet/arcade build 20200207.14

- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20107.14
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20107.14
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20107.14
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20107.14
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20107.14
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20107.14
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20107.14
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20107.14
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20107.14
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20107.14
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20107.14
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20107.14
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20107.14
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20107.14
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20107.14

* Update dependencies from https://github.com/dotnet/arcade build 20200208.2

- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20108.2
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20108.2
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20108.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20108.2
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20108.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20108.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20108.2
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20108.2
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20108.2
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20108.2
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20108.2
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20108.2
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20108.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20108.2
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20108.2

* Update dependencies from https://github.com/dotnet/arcade build 20200209.1

- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20109.1
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20109.1
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20109.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20109.1
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20109.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20109.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20109.1
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20109.1
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20109.1
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20109.1
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20109.1
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20109.1
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20109.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20109.1
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20109.1

4 years agoRename COREFX_ to DOTNET_TEST_ in test code/scripts (#31967)
Stephen Toub [Mon, 10 Feb 2020 16:45:28 +0000 (08:45 -0800)]
Rename COREFX_ to DOTNET_TEST_ in test code/scripts (#31967)

4 years agoNullable annotate System.IO.Pipes (#31918)
Eirik Tsarpalis [Mon, 10 Feb 2020 16:30:25 +0000 (16:30 +0000)]
Nullable annotate System.IO.Pipes (#31918)

* annotate System.IO.Pipes

* update Stream override method signatures

4 years agoAnnotate System.Net.NameResolution for nullable reference types (#32011)
Stephen Toub [Mon, 10 Feb 2020 16:04:55 +0000 (08:04 -0800)]
Annotate System.Net.NameResolution for nullable reference types (#32011)

4 years agoAnnotate System.Net.ServicePoint for nullable reference types (#32012)
Stephen Toub [Mon, 10 Feb 2020 16:04:38 +0000 (08:04 -0800)]
Annotate System.Net.ServicePoint for nullable reference types (#32012)

4 years agomove ArrayBuffer to Common (#32002)
Tomas Weinfurt [Mon, 10 Feb 2020 07:05:34 +0000 (23:05 -0800)]
move ArrayBuffer to Common (#32002)

* move ArrayBuffer to Common

* remove old reference to ArrayBuffer.cs

4 years agoFix for runtime-live-build break per Santi's suggestion (#31999)
Tomáš Rylek [Sun, 9 Feb 2020 20:52:31 +0000 (21:52 +0100)]
Fix for runtime-live-build break per Santi's suggestion (#31999)

4 years agoDelete [SuppressMessage(...)] attributes for old/defunct/unused rules (#31966)
Stephen Toub [Sun, 9 Feb 2020 15:15:07 +0000 (10:15 -0500)]
Delete [SuppressMessage(...)] attributes for old/defunct/unused rules (#31966)

4 years agoMake EqualityComparer thread-safe for Mono (#31990)
Jan Kotas [Sun, 9 Feb 2020 12:03:08 +0000 (04:03 -0800)]
Make EqualityComparer thread-safe for Mono (#31990)

* Make EqualityComparer thread-safe for Mono

Fixes #3009
Fixes #31988

* Use Interlocked.CompareExchange

4 years ago[cxx] Fix C++ build -- int vs. enum. (#31837)
monojenkins [Sun, 9 Feb 2020 10:27:34 +0000 (05:27 -0500)]
[cxx] Fix C++ build -- int vs. enum. (#31837)

Co-authored-by: Jay Krell <jay.krell@cornell.edu>
4 years agoFix assembly references in tests (#31986)
Next Turn [Sun, 9 Feb 2020 06:39:39 +0000 (14:39 +0800)]
Fix assembly references in tests (#31986)

* Fix build warnings

* Reference System.Runtime instead of System.Private.CoreLib

* Change to System.Console

* Update C# script

4 years agoRemove BOM from CoreCLR files (#31972)
Next Turn [Sun, 9 Feb 2020 05:17:43 +0000 (13:17 +0800)]
Remove BOM from CoreCLR files (#31972)

* Remove BOM from CoreCLR files

* Remove BOM from CoreCLR files

* Revert *.cs files with non-ASCII characters

* Revert *.il files with non-ASCII characters

Co-authored-by: dotnet bot <dotnet-bot@dotnetfoundation.org>
4 years agoUpdate windows-test-instructions.md (#31989)
Ganbarukamo41 [Sun, 9 Feb 2020 05:00:30 +0000 (14:00 +0900)]
Update windows-test-instructions.md (#31989)

Update old file path

4 years agoEnable CA1827 (use Any() instead of Count() compared to 0) (#31983)
Stephen Toub [Sun, 9 Feb 2020 01:01:59 +0000 (20:01 -0500)]
Enable CA1827 (use Any() instead of Count() compared to 0) (#31983)

4 years agoUpdate to latest version of analyzer packages (#31982)
Stephen Toub [Sun, 9 Feb 2020 00:26:26 +0000 (19:26 -0500)]
Update to latest version of analyzer packages (#31982)

4 years agoFree memory for outItems array (#31937)
Oded Hanson [Sat, 8 Feb 2020 23:12:05 +0000 (01:12 +0200)]
Free memory for outItems array (#31937)

4 years agomake vbproj work (#31950)
Anirudh Agnihotry [Sat, 8 Feb 2020 20:53:41 +0000 (12:53 -0800)]
make vbproj work (#31950)

4 years agoOld repo issue number mapped to new repo issue number (#31981)
Dan Moseley [Sat, 8 Feb 2020 20:20:38 +0000 (12:20 -0800)]
Old repo issue number mapped to new repo issue number (#31981)

* Old repo issue number mapped to new repo issue number

* add explanation

4 years agoUse IndexOf for .* in RegexInterpreter/Compiler (#31930)
Stephen Toub [Sat, 8 Feb 2020 13:52:12 +0000 (08:52 -0500)]
Use IndexOf for .* in RegexInterpreter/Compiler (#31930)

* Clean up RegexInterpreter

Almost entirely style.  A few substantive but small changes:
- Store the TextInfo rather than storing the CultureInfo and accessing the TextInfo virtual property on each call.
- Removed unnecessary resx string that should have been an assert
- Coalesced duplicate case blocks

* Use IndexOf for Notoneloop{atomic} in RegexInterpreter/Compiler

This is primarily to improve the performance of .* loops.  We'll now use Span.IndexOf to search for the target character (e.g. \n), rather than the open-coded loop we currently have.

* Address PR feedback

4 years ago[mono] Review [SkipOnTargetFramework(TargetFrameworkMonikers.Mono...] occurrences...
Maxim Lipnin [Sat, 8 Feb 2020 13:47:52 +0000 (16:47 +0300)]
[mono] Review [SkipOnTargetFramework(TargetFrameworkMonikers.Mono...] occurrences (#31920)

* Review test attributes

* Disable System.Threading.Tests.SynchronizationContextTests.WaitNotificationTest with an active issue

4 years agoString Deduplication Design Doc (#31971)
Maoni Stephens [Sat, 8 Feb 2020 09:12:16 +0000 (01:12 -0800)]
String Deduplication Design Doc (#31971)

4 years agoFix build warnings (#31863)
Next Turn [Sat, 8 Feb 2020 06:45:14 +0000 (14:45 +0800)]
Fix build warnings (#31863)

4 years agoUpdate docs to use the main build script (#31644)
Next Turn [Sat, 8 Feb 2020 06:43:21 +0000 (14:43 +0800)]
Update docs to use the main build script (#31644)

4 years agoAdd T_CRITICAL_SECTION for cross OS DAC compile (#31908)
Steve MacLean [Sat, 8 Feb 2020 01:36:33 +0000 (20:36 -0500)]
Add T_CRITICAL_SECTION for cross OS DAC compile (#31908)

* T_CRITICAL_SECTION for DAC

Add T_CRITICAL_SECTION as a cross OS version of CRITICAL_SECTION
Add platform defines for TARGET_<os> as needed.
Add verification code to keep T_CRITICAL_SECTION in sync with CRITICAL_SECTION

* Remove unused CRITICAL_SECTION & PAL_CRITICAL_SECTION fields

Remove LockSemaphore
Place unused field under `#if`

4 years agoSolution Explorer showing netcoreapp5.0-windowsNT file first in case of multiple...
Anirudh Agnihotry [Sat, 8 Feb 2020 01:17:24 +0000 (17:17 -0800)]
Solution Explorer showing netcoreapp5.0-windowsNT file first in case of multiple frameworks (#31948)

* Vy Default show windows targetFramework file in VS

* doing same thing for freebsd Linux netbsd and osx

* missing tag

4 years agoFix nullable annotation for BeginXx AsyncCallback (#31934)
Stephen Toub [Sat, 8 Feb 2020 01:03:01 +0000 (20:03 -0500)]
Fix nullable annotation for BeginXx AsyncCallback (#31934)

4 years agocorehost: Build intermediate library to avoid building twice (#2123)
Leandro A. F. Pereira [Sat, 8 Feb 2020 00:29:12 +0000 (16:29 -0800)]
corehost: Build intermediate library to avoid building twice (#2123)

Some files are built twice in the hosting layer, so create two separate
static libraries that are then linked with all targets that need them.

Fixes [core-setup/8276](https://github.com/dotnet/core-setup/issues/8276).

4 years agoEnable generation of deps.json for non-VS builds (#31936)
Fadi Hanna [Fri, 7 Feb 2020 23:58:58 +0000 (15:58 -0800)]
Enable generation of deps.json for non-VS builds (#31936)

4 years agoClean up more unused methods in System.Private.CoreLib (#31924)
Marek Safar [Fri, 7 Feb 2020 23:02:23 +0000 (00:02 +0100)]
Clean up more unused methods in System.Private.CoreLib (#31924)

4 years agoFix regression in cross OS DAC compilation (#31901)
Steve MacLean [Fri, 7 Feb 2020 22:37:26 +0000 (17:37 -0500)]
Fix regression in cross OS DAC compilation (#31901)

Fix DAC cross OS compilations regressions introduced by #31659

4 years agoAlways fire join events for an rjoin (#651)
Andy Hanson [Fri, 7 Feb 2020 22:30:39 +0000 (17:30 -0500)]
Always fire join events for an rjoin (#651)

Previously, there was an additional check
`if (!join_struct.wait_done)` at the beginning of an rjoin.

This usually had no effect as the join isn't usually done yet. But if
thread A is the first to enter the join and finishes before thread B
starts, then B will never enter the `if`.

The only effect this had was that B would not fire join events in these
rare cases. (After that we check `join_struct.wait_done` again anyway.)
As of this PR we will always fire the events, which makes them easier
to analyze consistently.

Before this PR, looking at the join events for a single thread would show
no traces of the rjoin happening, except for an extra restart event from
the other thread.

4 years agoFix using the nopgooptimize flag in the CoreCLR build scripts. (#31931)
Jeremy Koritzinsky [Fri, 7 Feb 2020 21:38:56 +0000 (13:38 -0800)]
Fix using the nopgooptimize flag in the CoreCLR build scripts. (#31931)

* Only try to resolve PGO package path when PGOOptimize is enabled.

* Don't resolve PGO files unless we're optimizing with PGO.

* Only get the PgoDataPackagePath whne PGOOptimize is enabled.

4 years agoBuild package baseline package only during all config (#31929)
Anirudh Agnihotry [Fri, 7 Feb 2020 21:21:08 +0000 (13:21 -0800)]
Build package baseline package only during all config (#31929)

* build package baseline package only during all config

* deleteing packageBaseline package

4 years agoAvoid using a spinlock when WeakReference finalization is called by the GC (#2474)
Andrew Au [Fri, 7 Feb 2020 19:36:29 +0000 (11:36 -0800)]
Avoid using a spinlock when WeakReference finalization is called by the GC (#2474)

4 years agoAnnotate System.IO.FileSystem.AccessControl for nullable (#31780)
buyaa-n [Fri, 7 Feb 2020 18:38:52 +0000 (10:38 -0800)]
Annotate System.IO.FileSystem.AccessControl for nullable (#31780)

* Annotate System.IO.FileSystem.AccessControl for nullable

* Enabling nullable in ref, removign unneeded bangs

* Remove <Nullable>annotations

* Update formatting

4 years agoFix FreeBSD native build (#31865)
Adeel Mujahid [Fri, 7 Feb 2020 18:37:10 +0000 (20:37 +0200)]
Fix FreeBSD native build (#31865)

4 years agoChange corefx to runtime in API Review Process document (#31928)
Carlos Sanchez Lopez [Fri, 7 Feb 2020 18:33:32 +0000 (10:33 -0800)]
Change corefx to runtime in API Review Process document (#31928)

4 years agoDocument about possible options for localization (#31824)
Elinor Fung [Fri, 7 Feb 2020 18:23:23 +0000 (10:23 -0800)]
Document about possible options for localization (#31824)

4 years agoAnnotate System.IO.IsolatedStorage for nullable (#31835)
buyaa-n [Fri, 7 Feb 2020 18:13:08 +0000 (10:13 -0800)]
Annotate System.IO.IsolatedStorage for nullable (#31835)

* Annotate System.IO.IsolatedStorage for nullable

4 years agoClarify what runtime function means (#31925)
Andrew Au [Fri, 7 Feb 2020 18:10:17 +0000 (10:10 -0800)]
Clarify what runtime function means (#31925)

4 years ago[loader] Set domain->entry_assembly earlier in startup (#31814)
Ryan Lucia [Fri, 7 Feb 2020 16:18:40 +0000 (11:18 -0500)]
[loader] Set domain->entry_assembly earlier in startup (#31814)

When locating AppContext.BaseDirectory on netcore, if APP_CONTEXT_BASE_DIRECTORY is not set we call into the runtime for a fallback location, which checks domain->entry_assembly. On legacy this is fine because we set that property in `prepare_thread_to_exec_main`, but on netcore the new managed assembly loading algorithm will call into managed and check the property before that function is run, which will result in AppContext.BaseDirectory returning an empty string. The solution is to set entry_assembly a bit earlier in initialization. This is the appropriate location because it's what embedding API users will call to run an assembly.

In the process, remove some code that would bypass the usual lookup algorithm unnecessarily.

4 years agoFix encodings (#31907)
Next Turn [Fri, 7 Feb 2020 16:03:36 +0000 (00:03 +0800)]
Fix encodings (#31907)

4 years agoSet scan-build in init-compiler (#31915)
Adeel Mujahid [Fri, 7 Feb 2020 15:26:34 +0000 (17:26 +0200)]
Set scan-build in init-compiler (#31915)

`desired_version` lives in `init-compiler.sh`.

Also clear the existing CC and CXX preset by environment to avoid unexpected overriding. (the only way to override compiler tools is using CLR_* vars: CLR_CC, CLR_CXX, CLR_AR and so on)

4 years ago[System.IO.Compression] Reenable tests that were disabled on Jenkins CI (#31913)
Alexander Köplinger [Fri, 7 Feb 2020 15:09:36 +0000 (16:09 +0100)]
[System.IO.Compression] Reenable tests that were disabled on Jenkins CI (#31913)

Should work fine on Azure Pipelines.

4 years agoAnnotate System.Net.WebSockets for nullable reference types (#31875)
Stephen Toub [Fri, 7 Feb 2020 11:16:59 +0000 (06:16 -0500)]
Annotate System.Net.WebSockets for nullable reference types (#31875)

4 years agoExtract detecting CC/CXX into helper script so we can use it from mono.proj (#31854)
Alexander Köplinger [Fri, 7 Feb 2020 10:01:38 +0000 (11:01 +0100)]
Extract detecting CC/CXX into helper script so we can use it from mono.proj (#31854)

* Fix typo in gen-buildsys.sh

compier -> compiler

* Extract detecting CC/CXX into helper script so we can use it from mono.proj

* Rename detect-compiler.sh to init-compiler.sh

4 years agoRevert "Ensure using the given executable path. (dotnet/coreclr#10525)" (#31848)
Michal Strehovský [Fri, 7 Feb 2020 09:31:11 +0000 (10:31 +0100)]
Revert "Ensure using the given executable path. (dotnet/coreclr#10525)" (#31848)

Reverts dotnet/coreclr#10525.

This broke probing for .ni.exe images. If we run `corerun foo.exe` for something that has a `foo.ni.exe`, we wouldn't pick up the native image because foo.exe is considered trusted and foo.ni.exe is not. This means we would fall back to JIT. But only if foo.exe is not in CORE_ROOT. If it is, it works...

The pull request broke crossgen testing that was eventually worked around in dotnet/coreclr#11272, but it's also breaking the tests in tests\src\readytorun\tests (we just didn't find out because they're falling back to JIT). We could work around there too, but this took half a day for me to investigate, so I don't want to leave the landmine there for someone else to lose a leg over (the fact that ni probing works if you put the exe and ni.exe into CORE_ROOT was a major timesink when troubleshooting).

I don't see much point in this change. It's fixing the case when someone copied something.exe to CORE_ROOT and then tries to `corerun some\other\version\of\something.exe`, but it doesn't fix the situation when the something.exe depends on dependency.dll - we would still pick up dependency.dll from CORE_ROOT, which is likely the wrong version. The only way to win this game is not to play it - don't put stuff in CORE_ROOT.

4 years ago[merp] Add an exception type for managed exceptions (#31678)
monojenkins [Fri, 7 Feb 2020 06:28:53 +0000 (01:28 -0500)]
[merp] Add an exception type for managed exceptions (#31678)

Addresses https://github.com/mono/mono/issues/18681

Co-authored-by: Alexis Christoforides <alexis@thenull.net>
4 years ago[merp] Add tests for crashing via POSIX signal (#2163)
monojenkins [Fri, 7 Feb 2020 06:28:00 +0000 (01:28 -0500)]
[merp] Add  tests for crashing via POSIX signal (#2163)

Co-authored-by: Alexis Christoforides <alexis@thenull.net>
4 years agoUse char.GetUnicodeCategory in RegexCompiler for single Unicode categories (#31881)
Stephen Toub [Fri, 7 Feb 2020 04:51:15 +0000 (23:51 -0500)]
Use char.GetUnicodeCategory in RegexCompiler for single Unicode categories (#31881)

4 years agoDisable warnaserror for Windows (#31909)
Santiago Fernandez Madero [Fri, 7 Feb 2020 04:16:16 +0000 (20:16 -0800)]
Disable warnaserror for Windows (#31909)

Machines were updated to a newer VS 16.4 but CMake is 3.15.1 which is too old for VS validation of incremental native targets. We need 3.15.5 at least.

4 years agoAddressing Minor Cleanup (#31845)
Anirudh Agnihotry [Fri, 7 Feb 2020 03:08:07 +0000 (19:08 -0800)]
Addressing Minor Cleanup (#31845)

* addressing viktor feedback

* Update System.Reflection.Emit.ILGeneration.csproj

* Update tests.proj

* Update System.Reflection.Emit.Lightweight.csproj

* Update System.Xml.XPath.XDocument.Tests.csproj

* fixing emit projects, making them similar before config change

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
4 years agoAdd QuicConnection.IsQuicSupported for runtime feature detection (#31689)
Cory Nelson [Fri, 7 Feb 2020 00:12:04 +0000 (16:12 -0800)]
Add QuicConnection.IsQuicSupported for runtime feature detection (#31689)

Add QuicConnection.IsQuicSupported for runtime feature detection, and update tests to use it.

4 years agoTweaking the joined_condemned_reason implementation (#31726)
Andrew Au [Thu, 6 Feb 2020 22:16:31 +0000 (14:16 -0800)]
Tweaking the joined_condemned_reason implementation (#31726)

4 years agoDisable warnAsError from official builds to workaround cmake issue (#31890)
Santiago Fernandez Madero [Thu, 6 Feb 2020 22:04:51 +0000 (14:04 -0800)]
Disable warnAsError from official builds to workaround cmake issue (#31890)

4 years agoConfigure Host OS APIs based on HOST macros (#31774)
Steve MacLean [Thu, 6 Feb 2020 21:55:05 +0000 (16:55 -0500)]
Configure Host OS APIs based on HOST macros (#31774)

* Use gcenv.windows.inl on Windows HOSTS

* Make two way pipe implementation depend on host

We have no ability to implement a cross OS pipe.  Allow the
two way pipe implentation depend on the host.

* Use empty debug macro implementation on Windows hosts.

* Make HMODULE type depend on host compiler

* Configure long file path wrappers based on host

* Configure memcpy based on host

* Configure FreeLibrary based on host

* Configure host utility funtion based on host

VirtualAlloc, CPU count, NUMA config make most sense as host
queries.  Configure based on host.

* Configure exceptiion holder based on host

* Prefer #if HOST_WINDOWS for longfilepathwrappers.cpp

* Prefer #if HOST_WINDOWS for src/coreclr/src/inc/holder.h

* Do not include GCToOSInterface::GetPageSize() in DAC

* Remove JIT64_BUILD

* !HOST_UNIX -> HOST_WINDOWS

4 years agoJIT: add back no side effect check when optimizing return values (#31836)
Andy Ayers [Thu, 6 Feb 2020 21:17:05 +0000 (13:17 -0800)]
JIT: add back no side effect check when optimizing return values (#31836)

Feedback from #31699.

4 years ago[mono] Enable debugging for netcore configurations by default. (#31683)
Steve Pfister [Thu, 6 Feb 2020 21:15:50 +0000 (16:15 -0500)]
[mono] Enable debugging for netcore configurations by default. (#31683)

What this means is:

1. --debug is no longer needed since the default is TRUE
2. --debug=ignore is a new switch to go back to the old mono default

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

4 years agoDisable crypto tests affected by libssl in OSX (#31879)
Santiago Fernandez Madero [Thu, 6 Feb 2020 20:48:32 +0000 (12:48 -0800)]
Disable crypto tests affected by libssl in OSX (#31879)

4 years agoUpdate SkipOnCoreClrAttributes to RuntimeConfiguration argument (#31847)
Santiago Fernandez Madero [Thu, 6 Feb 2020 20:31:50 +0000 (12:31 -0800)]
Update SkipOnCoreClrAttributes to RuntimeConfiguration argument (#31847)

* Update SkipOnCoreClrAttributes to RuntimeConfiguration argument

* Update XunitExtensions

* Fix bad merge

4 years agofix FileSystemWatcher_Unix_DoesNotLeak test (#2296)
Tomas Weinfurt [Thu, 6 Feb 2020 20:18:55 +0000 (12:18 -0800)]
fix FileSystemWatcher_Unix_DoesNotLeak test (#2296)

* fix FileSystemWatcher_Unix_DoesNotLeak test

* feedback

* feedback from review

4 years agoFix JIT TARGET usage (#31740)
Steve MacLean [Thu, 6 Feb 2020 19:47:33 +0000 (14:47 -0500)]
Fix JIT TARGET usage (#31740)

* Fix JIT TARGET usage

Fixes _TARGET* & TARGET*_ comments

Fixes TARGET_XARCH4 reference to TARGET_XARCH

Fixes #31372

* Remove no way assert

* Fix JIT formatting

* Use defined() in optcse.cpp

4 years agoInitialize Delimiter from Attributes (#635)
Mike Rousos [Thu, 6 Feb 2020 19:02:48 +0000 (14:02 -0500)]
Initialize Delimiter from Attributes (#635)

* Initialize Delimiter from Attributes

If a DelimitedListTraceListener has a Delimiter attribute, use it
to initialize the Delimiter unless (and until) a delimiter is set
explicitly.

Also add unit tests for these scenarios.

Fix dotnet/corefx#39363

* Remove var usage

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Remove unnecessary initialization

Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years agoEnable .NET Framework F5 & VS TestExplorer support for libraries (#31873)
Viktor Hofer [Thu, 6 Feb 2020 18:19:53 +0000 (19:19 +0100)]
Enable .NET Framework F5 & VS TestExplorer support for libraries (#31873)

* Enable .NET Framework F5 & TestExplorer

Adding a launchSettings profile to enable .NET Framework F5 scenarios.
Also setting the DEVPATH variable for the -vs hook to use the locally
built .NET Framework runtime.

* Set DEVPATH env in F5

4 years agoNullable annotate System.Diagnostics.Process (#31671)
Eirik Tsarpalis [Thu, 6 Feb 2020 18:18:48 +0000 (18:18 +0000)]
Nullable annotate System.Diagnostics.Process (#31671)

* nullable annotate System.Diagnostics.Process

* add annotations to unix source files

* annotate remainder of non-windows implementations

* enable nullable annotation for file

* add nullable directive to cgroups.cs

* add missing nullable directives in shared files

* enable nullable annotations for ReusableTextReader

* add missing #nullable enable directives in shared files

* address feedback

* address feedback

* ensure ComputerName property is non-nullable

* assert non-nullability for specific Process.Start() overloads