platform/upstream/dotnet/runtime.git
4 years agoTurn back on some of the EventPipe tests that were disabled in GCStress (#533)
Sung Yoon Whang [Mon, 9 Dec 2019 21:07:05 +0000 (13:07 -0800)]
Turn back on some of the EventPipe tests that were disabled in GCStress (#533)

* Turn back on some of the EventPipe tests that were disabled in GCStress

* Mark more EventPipe tests as gcstress compatible

4 years agoPublish nethost static library (#296)
Next Turn [Mon, 9 Dec 2019 20:21:25 +0000 (04:21 +0800)]
Publish nethost static library (#296)

4 years agoAdd new YAML template for combined build of CoreCLR and libraries (#626)
Tomáš Rylek [Mon, 9 Dec 2019 17:53:14 +0000 (18:53 +0100)]
Add new YAML template for combined build of CoreCLR and libraries (#626)

As a common idiom in many live-live CoreCLR pipelines, we need
libraries to build a platform matrix equivalent to the CoreCLR
testing matrix. I have created a new template to capture that idiom.
I have initially switched over the Crossgen2 pipeline to use it.

Thanks

Tomas

4 years agoFix runtest.py for the dotnet/runtime repo (#669)
Bruce Forstall [Mon, 9 Dec 2019 16:48:02 +0000 (08:48 -0800)]
Fix runtest.py for the dotnet/runtime repo (#669)

I simplified a lot of functions to just take the "args"
object, which contains a lot of paths and directories.
This makes it easier to centralize the directory computations
without spreading paths throughout the function signatures.

4 years agoAdd runtime-assets dependency (#671)
Viktor Hofer [Mon, 9 Dec 2019 15:56:35 +0000 (16:56 +0100)]
Add runtime-assets dependency (#671)

Adding a dependency to dotnet/runtime-assets to enable dependency flow
for (test) data packages.

4 years agoConsolidate .netcoreapp.cs test files in System.Net.* (#664)
Roman Marusyk [Mon, 9 Dec 2019 13:48:49 +0000 (14:48 +0100)]
Consolidate .netcoreapp.cs test files in System.Net.* (#664)

* Consolidate .netcoreapp.cs files because System.Net.* projects is no longer cross-compiled

* Fix build

* Add end-of-line

4 years agoFix logging initialization race (#616) (#634)
Anubhav Srivastava [Mon, 9 Dec 2019 10:47:40 +0000 (02:47 -0800)]
Fix logging initialization race (#616) (#634)

* Make logging initialization thread-safe. Fix broken defines for InterlockedCompareExchangePointer and InterlockedExchangePointer.

* Add InitLogging back to log.h. Revert change to the defines in utilcode.h. Move LogFileMutex initialization to InitializeLogging.

4 years agoFix crossgen2 issue with generic delegates (#613)
Jan Vorlicek [Mon, 9 Dec 2019 10:43:19 +0000 (11:43 +0100)]
Fix crossgen2 issue with generic delegates (#613)

The coreclr pri1 test is failing with the following error:
Expected typeof generic method Type Parameter for parameter, 'aaaa', to
be 'System.String', but found 'System.__Canon'

The issue was caused by the fact that we were not setting the
isInstantiatingStub for calls to generic delegates. The old crossgen
was doing that correctly.

4 years agoAdd support for escaped characters in JsonString (for {Try}GetDateTime{Offset}) ...
Eugene Samoylov [Mon, 9 Dec 2019 07:56:59 +0000 (12:56 +0500)]
Add support for escaped characters in JsonString (for {Try}GetDateTime{Offset}) (#386)

* Add support for escaped characters in JsonString (for {Try}GetDateTime{Offset})

* Fix the review issues

* Fix a mistake after resolving a merge conflict

* Change `var` to explicit type

4 years agoCorrect nullability annotations for CreateInstance implementation details (#675)
Jan Kotas [Sun, 8 Dec 2019 21:10:15 +0000 (13:10 -0800)]
Correct nullability annotations for CreateInstance implementation details (#675)

Fixes #674

4 years agoFix race condition in live-live CoreCLR PR (#658)
Tomáš Rylek [Sun, 8 Dec 2019 21:00:04 +0000 (22:00 +0100)]
Fix race condition in live-live CoreCLR PR (#658)

I was going over the various artifacts while writing a
response to Chad Nedzlek trying to explain to him that his
assessment of the bug is incorrect and I found out he is
actually right. As the managed test components corresponding
to the "test_build_..." can be redirected to a different OS,
we need to create an explicit dependency edge as otherwise
there's no guarantee that the run job will depend on the
library build job for the corresponding platform.

Thanks

Tomas

4 years agoFix broken links in workflow docs (#659)
Thomas Gassmann [Sun, 8 Dec 2019 11:22:34 +0000 (12:22 +0100)]
Fix broken links in workflow docs (#659)

* Fix broken links in workflow docs

There were several broken links in the workflow documentation.

* Update paths for CoreCLR debugging in documentation

4 years agoImplement AdvanceToEnd,UnreadSequence (#388)
Marco Rossignoli [Sat, 7 Dec 2019 01:41:08 +0000 (02:41 +0100)]
Implement AdvanceToEnd,UnreadSequence  (#388)

* UnreadSequence, AdvanceToEnd

* default _nextPosition

* add some tests

* remove AggressiveInlining

* address PR feedback

* Update src/libraries/System.Memory/src/System/Buffers/SequenceReader.Search.cs

Co-Authored-By: Ahson Khan <ahkha@microsoft.com>
* Update src/libraries/System.Memory/src/System/Buffers/SequenceReader.cs

Co-Authored-By: Ahson Khan <ahkha@microsoft.com>
* fix docs, add some tests

4 years agoTest span-based CopyTo/Async method (#390)
Emmanuel André [Sat, 7 Dec 2019 01:09:01 +0000 (02:09 +0100)]
Test span-based CopyTo/Async method (#390)

* Add tests for span-based CopyTo/Async methods

* Add tests for cross sync streams

A custom stream implementation can override CopyTo(Stream) methods with calls to WriteAsync and vice versa

* Add new tests using CallTrackingStream

* Apply suggestions from code review

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Apply additional suggestions from code review

4 years agoMerge pull request #631 from ericstj/fixNetCoreAppRestore
Eric StJohn [Sat, 7 Dec 2019 00:19:56 +0000 (16:19 -0800)]
Merge pull request #631 from ericstj/fixNetCoreAppRestore

Fix restore of netcoreapp when not downloading any packages

4 years agoFix two subtle bugs in CoreCLR test build (#625)
Tomáš Rylek [Fri, 6 Dec 2019 23:28:14 +0000 (00:28 +0100)]
Fix two subtle bugs in CoreCLR test build (#625)

1) As Bruce reported, my recent live-live change regressed local
CoreCLR build in the sense that it always ended with a spurious
error message from the patch-corefx script. This was due to a typo
where I forgot to escape a parenthesis in an echo message that
the batch script parser ended up understanding as closing the
conditional block.

2) I added several folders to the exclusion list representing special
folders under "artifacts/tests/coreclr/os.arch.config" that should
be skipped when building the test wrappers.

Fixes: #578

Thanks

Tomas

4 years agoInitial SslStream stress app work (#290)
Eirik Tsarpalis [Fri, 6 Dec 2019 22:48:36 +0000 (22:48 +0000)]
Initial SslStream stress app work (#290)

4 years agoExclude test from crossgenning (#592)
Fadi Hanna [Fri, 6 Dec 2019 22:38:02 +0000 (14:38 -0800)]
Exclude test from crossgenning (#592)

* Exclude tests from crossgenning

4 years agouse 2x buffer when sysctl fails with ENOMEM (#591)
Tomas Weinfurt [Fri, 6 Dec 2019 22:18:28 +0000 (14:18 -0800)]
use 2x buffer when sysctl fails with ENOMEM (#591)

* use 2x buffer when sysctl fails with ENOMEM

* add comment to sysctl buffer logic

4 years agoRemove obsolete tests from System.Net.Security (#624)
David Shulman [Fri, 6 Dec 2019 22:11:21 +0000 (14:11 -0800)]
Remove obsolete tests from System.Net.Security (#624)

These tests haven't been running nor even compiling for several years. The compilation
broke when CSPROJ changes were made regarding TargetsLinux vs. TargetsUnix.

The tests themselves required running in admin mode and made impactful changes on the
host machine (such as installing a KDC).

Now that enterprise scenario tests have been added with PR #463, these tests are no longer
needed. Much of these tests have already been incorporated into the new enterprise
tests.

Closes https://github.com/dotnet/corefx/issues/30150
Closes https://github.com/dotnet/corefx/issues/24707

4 years agoFix restore of netcoreapp when not downloading any packages
Eric StJohn [Fri, 6 Dec 2019 21:19:36 +0000 (13:19 -0800)]
Fix restore of netcoreapp when not downloading any packages

4 years agoAdd path filters to runtime.yml triggers (#623)
Santiago Fernandez Madero [Fri, 6 Dec 2019 20:45:35 +0000 (12:45 -0800)]
Add path filters to runtime.yml triggers (#623)

* Add path filters to runtime.yml triggers

* Exclude runtime.yml from other PR and CI pipelines

4 years agoRemove duplicates of Interop.Kernel32.GenericOperations.GENERIC_READ and GENERIC_WRIT...
Youssef Victor [Fri, 6 Dec 2019 19:13:31 +0000 (21:13 +0200)]
Remove duplicates of Interop.Kernel32.GenericOperations.GENERIC_READ and GENERIC_WRITE (#292)

Remove duplicates of Interop.Kernel32.GenericOperations.GENERIC_READ and GENERIC_WRITE

4 years agoCi Health and investigation doc (#551)
Jarret Shook [Fri, 6 Dec 2019 18:32:34 +0000 (10:32 -0800)]
Ci Health and investigation doc (#551)

* Ci Health and investigation doc

* Address feedback

* Tend->Trend

4 years agoChange `mcs -dump` to show the full function name for each MC (#600)
Bruce Forstall [Fri, 6 Dec 2019 18:29:44 +0000 (10:29 -0800)]
Change `mcs -dump` to show the full function name for each MC (#600)

4 years agoRevert target framework version change to netcoreapp3.0 when building from VS (#584)
Fadi Hanna [Fri, 6 Dec 2019 17:40:59 +0000 (09:40 -0800)]
Revert target framework version change to netcoreapp3.0 when building from VS (#584)

4 years agoRevert --resilient from being the default on crossgen2 for now (#619)
Fadi Hanna [Fri, 6 Dec 2019 17:39:04 +0000 (09:39 -0800)]
Revert --resilient from being the default on crossgen2 for now (#619)

4 years agoAdd test for CancellationTokenRegistration.Unregister race condition (#313)
Stephen Toub [Fri, 6 Dec 2019 17:02:53 +0000 (12:02 -0500)]
Add test for CancellationTokenRegistration.Unregister race condition (#313)

4 years agoSwitch over CoreCLR pr.yml to use live-built libraries (#520)
Tomáš Rylek [Fri, 6 Dec 2019 15:56:17 +0000 (16:56 +0100)]
Switch over CoreCLR pr.yml to use live-built libraries (#520)

* Switch over CoreCLR pr.yml to use live-built libraries

* Delete CoreFX runs against CoreCLR

* PR feedback - only use release CoreFX builds for CoreCLR testing

4 years agoImprove perf and scalability of Regex's cache (#542)
Stephen Toub [Fri, 6 Dec 2019 14:48:52 +0000 (09:48 -0500)]
Improve perf and scalability of Regex's cache (#542)

Regex maintains a cache used for the static methods on Regex, e.g. Regex.IsMatch.  The cache is implemented as an LRU cache, which maintains a linked list and a dictionary of the cached instances.  The linked list maintains the order in which the cached instances were last accessed, making it cheap to expunge older items from the cache.  However, that comes at a significant cost: unless the item is the very first one in the linked list, all reads on the cache require taking a global lock, because the linked list needs to be mutated to move the found node to the beginning.  That lock has both throughput and scalability implications.

This PR changes the cache from using a `Dictionary<>` and a linked list to instead using a `ConcurrentDictionary<>` and a `List<>`.  Rather than making all accesses more expensive in order to make drops less expensive, it makes all reads much cheaper and more scalable, at the expense of making drops more expensive.  Since dropping from the cache means we're already paying the expensive cost of creating/parsing/compiling/etc. a new Regex instance, this is a better trade-off, especially since any frequent dropping suggests the consuming app or library needs to revisit its Regex strategy, either using Regex.CacheSize to increase the cache size appropriately, or doing its own caching (e.g. creating the Regex instance it needs and storing it into a field for all future use).

The new scheme uses a `ConcurrentDictionary<Key,Node>`, a `List<Node>`, and a fast-path field storing the most recently used Regex instance (just as the existing implementation did).  On lookups, if the fast-path field has the matching value, it's just returned.  Otherwise, the dictionary is consulted, and if the item is found, the fast-path field is updated.  No locking at all is employed, and only a few volatile read/writes are used to update a "last access stamp" that's used to indicate importance if/when items do need to be expunged.  On additions, we do still take a global lock and add to the cache.  If this puts us over our cache size, we pick an item from the list and remove it.  If the list is small, we just examine all of the items looking for the oldest.  If the list is larger, we examine a random subset of it; we may not get rid of the absolute oldest item, but it'll be old enough.

4 years agoFix coredistools lookup for users with spaces in usernames (#607)
Jan Vorlicek [Fri, 6 Dec 2019 14:27:30 +0000 (15:27 +0100)]
Fix coredistools lookup for users with spaces in usernames (#607)

Locating the downloaded coredistools.dll fails for users that have
spaces in their names (their home directory has spaces in the path).

This change fixes the problem by adding quotes to the locating command.

4 years agoUpdate links (#537)
Roman Marusyk [Fri, 6 Dec 2019 09:22:40 +0000 (10:22 +0100)]
Update links (#537)

4 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20191204.4 (#560)
dotnet-maestro[bot] [Fri, 6 Dec 2019 09:20:22 +0000 (10:20 +0100)]
Update dependencies from https://github.com/dotnet/arcade build 20191204.4 (#560)

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

4 years agoForce Python 3.7 for superpmi.py (#603)
Bruce Forstall [Fri, 6 Dec 2019 05:56:22 +0000 (21:56 -0800)]
Force Python 3.7 for superpmi.py (#603)

Async doesn't work well on Windows before this.

4 years agoEnable parallelism in Crossgen2 and add flags for it in SuperIlc. (#495)
Anubhav Srivastava [Fri, 6 Dec 2019 02:43:00 +0000 (18:43 -0800)]
Enable parallelism in Crossgen2 and add flags for it in SuperIlc. (#495)

* Enable parallelism in Crossgen2 and add flags for it in SuperIlc.

* Use fluent api pattern in ReadyToRunCodegenCompilationBuilder for resilient, IBC tuning, and parallelism flags.

4 years agoMerge pull request #581 from VSadov/BigProcNum
Vladimir Sadov [Fri, 6 Dec 2019 02:34:15 +0000 (18:34 -0800)]
Merge pull request #581 from VSadov/BigProcNum

Fix Thread.GetCurrentProcessorId   for  > 64 CPUs on Windows.

4 years agoUse MaxExpansionFactorWhileTranscoding instead of counting bytes (#478)
Kristian Hellang [Fri, 6 Dec 2019 01:41:21 +0000 (02:41 +0100)]
Use MaxExpansionFactorWhileTranscoding instead of counting bytes (#478)

4 years agoEnterprise Testing System (#463)
David Shulman [Thu, 5 Dec 2019 23:32:13 +0000 (15:32 -0800)]
Enterprise Testing System (#463)

This is the first of several PRs that add Enterprise Scenarios Testing capability to
the repo. This PR focusses on Linux which allows for docker containers to be used
in an enterprise network configuration.

I focussed on 2 workflows: 1) The 'dev' workflow, and 2) The PR/CI workflow. The dev
workflow works well since it's using containers in a docker-compose environment along
with volume mounting your current dev's repo enlistment. The PR/CI workflow gives us
an Azure DevOps pipeline to automate verification.

I still need to work with the infra team to add a real pipeline that will run. I can't
do that until this is merged. In the meantime, I have my own DevOps pipeline that verified this PR.

See: https://dev.azure.com/systemnetncl/Enterprise%20Testing/_build/results?buildId=141

I will be linking a follow-up GitHub issue describing the roadmap for building on this system
including adding Windows environments, NTLM protocol, proxies, and other libraries such as
System.Net.Mail and System.Data.SqlClient. Those libraries also use Negotiate/Kerberos/NTLM
enterprise-oriented protocols.

Contributes to:
https://github.com/dotnet/corefx/issues/41652
https://github.com/dotnet/corefx/issues/41489
https://github.com/dotnet/corefx/issues/36896
https://github.com/dotnet/corefx/issues/30150
https://github.com/dotnet/corefx/issues/24707
https://github.com/dotnet/corefx/issues/10041
https://github.com/dotnet/corefx/issues/6606
https://github.com/dotnet/corefx/issues/6161

* Address PR feedback

* Change pipeline *.yml to only run on selected filepaths for PRs
* Change kdc container Dockerfile to be based on ubuntu:18.04
* Fix typo in README.md

* Update .yml file

* Link (instead of copy) apache kerb module to the right place

4 years agoFix build-test.cmd help message for generatelayoutonly option (#595)
Bruce Forstall [Thu, 5 Dec 2019 22:55:09 +0000 (14:55 -0800)]
Fix build-test.cmd help message for generatelayoutonly option (#595)

4 years agoChanged corefx to libraries in System.Private.CoreLib (#532)
Erhan Atesoglu [Thu, 5 Dec 2019 22:42:00 +0000 (14:42 -0800)]
Changed corefx to libraries in System.Private.CoreLib (#532)

* Changed corefx to libraries

* Update src/libraries/System.Private.CoreLib/src/System/Runtime/Serialization/SerializationInfo.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Private.CoreLib/src/System/Runtime/Serialization/SerializationInfo.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Private.CoreLib/src/Interop/Unix/Interop.Errors.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Private.CoreLib/src/Internal/Win32/RegistryKey.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
4 years agoAdd README.md for archived runtime packages (#570)
Charles Stoner [Thu, 5 Dec 2019 22:39:40 +0000 (14:39 -0800)]
Add README.md for archived runtime packages (#570)

* Add README.md for archived runtime packages

* package -> library

4 years agoImplement SequenceReader.TryPeek(long offset, out T value) (#346)
Marco Rossignoli [Thu, 5 Dec 2019 21:50:08 +0000 (22:50 +0100)]
Implement SequenceReader.TryPeek(long offset, out T value) (#346)

* address PR feedback

* Update src/libraries/System.Memory/src/System/Buffers/SequenceReader.cs

Co-Authored-By: Ahson Khan <ahkha@microsoft.com>
* address PR feedback

4 years agoAdd ConcurrentCollectionsEventSource to EventSource test exemptions list (#565)
Stephen Toub [Thu, 5 Dec 2019 21:48:11 +0000 (16:48 -0500)]
Add ConcurrentCollectionsEventSource to EventSource test exemptions list (#565)

4 years agoUpdate libraries outerloop pipelines to use a lively built coreclr (#530)
Santiago Fernandez Madero [Thu, 5 Dec 2019 21:19:27 +0000 (13:19 -0800)]
Update libraries outerloop pipelines to use a lively built coreclr (#530)

4 years agoSave PMI stdout/stderr during SuperPMI collections (#579)
Bruce Forstall [Thu, 5 Dec 2019 21:14:55 +0000 (13:14 -0800)]
Save PMI stdout/stderr during SuperPMI collections (#579)

4 years agoAdd --resilient switch to crossgen2 compilations (#588)
Fadi Hanna [Thu, 5 Dec 2019 20:50:39 +0000 (12:50 -0800)]
Add --resilient switch to crossgen2 compilations (#588)

There are negative scenario tests that will cause the JIT to fail to compile certain methods. Adding the resilient switch to the RunCrossgen2 infrastructure prevents crossgen2 from failing on such errors (default behavior of crossgen1)

4 years ago[Arm64] Fix JitDump assertions when emitting ld1 (#544)
Egor Chesakov [Thu, 5 Dec 2019 20:13:34 +0000 (12:13 -0800)]
[Arm64] Fix JitDump assertions when emitting ld1 (#544)

* Add INS_ld1 case in emitter::emitInsTargetRegSize in jit/emitarm64.cpp

* Remove assertion in emitter::emitDispIns in jit/emitarm64.cpp

4 years agoAdd bilinear interpolation benchmark (#566)
Carol Eidt [Thu, 5 Dec 2019 20:10:12 +0000 (12:10 -0800)]
Add bilinear interpolation benchmark (#566)

This is also checked in to the performance repo. Adding it here makes it easier to include in diffs and other code analysis. Also, it exposed a correctness bug in the Arm64 `Vector<T>` implementation; the convert from floating point to integer needs to truncate.

4 years ago[Arm64] Implement BitwiseSelect hardware intrinsic (#472)
Egor Chesakov [Thu, 5 Dec 2019 20:10:01 +0000 (12:10 -0800)]
[Arm64] Implement BitwiseSelect hardware intrinsic (#472)

4 years agoFix inaccurate comment. (#585)
Fadi Hanna [Thu, 5 Dec 2019 20:06:21 +0000 (12:06 -0800)]
Fix inaccurate comment. (#585)

Crossgen2 is in its own package, not included with the runtime package

4 years agoUnset RunCrossgen2 variable when CrossGenTest is set to false (#583)
Fadi Hanna [Thu, 5 Dec 2019 19:59:37 +0000 (11:59 -0800)]
Unset RunCrossgen2 variable when CrossGenTest is set to false (#583)

4 years agoFix crossgen2 gc layout handling for TypedReference (#555)
Jan Vorlicek [Thu, 5 Dec 2019 19:26:54 +0000 (20:26 +0100)]
Fix crossgen2 gc layout handling for TypedReference (#555)

* Fix crossgen2 gc layout handling for TypedReference

The getClassGCLayout jit interface method was not handling TypedReference
explicitly like its runtime counterpart. That was causing the layout to
be incorrect for TypedReference and resulted in 100 failures (asserts)
in the coreclr pri1 tests build and one framework assembly build with
crossgen2.
The assert in JIT was in Linux specific code path, so we weren't hitting
it on Windows.
With this fix, the build and test run results match the Windows ones.

* Remove the System.Runtime.Serialization.Formatters from exclusions

The assembly is now compiled ok

4 years agoFix calling getMethodName on our function, so it ends up in the MCH (#548)
Bruce Forstall [Thu, 5 Dec 2019 19:22:10 +0000 (11:22 -0800)]
Fix calling getMethodName on our function, so it ends up in the MCH (#548)

4 years agoFix GetCurrentProcessorId for > 64 CPUs on Windows.
vsadov [Thu, 5 Dec 2019 18:55:16 +0000 (10:55 -0800)]
Fix GetCurrentProcessorId for  > 64 CPUs on Windows.

4 years agoUpdate superpmi.py script for new 'runtime' repo layout (#541)
Bruce Forstall [Thu, 5 Dec 2019 18:14:33 +0000 (10:14 -0800)]
Update superpmi.py script for new 'runtime' repo layout (#541)

Updated a few comments as well.

4 years agoTwo more fixes for crossgen2 (#538)
Fadi Hanna [Thu, 5 Dec 2019 17:27:12 +0000 (09:27 -0800)]
Two more fixes for crossgen2 (#538)

* Reference the test working directory when running crossgen2

* Fix GCRefMapBuilder to correctly detect if certain methods are "empty" and not crash

4 years agoUpgrade global.json to 5.0-alpha1 SDK (#445)
Viktor Hofer [Thu, 5 Dec 2019 17:23:07 +0000 (18:23 +0100)]
Upgrade global.json to 5.0-alpha1 SDK (#445)

* Upgrade global.json to 5.0-alpha1 SDK

* Introduce a NetCoreApp TFM

* Don't apply RuntimeFramework for depprojs

* Binplace framework refs for netcoreapp

* Update pkg testing for netcoreapp5.0 sdk

4 years agoChange clang static analyzer reports store directory to BinDir/scan-build-log (#559)
Leslie Zhai [Thu, 5 Dec 2019 16:13:54 +0000 (00:13 +0800)]
Change clang static analyzer reports store directory to BinDir/scan-build-log (#559)

https://github.com/dotnet/runtime/issues/558

4 years agoFix various SuperPMI dumping problems (#547)
Bruce Forstall [Thu, 5 Dec 2019 15:51:09 +0000 (07:51 -0800)]
Fix various SuperPMI dumping problems (#547)

4 years agoRemove clean.cmd/sh scripts from coreclr root (#564)
Viktor Hofer [Thu, 5 Dec 2019 14:51:58 +0000 (15:51 +0100)]
Remove clean.cmd/sh scripts from coreclr root (#564)

The clean.cmd/sh scripts aren't necessary anymore as coreclr now uses
the user profile nuget cache for the packages and for the binaries there
is a common -clean action in the arcade build root script which is
invoked by the repo root scripts.

4 years agoDelete broken sync.sh script from coreclr (#562)
Viktor Hofer [Thu, 5 Dec 2019 14:51:17 +0000 (15:51 +0100)]
Delete broken sync.sh script from coreclr (#562)

4 years agoDelete unused dotnet-download.ps1 file in coreclr (#561)
Viktor Hofer [Thu, 5 Dec 2019 14:50:45 +0000 (15:50 +0100)]
Delete unused dotnet-download.ps1 file in coreclr (#561)

4 years agoFix xml doc comment on FlushResult.IsCompleted (#491)
Andrew Arnott [Thu, 5 Dec 2019 13:52:29 +0000 (06:52 -0700)]
Fix xml doc comment on FlushResult.IsCompleted (#491)

4 years agoFix crossgen2 ArgIterator for SystemV Amd64 Unix ABI (#499)
Jan Vorlicek [Thu, 5 Dec 2019 10:40:22 +0000 (11:40 +0100)]
Fix crossgen2 ArgIterator for SystemV Amd64 Unix ABI (#499)

* Fix crossgen2 ArgIterator for amd64 Unix ABI

The ArgIterator was missing proper handling of the SystemV struct classification.
There were also several minor issues.

* Remove the SystemV struct classification cache

Running without the cache showed no difference in the total build time of
all the coreclr pri1 tests and all the runtime assemblies, so I am removing
the cache.

4 years agoFix linux musl arm64 testing (#523)
Jarret Shook [Thu, 5 Dec 2019 06:17:53 +0000 (22:17 -0800)]
Fix linux musl arm64 testing (#523)

* Fix linux musl arm64 testing

1. Increase crossgen-comparion job to 2 hour timeout
2. modify .gitignore to include .devcontainer -> vscode hidden folder

* Update comment

4 years agoDocument FPU options (#546)
Sinan Kaya [Thu, 5 Dec 2019 05:25:52 +0000 (00:25 -0500)]
Document FPU options (#546)

4 years agoFix comments referencing non-existent CorInfoFlags value. (#549)
Bruce Forstall [Thu, 5 Dec 2019 04:40:57 +0000 (20:40 -0800)]
Fix comments referencing non-existent CorInfoFlags value. (#549)

4 years agoAnnotate System.ComponentModel.EventBasedAsync for nullable reference types (#466)
Stephen Toub [Thu, 5 Dec 2019 03:11:25 +0000 (22:11 -0500)]
Annotate System.ComponentModel.EventBasedAsync for nullable reference types (#466)

* Annotate System.ComponentModel.EventBasedAsync for nullable reference types

* Address PR feedback

4 years agoAnnotate System.IO.FileSystem.DriveInfo for nullable reference types (#464)
Stephen Toub [Thu, 5 Dec 2019 03:11:12 +0000 (22:11 -0500)]
Annotate System.IO.FileSystem.DriveInfo for nullable reference types (#464)

* Annotate System.IO.FileSystem.DriveInfo for nullable reference types

* Address PR feedback

4 years agoUpdate nullability.md
Stephen Toub [Thu, 5 Dec 2019 03:00:49 +0000 (22:00 -0500)]
Update nullability.md

4 years agoUpdate nullability.md with notes on disposal
Stephen Toub [Thu, 5 Dec 2019 03:00:14 +0000 (22:00 -0500)]
Update nullability.md with notes on disposal

4 years agoUpdate libraries pr/ci build to use live coreclr (#526)
Santiago Fernandez Madero [Thu, 5 Dec 2019 01:39:41 +0000 (17:39 -0800)]
Update libraries pr/ci build to use live coreclr (#526)

* Use live coreclr for libraries pipeline

* Remove RHEL 6 from build pipelines

* Fix the way we flow conditions to include succeeded into the condition

4 years agoMerge pull request #519 from nattress/bad_devirt
Simon Nattress [Thu, 5 Dec 2019 01:18:51 +0000 (17:18 -0800)]
Merge pull request #519 from nattress/bad_devirt

Remove overly eager devirtualization optimization

4 years agoAvoid allocating Regex when using static methods (#496)
Stephen Toub [Wed, 4 Dec 2019 22:02:08 +0000 (17:02 -0500)]
Avoid allocating Regex when using static methods (#496)

* Avoid allocating Regex when using static methods

Regex supports a cache that's meant to be used for the static methods, e.g. the static Regex.IsMatch.  However, currently that cache isn't caching the actual Regex class, but rather a sub object that stores some of the state from the Regex and then is used to rehydrate a new Regex instance.  This means we allocate a new Regex object when these static methods are used, even if the data is found in the cache.  This means an operation like the static Regex.IsMatch is never allocation-free.  There's also weirdness around this caching, in that when a new Regex instance is constructed, it checks the cache (paying the relevant lookup costs) even though it doesn't add back to the cache, so the only way it would ever find something in the cache is if the same set of inputs (e.g. pattern, options, timeout, etc.) are used with both the Regex ctor and with the static methods, where the static methods would populate the cache that's then consulted by the ctor.  This adds unnecessary expense on the common path for a very uncommon situation; it also complicates the code non-trivially.

This commit changes things to cleanly separate the cache from Regex, and to actually cache the Regex instance itself.

* Address PR feedback

4 years agoSkip compilation for methods with BypassReadyToRun attribute (#516)
Fadi Hanna [Wed, 4 Dec 2019 21:30:05 +0000 (13:30 -0800)]
Skip compilation for methods with BypassReadyToRun attribute (#516)

4 years agoRemove overly eager devirtualization optimization
Simon Nattress [Wed, 4 Dec 2019 19:53:11 +0000 (11:53 -0800)]
Remove overly eager devirtualization optimization

Earlying out when `declMethod.OwningType == implType` is incorrect when the devirtualization manager resolves a call to `C2::M3` due to the presence of MethodImpls which redirect the slot (if a .override changes the slot, we bail on devirtualizing the call). In the example below (which is taken from https://github.com/dotnet/runtime/blob/859926f4c37158c683157bcd0f2b9d3c62d1f650/src/coreclr/tests/src/Loader/classloader/methodoverriding/regressions/576621/test.il#L10), `C2::M1` provides an override for `C1::M3` (which says the method body now comes from the virtual method `C2::M1`) which comes from a different vtable slot.

```
.class public C1
{
   .method public   virtual instance int32 M1()
   {
      ldc.i4 1
      ret
   }
   .method public   virtual instance int32 M3()
   {
      ldc.i4 3
      ret
   }
}

.class public C2 extends C1
{
   .method public   virtual instance int32 M3()
   {
      ldc.i4 4
      ret
   }
   .method public virtual instance int32 M1()
   {
    .override C1::M3
      ldc.i4 5
      ret
   }
}
```

4 years agoChange ArchiveTest reads to FixArchiveTests (#511)
Viktor Hofer [Wed, 4 Dec 2019 18:58:24 +0000 (19:58 +0100)]
Change ArchiveTest reads to FixArchiveTests (#511)

With 1d5de1533ad35b39f776701c4d22b68a3def2dd8, the ArchiveTest property
was removed. This fixes the remaining places where the old property is
still read. Additionally this introduces a new property `IgnoreForCI`
which is consistent with the xunit trait to skip the whole assembly for
CI testing.

4 years agoAllow FPU flag override (#471)
Sinan Kaya [Wed, 4 Dec 2019 18:20:00 +0000 (13:20 -0500)]
Allow FPU flag override (#471)

Command line to build for vfpv3-d16 ARM Cortex-5:

./build.sh -cross -arm -cmakeargs -DCLR_ARM_FPU_CAPABILITY=0x3 -cmakeargs -DCLR_ARM_FPU_TYPE=vfpv3-d16

Fixes https://github.com/dotnet/coreclr/issues/17043

4 years agoFix regression with manifest table: do not write entries that are already in the...
Fadi Hanna [Wed, 4 Dec 2019 15:06:30 +0000 (07:06 -0800)]
Fix regression with manifest table: do not write entries that are already in the list of assembly refs (#500)

4 years ago[master] Update dependencies from dotnet/arcade Microsoft/vstest (#398)
dotnet-maestro[bot] [Wed, 4 Dec 2019 14:50:15 +0000 (15:50 +0100)]
[master] Update dependencies from dotnet/arcade Microsoft/vstest (#398)

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

- Microsoft.NET.Test.Sdk - 16.5.0-preview-20191202-02

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

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

* Remove manually specified package test TFMs

4 years agoSystem.NET Powershell Deployment scripts. (#501)
Erhan Atesoglu [Wed, 4 Dec 2019 03:01:59 +0000 (19:01 -0800)]
System.NET Powershell Deployment scripts. (#501)

This is a first commit of self contained PowerShell scripts in the Deployment directory.

4 years agofixed VirtualMemoryLogging::logRecords overflow (#308)
Qin Li [Tue, 3 Dec 2019 23:23:10 +0000 (15:23 -0800)]
fixed VirtualMemoryLogging::logRecords overflow (#308)

when VirtualMemoryLogging::recordNumber increments from LONG_MAX,
it became negative number, and the result of i % MaxRecords became
a number from -127 to 0.

When that happens we will ovewrite CRITICAL_SECTION virtual_critsec
which are stored in bss right before logRecords with garbage data.
Then most likely the process will have a GC hang with one or more
GC threads stuck trying to enter or leave critical section.

The fix is to ensure ULONG value are passed to modulo operation.

4 years agoInitial live-live CI pipeline (#294)
Tomáš Rylek [Tue, 3 Dec 2019 22:40:00 +0000 (23:40 +0100)]
Initial live-live CI pipeline (#294)

Initial changes towards combined live testing of the runtime subrepos

4 years agoMake Crossgen2 tests run daily (#482)
Sergiy Kuryata [Tue, 3 Dec 2019 22:29:14 +0000 (14:29 -0800)]
Make Crossgen2 tests run daily (#482)

4 years agoFix broken links in CONTRIBUTING.md documentation (#488)
Thomas Gassmann [Tue, 3 Dec 2019 21:25:21 +0000 (22:25 +0100)]
Fix broken links in CONTRIBUTING.md documentation (#488)

There were some broken links in the contributing docs, probably caused
by the repo consolidation.

4 years agostabilize Copy_LargeMultiDimensionalArray test (#484)
Tomas Weinfurt [Tue, 3 Dec 2019 20:07:58 +0000 (12:07 -0800)]
stabilize Copy_LargeMultiDimensionalArray test (#484)

4 years agoremove one more curl leftover (#481)
Tomas Weinfurt [Tue, 3 Dec 2019 19:15:43 +0000 (11:15 -0800)]
remove one more curl leftover (#481)

4 years agoMerge pull request #470 from wfurt/ssl_renego
Tomas Weinfurt [Tue, 3 Dec 2019 18:24:37 +0000 (10:24 -0800)]
Merge pull request #470 from wfurt/ssl_renego

improve renegotiation ssl tests

4 years agoFix `genFreeLclFrame` for arm32 when using CIL jmp. (#369)
Sergey Andreenko [Tue, 3 Dec 2019 18:12:39 +0000 (10:12 -0800)]
Fix `genFreeLclFrame` for arm32 when using CIL jmp. (#369)

* Add a repro test.

* Fix `genJmpCallArgMask` for multireg arguments.

* Start actually using result of `genJmpCallArgMask`.

* GC

* Add a comment about `intRegState.rsCalleeRegArgMaskLiveIn`.

* always use `REG_R12` as our temp reg.`

Only one statement can be true:
1) There are cases where R12 can't be used and these cases were missed in the previous version, because we never excluded it from `grabMask`. That means the previous version had a bug;
2) R12 is always available and can always be used as a temp here.

* GC.

* add more info about the test failure.

* Update the header.

4 years agoDeterminism fixes (#306)
Anubhav Srivastava [Tue, 3 Dec 2019 17:30:14 +0000 (09:30 -0800)]
Determinism fixes (#306)

* More determinism fixes.

* Address PR comments. Replace lock in GetILBytes with Interlocked.CompareExchange. Remove comment saying that ILCache would eventually be removed. Fix ModuleToIndex not adding all assemblies.

* Add determinism test that compiles CORE_ROOT with two seeds. Fix nit in ManifestMetadataTableNode.

4 years agofeedback from reviewe
wfurt [Tue, 3 Dec 2019 16:45:00 +0000 (08:45 -0800)]
feedback from reviewe

4 years agoAddress review feedback from the dominator tree PR (#348)
mikedn [Tue, 3 Dec 2019 16:08:11 +0000 (18:08 +0200)]
Address review feedback from the dominator tree PR (#348)

4 years agoAnnotate System.IO.FileSystem.Watcher for nullable reference types (#456)
Stephen Toub [Tue, 3 Dec 2019 15:28:54 +0000 (10:28 -0500)]
Annotate System.IO.FileSystem.Watcher for nullable reference types (#456)

4 years agoStop throwing exception in TimeZoneInfo POSIX parsing (#458)
Eric Erhardt [Tue, 3 Dec 2019 05:01:59 +0000 (23:01 -0600)]
Stop throwing exception in TimeZoneInfo POSIX parsing (#458)

IsDaylightSavingTime_CasablancaMultiYearDaylightSavings fails on rhel.8

When parsing the tzdata POSIX string that contains an 'n' Julian date, we are currently throwing an exception, and then falling back to a TimeZoneInfo without DST enabled. However, this is a mistake because there are other DST transitions that were read from the tzdata file that are valid and usable. We shouldn't be throwing that information away.

So instead, we now skip the POSIX string if we detect an unsupported 'n' Julian date, and just use the last transition as the AdjustmentRule for all the DateTimes in the future. This way we can still make DST determinations correctly for some DateTimes.

Fix https://github.com/dotnet/corefx/issues/42192

4 years agoFix inlining issue for raw pinvoke calls when using debug builds (#455)
Fadi Hanna [Tue, 3 Dec 2019 04:56:43 +0000 (20:56 -0800)]
Fix inlining issue for raw pinvoke calls when using debug builds (#455)

* Fix inlining issue for raw pinvoke calls when using debug builds

* Do not generate PInvoke stubs for cross-module pinvokes outside of version bubble

4 years agoimprove renegotiation ssl tests
wfurt [Tue, 3 Dec 2019 04:36:13 +0000 (20:36 -0800)]
improve renegotiation ssl tests

4 years agoMerge pull request #459 from mateoatr/issue16162
Mateo Torres-Ruiz [Tue, 3 Dec 2019 04:00:51 +0000 (20:00 -0800)]
Merge pull request #459 from mateoatr/issue16162

Run app that has a directory that ends in a dot (fix [#16162](https://github.com/dotnet/coreclr/issues/16162)).

4 years agoStart using local address nodes in the JIT frontend (#305)
mikedn [Tue, 3 Dec 2019 03:03:16 +0000 (05:03 +0200)]
Start using local address nodes in the JIT frontend (#305)

* Add GenTreeLclFld getters/setters

Also change the offset type to uint16_t since the emitter does not support
offsets larger than 65535. The freed space will later be used to store a
class layout number to support struct typed GenTreeLclFld nodes.

* Track field sequences in LocalAddressVisitor

* Generate LCL_(VAR|FLD)_ADDR nodes in LocalAddressVisitor

This starts the process of moving away from ADDR nodes by generating
some LCL_(VAR|FLD)_ADDR nodes in LocalAddressVisitor. For now, these
nodes are generated in only 2 specific cases:
 - when a local address is a call argument
 - when a local address is the RHS of an assignment
There's not a lot going on with call arguments that are addresses and
the lack of some kind of forward substituion in the JIT means that the
RHS of an assignment will not move under a different node. The result
is that very few other changes are needed to support local address
nodes at this time. In particular, this avoids the need to change the
myriad of "is local address" checks and the GTF_GLOB_REF propagation
to indirections involving address exposed variables.

* Add TODO-ADDR comments

4 years agoFix a link mistake in CONTRIBUTING.md (#468)
LeaFrock [Tue, 3 Dec 2019 02:18:05 +0000 (10:18 +0800)]
Fix a link mistake in CONTRIBUTING.md (#468)

The link of api-review-process.md in the doc should be updated.

Fix #443

4 years agoRemove *.* normalization
mateoatr [Tue, 3 Dec 2019 00:31:44 +0000 (00:31 +0000)]
Remove *.* normalization