platform/upstream/dotnet/runtime.git
4 years agoR2RDump changes to allow separation of presentation from parsing (#267)
Andrew Au [Mon, 16 Dec 2019 23:13:53 +0000 (15:13 -0800)]
R2RDump changes to allow separation of presentation from parsing (#267)

4 years ago Annotate System.Collections.Immutable for nullable (#367)
buyaa-n [Mon, 16 Dec 2019 21:09:45 +0000 (13:09 -0800)]
  Annotate System.Collections.Immutable for nullable (#367)

* Annotate System.Collections.Immutable for nullable

4 years agoJIT: detect address of field as an invariant inlining arg (#845)
Andy Ayers [Mon, 16 Dec 2019 20:03:15 +0000 (12:03 -0800)]
JIT: detect address of field as an invariant inlining arg (#845)

Update the check for arg invariance to include addresses of fields in local
structs. This allows the inliner to directly substitute more arguments into
the body of the inlinee.

Resolves dotnet/coreclr#27630.

4 years agoStart generating LCL_FLDs in LocalAddressVisitor (#737)
mikedn [Mon, 16 Dec 2019 18:49:09 +0000 (20:49 +0200)]
Start generating LCL_FLDs in LocalAddressVisitor (#737)

* Start generating LCL_FLDs in LocalAddressVisitor

* Fix broken vararg offset computation

Since it's subtracted the local field offset also need to be subtracted so it actually ends up being added as needed.

* Introduce array/index temps for LCL_FLDs

Previously fgMorphArrayIndex was always creating temporaries for array/index FIELD trees. Since now LCL_FLDs are created before fgMorphArrayIndex this preserves the existing behavior.

* CR feedback

* Fix incorrect field sequence type check

* Fix GetTail formatting

4 years agoRemove usage of TargetGroup where possible (#899)
Viktor Hofer [Mon, 16 Dec 2019 18:36:55 +0000 (19:36 +0100)]
Remove usage of TargetGroup where possible (#899)

In non-infra related paths we don't need to check on TargetGroup anymore
and can instead use the well-known TargetFramework property.

4 years agoMerge pull request #257 from tannergooding/float-format
Tanner Gooding [Mon, 16 Dec 2019 15:48:36 +0000 (07:48 -0800)]
Merge pull request #257 from tannergooding/float-format

Fixing Dragon4 to take unbiased rounding into account.

4 years agoUse default setting for UseSharedCompilation (#900)
Viktor Hofer [Mon, 16 Dec 2019 15:30:02 +0000 (16:30 +0100)]
Use default setting for UseSharedCompilation (#900)

UseSharedCompilation now defaults to true in the Microsoft.Net.Compilers.Toolset package. Previously we used the deprecated Microsoft.Net.Compilers package in which the property defaults to false.

4 years agoAdd SkipLocalsInitAttribute (#454)
Andy Gocke [Sun, 15 Dec 2019 23:13:46 +0000 (15:13 -0800)]
Add SkipLocalsInitAttribute (#454)

This attribute supports a new compiler feature that allows a user to
specify that they don't want to emit the CLR `.locals init` portion of
the header in methods. This can sometimes produce a performance
improvement but, in some cases, can reveal uninitialized memory to the
application.

Fixes https://github.com/dotnet/corefx/issues/29026

4 years agoAdjusting `GetCurrentProcessorId` caching to different environments. (#467)
Vladimir Sadov [Sun, 15 Dec 2019 19:43:39 +0000 (11:43 -0800)]
Adjusting `GetCurrentProcessorId` caching to different environments. (#467)

* Adjusting `GetCurrentProcessorId` caching rate based on relative performance of `GetCurrentProcessorNumber` and `TheadStatic`

4 years agoAdding a regression test for corefx#42576
Tanner Gooding [Fri, 22 Nov 2019 23:33:41 +0000 (15:33 -0800)]
Adding a regression test for corefx#42576

4 years agoFixing Dragon4 to take unbiased rounding into account.
Tanner Gooding [Thu, 21 Nov 2019 20:39:03 +0000 (12:39 -0800)]
Fixing Dragon4 to take unbiased rounding into account.

4 years agoUse wildcard to resolve S.P.CoreLib from CoreCLRArtifacts (#878)
Santiago Fernandez Madero [Sun, 15 Dec 2019 00:36:43 +0000 (18:36 -0600)]
Use wildcard to resolve S.P.CoreLib from CoreCLRArtifacts (#878)

* Use wildcard to resolve S.P.CoreLib from CoreCLRArtifacts

* Probe 2 paths instead

4 years agoRemove PackageReference to cijobs tool used to add it to Core_Ro… (#746)
Jeremy Koritzinsky [Sat, 14 Dec 2019 23:06:20 +0000 (15:06 -0800)]
Remove PackageReference to cijobs tool used to add it to Core_Ro… (#746)

* Remove PackageReference to cijobs tool.

* Remove jit-dasm and jit-analyze package references per feedback.

* Remove test_runtime.csproj and move the copying of the UCRT files to Core_Root to test_dependencies.csproj.

4 years agoFix incorrect merge of my framework crossgenning fix with Jeremy's local live-live...
Tomáš Rylek [Sat, 14 Dec 2019 22:38:17 +0000 (23:38 +0100)]
Fix incorrect merge of my framework crossgenning fix with Jeremy's local live-live change (#879)

I found out that in two places my fix for crossgenning the framework
incorrectly merged with Jeremy's live-live change. In particular,
as I was moving around the steps for patching CORE_ROOT with explicit
CoreFX while Jeremy was deleting them, my changes inadvertently
resurrected two such deleted sections.

Thanks

Tomas

4 years agoRemoving "netcoreapp" and "netfx" TargetGroup (#457)
Anirudh Agnihotry [Sat, 14 Dec 2019 20:22:29 +0000 (12:22 -0800)]
Removing "netcoreapp"  and "netfx" TargetGroup (#457)

* netcoreapp -> netcoreapp5.0 in .sln files

* netcoreapp; -> netcoreapp5.0;  , netcoreapp- to netcoreapp5.0-

* netcoreapp- -> netcoreapp5.0 in .csproj

* 'netcoreapp -> 'netcoreapp5.0 in .csproj

* done with libraries sub folder

* missed semicolon

* minor changes

* netcoreapp -> netcoreapp5.0 in some extra files

* vNext target variable in configurations.props

* netcoreapp => netcoreapp5/0 in some other .props file

* netcoreapp -> vnext in .csproj

* making the netcorepap framework switch work

* fixing sendToHelix and linux build

* TargetFrameworkVNext -> netcoreappCurrent

* case correct netcoreappcurrent

* fixing send to helix zip path

* netfx -> net472 in .sln

* netfx; -> net472; in .props

* netfx- -> net472- in .props

* netfx - -> net472- in .csproj

* 'netfx-> 'net472 in .csproj

* netfx -> net472 manual change

* fixing ci build for netfx

* Not trying to change the global property

* Fixing build failure due to master changes in net https tests

* adding documentaiton and fixing filtering

* netcoreapp -> netcore5.0 in py file

* changing the path to use netcoreapp5.0 version

* feedback and override corefx path corrected in installers

* remaing netcoreapp5.0 changes done

* netcoreapp-> netcoreapp5.0 after live builds

* net472 -> netframeworkcurrent

4 years agoFix crossgenning of framework libraries on Windows (#747)
Tomáš Rylek [Sat, 14 Dec 2019 19:39:04 +0000 (20:39 +0100)]
Fix crossgenning of framework libraries on Windows (#747)

1) Fix crossgenning of framework libraries on Windows;

2) Enable crossgenning S.P.C with CG2, remove obsolete CoreCLR logic;

3) Fix framework build with legacy Crossgen due to a typo in my change;

4) The ordering of steps in build-test was incorrect - we need to
patch CORE_ROOT with live-live libraries build before Crossgenning
the framework therein, otherwise weird things happen (and the result
is incorrect in any case).

5) Removed misplaced >nul 2>nul - we agreed with JanV that it's
better to not throw diagnostic information away.

6) Applied JanV's suggestion for improvement - using a tighter filter
for reference assemblies - Microsoft.*.dll / System.*.dll /
mscorlib.dll instead of just *.dll that ended up picking tons of
garbage like clrjit.dll and the various Win32 API contracts, both
in the build-test script and in CLRTest.Crossgen.targets.

Thanks

Tomas

4 years agoFix JitEECallTimingInfo bit rot (#868)
Bruce Forstall [Sat, 14 Dec 2019 06:17:13 +0000 (22:17 -0800)]
Fix JitEECallTimingInfo bit rot (#868)

Added new JIT/EE interface functions. Moved some around so
the order of functions is exactly the same order as in the
corinfo.h header file.

This functionality can be enabled by:
1. Changing the definition of `MEASURE_CLRAPI_CALLS` in jit.h
from `0` to `1`.
2. Building Release on x86 or x64 (arm32 and arm64 are currently unsupported)
3. Set environment variables:
```
set COMPlus_JitTimeLogFile=time.txt
set COMPlus_JitEECallTimingInfo=1
```
4. Run a program.

The `time.txt` file will contain a JIT phase time line item "CLR API calls"
for the sum total of all JIT-EE function call cost, plus a per-API breakdown
for each called API with number of calls, total/max/average time, and percentage
of total ABI call cost.

4 years agoIgnore method name when doing `mcs -removeDup` (#602)
Bruce Forstall [Sat, 14 Dec 2019 06:15:37 +0000 (22:15 -0800)]
Ignore method name when doing `mcs -removeDup` (#602)

Thus, methods with different names but otherwise are identical will
match and only one will be retained.

This improves both Checked and Release, and fixes the Release
build removeDup regression introduced in #548.

4 years agoFix enterprise testing pipeline due to live-live changes (#843)
David Shulman [Sat, 14 Dec 2019 02:14:11 +0000 (18:14 -0800)]
Fix enterprise testing pipeline due to live-live changes (#843)

Revised script to build the libraries subset due to changes with CoreCLR and live-live build.

4 years agoClarify Lowering in ryujit-overview (#859)
Carol Eidt [Fri, 13 Dec 2019 23:54:27 +0000 (15:54 -0800)]
Clarify Lowering in ryujit-overview (#859)

4 years agotiny comment typo. (#846)
yowl [Fri, 13 Dec 2019 21:04:26 +0000 (16:04 -0500)]
tiny comment typo. (#846)

4 years agoComment on why s_createProcessLock exists in Process.Windows.cs (#838)
Stephen Toub [Fri, 13 Dec 2019 21:02:54 +0000 (16:02 -0500)]
Comment on why s_createProcessLock exists in Process.Windows.cs (#838)

4 years agoClarify Lowering in ryujit-overview (#844)
Carol Eidt [Fri, 13 Dec 2019 20:55:21 +0000 (12:55 -0800)]
Clarify Lowering in ryujit-overview (#844)

4 years agoFix bug with type loadability validation (#841)
Fadi Hanna [Fri, 13 Dec 2019 20:00:48 +0000 (15:00 -0500)]
Fix bug with type loadability validation (#841)

The check had a small typo: .IsRuntimeDeterminiedType instead of .IsRuntimeDeterminedSubtype

4 years agoRevert workarounds for IEquatable and nullable (#795)
Stephen Toub [Fri, 13 Dec 2019 18:51:34 +0000 (13:51 -0500)]
Revert workarounds for IEquatable and nullable (#795)

Roslyn now special-cases IEquatable to be contravariant for nullable, so we can remove our workarounds.

4 years agoFileSecurity/DirectorySecurity should support long paths (#647)
Carlos Sanchez Lopez [Fri, 13 Dec 2019 18:35:15 +0000 (10:35 -0800)]
FileSecurity/DirectorySecurity should support long paths (#647)

* FileSecurity/DirectorySecurity should support long paths

* Address danmosemsft suggestions

* Address unit test danmosemsft suggestions

* Address test failures in NetFX

* addressing suggestions

4 years agoLocal live-live builds (#494)
Jeremy Koritzinsky [Fri, 13 Dec 2019 18:30:58 +0000 (10:30 -0800)]
Local live-live builds (#494)

* Convert libraries and installer to use a live CoreCLR.

* Installer uses a live libraries build for DLLs.

* Remove newline in path.

* Enable live-live builds to build required live dependencies when the dependencies are in the building subset/subset category.

* Update path to coreclr output.

* Fix typo in coreclr.proj.

* Remove last usage of CoreCLRPDBOverridePath.

* Update path of binplaced runtime to include OS and Arch.

* Fix typo in coreclr/tests/src/Common/Directory.Build.targets.

* Restore CoreFX shared framework from live build for CoreCLR test dependencies.

* Remove dependency on Microsoft.NETCore.CoreCLR.TestDependencies package.

* Enable referencing live builds of the OOB libraries by temporarily adding a new BinplaceConfiguration. Update test_dependencies in the CoreCLR tree to use that to restore OOB libraries.

* Remove reference to System.Drawing.Common from NETClientPrimitives (the reference is only needed at runtime and Core_Root already has System.Drawing.Common).

* Remove package-based checked CoreCLR + CoreFX test runs. In the live-live world, we'll run this test configuration by pointing the CoreFX test host build step at the artifacts from a checked CoreCLR build (possible in both local and CI builds).

* Only copy the UCRT on Windows.

* CoreCLR test build now builds against a live libraries sfx+oob ref assembly set.

* Override GetCorePackagePaths target to not reference unused packages (breaks the live-live build on a clean system).

* Remove live references to Microsoft.NETCore.Platforms now that it seems to be unneeded since the SDK now packages a RID graph. Use the live RID graph in test_runtime.csproj where we may actually be looking for the live RID graph.

* Fix coreclr build arg generation bug that was causing build failures.

* Remove references to Microsoft.NETCore.Platforms outside of package references from the installers.

* Fix problems in installer build in live-live that were found from a clean build.

* Remove unused dependency on Microsoft.NETCore.Targets.

* Fix Microsoft.NETCore.App -> Microsoft.NETCore.Platforms dependency.

* Remove Microsoft.NETCore.Targets version from Versions.props.

* Remove unused deps.csproj file that was the last dependency on the packaged Microsoft.NETCore.Platforms package.

* Fix OSGroup calculation for dependent projects off-Windows.

* Fix construction of Microsoft.NETCore.App.Internal package.

* Remove unneeded CoreRun copying.

* Serialize subsets that have dependencies across subset groups. Don't use `<MSBuild />` tasks to rebuild subsets since we don't want to rebuild projects multiple times (coreclr was being built multiple times).

* Cleanup from PR feedback.

* Only copy libraries outputs to artifacts/bin/runtime.

* Use the netcoreapp output directories for OOB-included references to libraries outputs.

* Remove references to deleted old corefx override setup.

* First pass to get new runtime pipeline using the local live-live infra (coreclr+libraries only for now).

* Don't generate layout during test native build.

* Fix ref assembly default binplacing for netcoreapp.

* Remove msbuild goo around importing Subsets.props and Directory.Build.props only once each. This goo isn't needed anymore.

* Fix disabling of binplacing for the target vertical to exclude only runtime.depproj and not exclude winrt.depproj.

* Fix libraries test build.

* Copy all paths used by the "ResolveLibrariesFromLocalBuild" target to publish from libraries build.

* For shims, reference the System.Private.CoreLib directly from CoreCLR outputs instead of through runtime.depproj.

* Hard-code the libraries configuration to release in coreclr test builds.

* Resolve ReferenceFromRuntime items directly from the CoreCLR output instead of via the runtime.depproj project.

* Fix test host generation. Fix running the XML Serialization generator as part of libraries test build.

* Fix XmlSerializer.Generator.Tests again.

* Don't look for CoreCLR files when using ReferenceFromRuntime and not using netcoreapp.

* Crossgen-comparison should depend on a libraries build so we can populate Core_Root.

* Add job dependency on libraries build from run-test-job to ensure we wait correctly. Otherwise we might have a race since the managed test build might depend on one libraries build while the test run depends on another.

* Only resolve coreclr files from local build when targetting netcoreapp.

* Add steps to download libraries build for crossgen-comparison.

* Revive old method of resolving references to the runtime for building against old netcoreapp (ie netcoreapp 3.0). Fix correctly passing along aliases info.

* Fix failing AllConfigurations leg that was due to the netcoreapp runtime.depproj getting binplaced in the runtime output folder.

* Update eng/liveBuilds.targets

Co-Authored-By: Davis Goodin <dagood@users.noreply.github.com>
* HostArch->BuildArchitecture and share with installer.

* Fix format nits.

* Update YAML variable name.

* Remove setting property to import liveBuilds.targets.

* Upload docs and packages folders from libraries build

* Inclue doc files in the Microsoft.NETCore.App.Internal package

* Try making the runtime-installer pipeline live-live using the build-coreclr-and-libraries-job template.

* Update artifacts download paths and msbuild properties for installer build.

* Mark cross-component files as native.

* Remove FrameworkPackageName to  remove error about missing $(FrameworkPackageName).versions.txt file that other shared frameworks also don't generate.

* Restore GetFilesFromPackageResolve override.

* Don't clean the unpack folder for the libraries download. It wipes out the CoreCLR download.

* Make sure that we restore the WinRT targetting pack during the installer build.

* Add libraries package directory to RestoreSources for the case where the LibrariesConfiguration is different from the installer build configuration.

* Don't pass OfficialBuildId unless it is an official build. We want to be consistent with the libraries build so our package versions match.

* Give default value for OfficialBuildArg variable

* Ensure installer tests can see the libraries-generated packages. Fix typo in TargetPath for CoreCLR assets (runtime instead of runtimes).

Fix paths for CoreCLR cross-target files as well as crossgen to place them in the correct directories.

* Add back FrameworkPackageName to get the partial platform manifest to generate.

4 years agoRemove TKey : notnull constraint from `IDictionary<TKey, TValue>` (#793)
Stephen Toub [Fri, 13 Dec 2019 17:16:55 +0000 (12:16 -0500)]
Remove TKey : notnull constraint from `IDictionary<TKey, TValue>` (#793)

* Remove TKey : notnull constraint from `IDictionary<TKey, TValue>`

The interface explicitly documents that some implementations may choose to support null keys.

* Remove TKey : notnull constraint from `IReadOnlyDictionary<TKey, TValue>`

* Remove notnull constraints from extension methods on those interfaces

4 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20191212.1 (#835)
dotnet-maestro[bot] [Fri, 13 Dec 2019 17:14:49 +0000 (11:14 -0600)]
Update dependencies from https://github.com/dotnet/arcade build 20191212.1 (#835)

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

4 years agoInvoke dotnet.cmd/sh from right location in py (#823)
Viktor Hofer [Fri, 13 Dec 2019 09:28:29 +0000 (10:28 +0100)]
Invoke dotnet.cmd/sh from right location in py (#823)

4 years agoFix the gc layout algorithm to not double count byref (#814)
Andrew Au [Fri, 13 Dec 2019 03:22:18 +0000 (19:22 -0800)]
Fix the gc layout algorithm to not double count byref (#814)

4 years agoMiscellaneous performance fixes for Crossgen2 (#758)
Anubhav Srivastava [Fri, 13 Dec 2019 03:14:19 +0000 (19:14 -0800)]
Miscellaneous performance fixes for Crossgen2 (#758)

* Miscellaneous performance fixes.
Create comparison functions for Enum (Enum.CompareTo boxes since it takes an Object).
In ModuleToken, use the existing MetadataReader instead of making a new one each time.
Use Dictionary instead of ImmutableDictionary in CoreRTNameMangler to reduce allocations.
In CopiedFieldRvaNode, only read as much of the section as we need to copy.

4 years agoCheck method can compile before rooting (#729)
Fadi Hanna [Fri, 13 Dec 2019 03:10:29 +0000 (22:10 -0500)]
Check method can compile before rooting (#729)

* Check if a method should be skipped from compilation, and if so, do not root it.

* Harden various signature nodes against type system exceptions

Use existing validation API in CompilerTypeSystemContext to validate types on the various signature-emitting nodes: if it throws a
TypeSystem exception due to a malformed type/method, the exception will propagate, get handled, and cause the current
method being compiled to abort and be skipped (otherwise, the compiler will crash while emitting these problematic signatures)

4 years agoAdd more path exclusions to subsets (#828)
Santiago Fernandez Madero [Fri, 13 Dec 2019 03:02:08 +0000 (21:02 -0600)]
Add more path exclusions to subsets (#828)

4 years ago[master] Update dependencies from dotnet/arcade Microsoft/vstest (#790)
dotnet-maestro[bot] [Fri, 13 Dec 2019 00:48:29 +0000 (01:48 +0100)]
[master] Update dependencies from dotnet/arcade Microsoft/vstest (#790)

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

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

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

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

4 years agoUpdate Contributing.MD links (#815)
dhusemann [Fri, 13 Dec 2019 00:47:06 +0000 (18:47 -0600)]
Update Contributing.MD links (#815)

* Update Contributing.MD link for misspelled link

Updated link docs/project/api-review-process.md so 404 error will be corrected.

* update Contributing.MD links

updated coreclr to run time for remainder of links.

4 years agoAdded OS and Bit Specific tags to accordingly .csproj files. (#637)
Ivan Diaz Sanchez [Fri, 13 Dec 2019 00:40:00 +0000 (16:40 -0800)]
Added OS and Bit Specific tags to accordingly .csproj files. (#637)

4 years agoJIT: fix spill logic for local structs (#797)
Andy Ayers [Fri, 13 Dec 2019 00:27:53 +0000 (16:27 -0800)]
JIT: fix spill logic for local structs (#797)

If we're appending an assignment whose LHS is is a location within a local
struct, we need to spill all references to that struct from the eval stack.

Update the existing logic for this to handle the case where the LHS is a field
of a local struct, and the field is updated by unusual means (here, `initobj`).

Fixes #764.

4 years agoSupport targeting ARM64 in crossgen2 (#775)
Anton Lapounov [Thu, 12 Dec 2019 23:21:58 +0000 (15:21 -0800)]
Support targeting ARM64 in crossgen2 (#775)

With these changes compilation for ARM64 finishes successfully and generates a R2R image.
 There are some execution issues that need addressing.

4 years agoFix the LockFreeReaderHashtable (#777)
David Wrighton [Thu, 12 Dec 2019 22:59:46 +0000 (14:59 -0800)]
Fix the LockFreeReaderHashtable (#777)

Fix the LockFreeReaderHashtable
- Communication of the presence of an expanding hashtable was very close to not safe
  - Changed to aggressively use Interlocked operations instead
- If there were 3 threads, 1 which was expanding (thread A), 1 which failed an insert and was waiting on an expand(thread B), and a third which did a lookup for the item in process of insert on thread B, the table would find the item in process of insertion
  - Fixed by moving to a scheme where insertion didn't actually write in the value until it was confirmed that that spot was the right place to insert, and the value would be preserved into an expansion
  - In order to acquire a sentinel for scenarios without requiring the explicit definition of one, the first item inserted is used as the sentinel. It simply exists outside of the hashtable in a side variable

4 years agoFixes to static field offsets (#699)
Fadi Hanna [Thu, 12 Dec 2019 22:38:16 +0000 (17:38 -0500)]
Fixes to static field offsets (#699)

* Fixes to static field offsets

1) Stop counting offsets for RVA fields (this messes up the offsets of all statics)
2) Small fix to the size computation of nonGC statics (we were counting some GC statics as non-gc statics)
3) Bringing a small optimization we had with crossgen1 (safe static byref return)
4) Tiny micro-optimization: avoid allocation while looking up a field in one of the Typesystem hashtables (introduced with determinism work)

* Count the sizes of RVA statics in module field layout to match coreclr TypeSystem

4 years agoUpdate RyuJIT documentation (#755)
Bruce Forstall [Thu, 12 Dec 2019 19:13:42 +0000 (11:13 -0800)]
Update RyuJIT documentation (#755)

* Update RyuJIT documentation

1. Convert links to reference new repo
2. Update various mostly stylistic things in the RyuJIT overview
3. Add more high-level strategy/steps statements to the RyuJIT porting guide

* Update for code review comments

4 years agoMerge pull request #769 from vcsjones/735-fix
Jeremy Barton [Thu, 12 Dec 2019 17:55:30 +0000 (09:55 -0800)]
Merge pull request #769 from vcsjones/735-fix

Preserve HResult for bad password in managed PKCS12 PAL

4 years agoLimit crossgen2 instantiating depth (#791)
Jan Vorlicek [Thu, 12 Dec 2019 17:24:12 +0000 (18:24 +0100)]
Limit crossgen2 instantiating depth (#791)

Two coreclr pri1 tests were causing the crossgen2 to run until all
memory was depleeted due to the fact that we were not limiting depth of
instantiations of methods and those tests had recursive instantiation.
An example taken from one of the tests is this:
```
private static T meth<T>(int v, T x)
{
   //Recursive generic
   return ((v >= 0) ? meth<Tuple<T, T>>(v - 1, new Tuple<T, T>(x, x)).Field0 : x);
}
```

This change fixes it by adding the instantiation depth check for
function calls. If the level of instantiation for any of the generic
parameters exceeds a preset value (currently 10, taken from old
crossgen), the caller is not compiled by crossgen2. Such a method will
be compiled at runtime by JIT instead.

4 years agoConsolidate NCL stress testing infrastructure (#700)
Eirik Tsarpalis [Thu, 12 Dec 2019 17:05:22 +0000 (19:05 +0200)]
Consolidate NCL stress testing infrastructure (#700)

4 years agoMake sure we tell the same lie to the JIT for default interface methods
Andrew Au [Thu, 12 Dec 2019 15:18:03 +0000 (07:18 -0800)]
Make sure we tell the same lie to the JIT for default interface methods

4 years agoSet azure pipelines variables based on changed paths (#748)
Santiago Fernandez Madero [Thu, 12 Dec 2019 14:17:37 +0000 (06:17 -0800)]
Set azure pipelines variables based on changed paths (#748)

* Set variables based on changed paths

* PR Feedback

* PR feedback

4 years agoHttpListener.Stop closes the request queue handle with CloseIoEx method (#684)
Alexander Nikolaev [Thu, 12 Dec 2019 12:22:09 +0000 (13:22 +0100)]
HttpListener.Stop closes the request queue handle with CloseIoEx method (#684)

Currently, if HttpListener.Stop is called while the other thread is blocked inside a synchronous GetContext cal, it has no effect because Stop cannot dispose the request queue handle. This is caused by a reference counting mechanism implemented in SafeHandle which prevents disposal of the native handle due to the following reason.

GetContext method invokes the native HttpReceiveHttpRequest to start listening for incoming requests. HttpReceiveHttpRequest is called through P/Invoke and accepts SafeHandle as a request queue handle. In such case, runtime injects a special call to SafeHandle.DangerousAddRef incrementing the ref counter to prevent an accidental disposal from the managed side. In general, it's a good safety measure, but in the given scenario it prevents SafeHandle.Dispose from actually closing the underlying OS handle thus GetContext gets blocked until a next request arrives.

To overcome this limitation, PR adds a call to CloseIoEx before invoking Dispose to close the request queue and unblock GetContext.
Fixes dotnet/corefx#28169

4 years agoAdded PerfScore support for Arm64 (#751)
Brian Sullivan [Thu, 12 Dec 2019 05:14:18 +0000 (21:14 -0800)]
Added PerfScore support for Arm64 (#751)

Based upon arm_cortex_a55_software_optimization_guide_v2.pdf

4 years agoImprove RegexOptions.Compiled codegen for ignoring case (in particular InvariantCultu...
Stephen Toub [Thu, 12 Dec 2019 04:33:27 +0000 (23:33 -0500)]
Improve RegexOptions.Compiled codegen for ignoring case (in particular InvariantCulture) (#714)

* Remove unused RegexCompiler helpers

* Fix FindFirstChar to update runtextpos in the case of failure

I introduced this in a previous PR; by not updating the position in the case of failure, we end up potentially retrying some of the same text repeatedly.

* Improve codegen for FindFirstChar

For the common case of left-to-right, we can use a span to improve the code gen, which helps when there are multiple characters until the start of the regex.

* Optimize IgnoreCase and InvariantCulture codegen

We can improve our codegen for EmiCallCharInClass by avoiding the need to call char.ToLower{Invariant} in a variety of situations.  If the character class is one for which we already generate a check that handles case appropriately (e.g. using char.IsDigit for \d), there's no need to generate a ToLower call, regardless of culture.  And if we're using InvariantCulture, we can build the invariance into our generated lookup table, which means we only actually need the ToLowerInvariant call if the input isn't ASCII and we have to fall back to doing an actual CharInClass call.

* Fix stale comments

* Use rem.un instead of rem for timeout check

When a timeout is set, we try to avoid lots of CheckTimeout calls by only doing the call once every 2048 occurrences.  That check is currently done with a signed % operation; the codegen code for an unsigned % operation is better, and that's all we need.  We also don't need to explicitly compare to 0, and can just use brtrue on the rem.un result.

* Fix stylistic issues cited in code reviews

- Renamed all RegexCompiler static fields to be consistently named after the fields they represent
- Renamed some methods that were using acronyms
- Renamed LocalBuilers to be named consistently after the fields they mirror, and also to use consistent suffixes
- Fixed some comments
- Removed use of Enum.HasFlag to be consistent with bit flags checks elsewhere

4 years agoUpdate nullability.md
Stephen Toub [Thu, 12 Dec 2019 02:21:23 +0000 (21:21 -0500)]
Update nullability.md

4 years agoUpdate nullability.md
Stephen Toub [Thu, 12 Dec 2019 02:04:55 +0000 (21:04 -0500)]
Update nullability.md

4 years agoAnnotate System.IO.FileSystem for nullable (#590)
buyaa-n [Wed, 11 Dec 2019 22:44:42 +0000 (14:44 -0800)]
Annotate System.IO.FileSystem for nullable  (#590)

Annotate System.IO.FileSystem for nullable

4 years agoClarifies the comment
Andrew Au [Wed, 11 Dec 2019 22:41:29 +0000 (14:41 -0800)]
Clarifies the comment

4 years agoKill a non-gc-type lclVar if it has a gc-type value (#679)
Carol Eidt [Wed, 11 Dec 2019 22:33:59 +0000 (14:33 -0800)]
Kill a non-gc-type lclVar if it has a gc-type value (#679)

* Kill a non-gc-type lclVar if it has a gc-type value

4 years agoMove dotnet.cmd/sh helper scripts into the repo root (#672)
Viktor Hofer [Wed, 11 Dec 2019 20:01:58 +0000 (21:01 +0100)]
Move dotnet.cmd/sh helper scripts into the repo root (#672)

* Move dotnet helper scripts to repo root

* Don't swallow InitializeDotNetCli output

* Use temporary file to store sdk location

To avoid a nested process chain in which the inner process then invokes
the host, we instead create a temporary file to store the sdk location.

4 years agoVerified the null checking in the extension methods. (#316)
Erhan Atesoglu [Wed, 11 Dec 2019 18:27:44 +0000 (10:27 -0800)]
Verified the null checking in the extension methods. (#316)

* Verified the null checking in the extension methods.

* Apply suggestions from code review

Co-Authored-By: Carlos Sanchez Lopez <1175054+carlossanlop@users.noreply.github.com>
* Updated Test to check for named parameters.  Removed additional braces

* This fixes null checks in NetFX.

Adds equivalent null checks to NetFX.
Adds back Allman style braces.

4 years agoUpdate SuperPMI readme (#723)
Bruce Forstall [Wed, 11 Dec 2019 18:01:11 +0000 (10:01 -0800)]
Update SuperPMI readme (#723)

* Update SuperPMI readme

Convert it to Markdown and increase the amount of detail describing
the collection process.

* Fix relative link

* Update links, add statement about publishing resultant files.

* More updates

4 years agoFix corehost RID generation logic for versionless distros (#318)
Krzysztof Bogacki [Wed, 11 Dec 2019 17:41:06 +0000 (18:41 +0100)]
Fix corehost RID generation logic for versionless distros (#318)

4 years agoConvert Win32 statuses to HResults.
Kevin Jones [Wed, 11 Dec 2019 17:01:43 +0000 (12:01 -0500)]
Convert Win32 statuses to HResults.

4 years agoIncrease the heuristic fetchDepth value to 20 for the combined repo (#750)
Tomáš Rylek [Wed, 11 Dec 2019 15:58:09 +0000 (16:58 +0100)]
Increase the heuristic fetchDepth value to 20 for the combined repo (#750)

4 years agoMake sure we tell the same lie to the JIT for default interface methods
Andrew Au [Wed, 11 Dec 2019 06:01:44 +0000 (22:01 -0800)]
Make sure we tell the same lie to the JIT for default interface methods

4 years agoFix Emscripten build of libraries (#762)
Jan Vorlicek [Wed, 11 Dec 2019 15:38:52 +0000 (16:38 +0100)]
Fix Emscripten build of libraries (#762)

Updating the libraries native build to use native cmake support for the
position independent code has broken emscripten build. This change
disables that for Emscripten.

4 years agoFixed a typo. (#763)
Medeni Baykal [Wed, 11 Dec 2019 14:46:53 +0000 (15:46 +0100)]
Fixed a typo. (#763)

4 years agoDocument caution regarding AdvanceTo's side effect (#691)
Andrew Arnott [Wed, 11 Dec 2019 14:46:29 +0000 (07:46 -0700)]
Document caution regarding AdvanceTo's side effect (#691)

After calling `PipeReader.AdvanceTo`, the `ReadResult.Buffer` property's backing data is recycled, leading to indeterministic changes to not only the content but its `Length` property. This isn't particular predictable as a consumer and the docs didn't make it clear either.

4 years agoUse invalid password hresult in managed p12 reader
Kevin Jones [Wed, 11 Dec 2019 14:42:32 +0000 (09:42 -0500)]
Use invalid password hresult in managed p12 reader

The managed PKCS12 reader was not setting the HResult on exceptions
when the MAC of the PKCS12 failed (typically the result of a bad password).
This made the CryptographicException indistinguishable from other
PKCS12 CryptographicExceptions without relying on the exception message.

Some other applications used the HResult to determine if the PKCS12
could not be read due to an invalid password.

4 years agoSwitch over stress runs to live-live mode (#697)
Tomáš Rylek [Wed, 11 Dec 2019 10:18:38 +0000 (11:18 +0100)]
Switch over stress runs to live-live mode (#697)

4 years agoAdded tests to cover all branches of JsonNodeOptions (#436)
Anton Landor [Wed, 11 Dec 2019 07:59:32 +0000 (08:59 +0100)]
Added tests to cover all branches of JsonNodeOptions (#436)

* Added tests to cover all branches of JsonNodeOptions.

* Created a test class for JsonNodeOptions and moved relevant tests to it. Also implemented tests for CommentHandling and AllowTrailingCommas options.

* Added tests for default values. Moved JsonNodeOptionsTests to the correct item group.

* Added test to make sure default JsonNodeOptions have equal values to JsonNodeOptions created from default constructor.

* Added missed options arguments.

* Added assertions to make sure default JsonNodeOptions values are as expected.

4 years agoRemove unused CMake define. (#744)
Jeremy Koritzinsky [Wed, 11 Dec 2019 02:19:56 +0000 (18:19 -0800)]
Remove unused CMake define. (#744)

Remove unused CMAKE_USER_MAKE_RULES_OVERRIDE define. We used to use this define before 3.0 in coreclr. When we stopped using it, we had to define the variable in this command on each invocation to update it in the CMake cache, otherwise the old value might still be there and cause an error. As a result, I added in these "set to empty" lines to avoid issues checking out old branches that still used these files.

Now that we're in the dotnet/runtime repo and don't have any old servicing branches, we can remove this CMake define.

4 years agoMerge pull request #719 from SrivastavaAnubhav/optional-mapfile
Andrew Au [Wed, 11 Dec 2019 01:18:00 +0000 (17:18 -0800)]
Merge pull request #719 from SrivastavaAnubhav/optional-mapfile

Disable generating a map file by default.

4 years agoAdd installer build/test to the runtime.yml pipeline (#705)
Davis Goodin [Wed, 11 Dec 2019 00:35:29 +0000 (18:35 -0600)]
Add installer build/test to the runtime.yml pipeline (#705)

* First pass to get an installer build integrated into runtime.yml with minimal changes to the installer jobs.

Fix paths to jobs.

Fix typos

Add platform to parameter lists.

Pass platform to all jobs.

Cleanup variable usages.

Don't pass buildConfig down to installer jobs. They use matrix strategy instead.

Fix variable usage in windows build.

Fix windows platform names.

Add missing platform parameter for Windows_NT_arm

Update last condition re parameters.dockerImage.

Rename dockerImage parameter to productBuildDockerImage to be more explicit.

Use pool and container parameters from platform-matrix in installer build.

Pass rootfs dir via crossrootfsDir to bash-build.yml.

Fix passing down container in runtime-installer pipeline.

Remove unused Linux_x64_raw config.

* Add support for clang 9 to corehost build.

* Skip tests on Linux_musl_arm64

* runtime.yml installer build with live artifacts

Includes refactoring the runtime legs to avoid duplicating artifact
transfer logic and preserve the runtime standalone build.

* Fix installer overrides: accept live CI artifacts

* Use clone-checkout-bundle-step.yml everywhere

* Try using isOfficialBuild var from template expr

* Switch from $[] to $() to fix clone template

$[] becomes empty string when a variable is undefined. $() sticks around literally if the variable doesn't exist, messing up the command. Unfortunately $[] doesn't seem to work in this context so we must use $() and define the variable as empty string.

4 years agoAdd porting guide (#716)
David Wrighton [Wed, 11 Dec 2019 00:33:57 +0000 (16:33 -0800)]
Add porting guide (#716)

- General guidance for porting CoreCLR to a new architecture

4 years agoSync H2 namespace updates (#710)
Chris Ross [Tue, 10 Dec 2019 23:36:42 +0000 (15:36 -0800)]
Sync H2 namespace updates (#710)

4 years agoFix relro, now and PIE for host and libraries (#685)
Jan Vorlicek [Tue, 10 Dec 2019 22:48:07 +0000 (23:48 +0100)]
Fix relro, now and PIE for host and libraries (#685)

* Fix relro, now and PIE for host and libraries

The former core-setup and corefx native code build was missing the
-z,relro and -z,now options and also the position independent related
settings.

* Reflect PR feedback

4 years agoDisable more tests from the crossgen2 run (#741)
Fadi Hanna [Tue, 10 Dec 2019 21:58:48 +0000 (13:58 -0800)]
Disable more tests from the crossgen2 run (#741)

4 years agoRename --generate-map-file to --map.
Anubhav Srivastava [Tue, 10 Dec 2019 18:11:32 +0000 (10:11 -0800)]
Rename --generate-map-file to --map.

4 years ago[master] Update dependencies from dotnet/arcade Microsoft/vstest (#614)
dotnet-maestro[bot] [Tue, 10 Dec 2019 16:06:41 +0000 (17:06 +0100)]
[master] Update dependencies from dotnet/arcade Microsoft/vstest (#614)

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

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

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

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

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

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

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

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

* Update dependencies from https://github.com/microsoft/vstest build 20191210-01

- Microsoft.NET.Test.Sdk - 16.5.0-preview-20191210-01

4 years agoFix DynamicMethodDesc::Destroy vs code heap enumeration race (#713)
Jan Vorlicek [Tue, 10 Dec 2019 11:40:49 +0000 (12:40 +0100)]
Fix DynamicMethodDesc::Destroy vs code heap enumeration race (#713)

There is a race between DynamicMethodDesc::Destroy called from
the finalizer thread and the MethodDescs enumeration called from
ETW::MethodLog::SendEventsForJitMethods at process exit.
DynamicMethodDesc::Destroy cleanos up its members m_pSig and
m_pszMethodName and then it calls GetLCGMethodResolver()->Destroy();
That calls EEJitManager::FreeCodeMemory, which tries to take the
m_CodeHeapCritSec lock. But this lock is already held by
the ETW::MethodLog::SendEventsForJitMethods.
So the iterator can see half-destroyed DynamicMethodDesc and
a crash happens when trying to get the dynamic method name
from the m_pszMethodName for the ETW event purposes.

The fix is to call the GetLCGMethodResolver()->Destroy() before
destroying the m_pSig and m_pszMethodName.

4 years agoDisable generating a map file by default.
Anubhav Srivastava [Tue, 10 Dec 2019 03:46:44 +0000 (19:46 -0800)]
Disable generating a map file by default.

4 years agoUpdate Multi-level SharedFX Lookup Doc (#503)
Swaroop Sridhar [Tue, 10 Dec 2019 02:50:44 +0000 (18:50 -0800)]
Update Multi-level SharedFX Lookup Doc (#503)

This document was written before .net core 3 was released, and
refers to certain features in .net core 2.1 and 3 as "proposed features."

This change integrates the sections describing (then) upcoming features
into the doc's mainstream.

The doc can be improved further to be more cohesive; this change
addresses the specific issue in #493

Fixes #493

4 years agoMerge pull request #692 from mateoatr/issue-353
Mateo Torres-Ruiz [Tue, 10 Dec 2019 02:09:41 +0000 (18:09 -0800)]
Merge pull request #692 from mateoatr/issue-353

Fix memory leaked caused by Marshal.GetFunctionPointerForDelegate

4 years agoImprove superpmi collection steps (#652)
Bruce Forstall [Mon, 9 Dec 2019 23:45:42 +0000 (15:45 -0800)]
Improve superpmi collection steps (#652)

Rearrange the "clean" and "remove dups" phases of the collection
steps. This saves a lot of time by avoiding JIT compiling
all the functions that we will just throw out because the MCs
are considered duplicates.

Fixes #646

4 years agoLive-live CoreCLR ci.yml (#586)
Tomáš Rylek [Mon, 9 Dec 2019 23:44:06 +0000 (00:44 +0100)]
Live-live CoreCLR ci.yml (#586)

4 years agoRe-enable arm32 windows testing (#642)
Jarret Shook [Mon, 9 Dec 2019 23:21:19 +0000 (00:21 +0100)]
Re-enable arm32 windows testing (#642)

4 years agoMerge pull request #711 from dotnet/tratcher/codeowners
Cory Nelson [Mon, 9 Dec 2019 22:32:36 +0000 (14:32 -0800)]
Merge pull request #711 from dotnet/tratcher/codeowners

Add back CODEOWNERS for Http2 shared code

4 years agoAdd back CODEOWNERS for Http2 shared code
Chris R [Mon, 9 Dec 2019 22:16:25 +0000 (14:16 -0800)]
Add back CODEOWNERS for Http2 shared code

4 years agoUpdate repoRestore.targets (#451)
Nikolche Kolev [Mon, 9 Dec 2019 22:12:36 +0000 (14:12 -0800)]
Update repoRestore.targets (#451)

4 years agoFix zero connection timeout issue (#400)
v-jizho2 [Mon, 9 Dec 2019 22:07:04 +0000 (14:07 -0800)]
Fix zero connection timeout issue (#400)

* Fix zero connection timeout issue

* Update based on comments

* remove trailing whitespace

* minor change to ctor

4 years agoImplement classMustBeLoadedBeforeCodeIsRun in crossgen2 (#608)
Jan Vorlicek [Mon, 9 Dec 2019 21:21:26 +0000 (22:21 +0100)]
Implement classMustBeLoadedBeforeCodeIsRun in crossgen2 (#608)

* Implement classMustBeLoadedBeforeCodeIsRun in crossgen2

This fixes missing eager fixups for method call arguments and return
value for methods going through PreStub.
It fixes the coreclr JIT\Regression\CLR-x86-JIT\V1.2-M01\b02345\b02345
test that needed Span<byte> type during GC stack walk with PreStub of a
method with Span<byte> argument on the stack and failed as it couldn't
be loaded during the GC.
The same failure also happened in many if not all tests when I have
attempted to run them with GCStress 3.

* Reflect PR feedback on member / property naming and method location

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 agoPoison code before deleting the handle.
mateoatr [Mon, 9 Dec 2019 19:30:11 +0000 (19:30 +0000)]
Poison code before deleting the handle.
Keep code consistent.

4 years agoDelete handle before adding thunk to free list.
mateoatr [Mon, 9 Dec 2019 19:05:19 +0000 (19:05 +0000)]
Delete handle before adding thunk to free list.
Set object handle to zero after destroying the handle.

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 agoDestroy handle on UMEntryThunk::Terminate
mateoatr [Mon, 9 Dec 2019 17:11:22 +0000 (17:11 +0000)]
Destroy handle on UMEntryThunk::Terminate

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.