Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge from dotnet/runtime #374

Merged
merged 121 commits into from
Nov 24, 2020
Merged

Conversation

jkotas
Copy link
Member

@jkotas jkotas commented Nov 21, 2020

No description provided.

vargaz and others added 30 commits November 17, 2020 16:53
…pp build time when relinking the wasm runtime. (#44715)

* Add the emscripten version to the wasm runtime pack and check it at app build time when relinking the wasm runtime.

* Update src/mono/wasm/Makefile

Co-authored-by: Alexander Köplinger <[email protected]>

Co-authored-by: Alexander Köplinger <[email protected]>
… (#35042)

* Handle unicode and e-notation differences between S.T.J and J.N tests

Fixes #32350

* Remove TODO

* Bumping CI

* Bump CI

* Handle relaxed escaping and precision properly

* Move else if

* Move else if back

* Remove relaxedEscaping param and skip whitespace

* Apply Jozkee final touches

* Add missing period

Co-authored-by: David Cantu <[email protected]>
- Avoid StringBuilder marshaling
- Let CreateProcess{WithLogonW} determine the current working directory
- Avoid creating SafeHandles for GetCurrentProcess()
- Avoid forcing ProcessStartInfo.ArgumentList into existence just to check if it contains anything
- Prefer using ProcessStartInfo.Arguments in Start(string, IEnumerable<string>) if there's only one string in the enumerable
- Use ValueStringBuilder instead of StringBuilder to build up arguments, so as to use stack space / pooled char[]s and avoid actually needing to produce strings.
- Avoid unnecessary SafeHandle for PROCESS_INFORMATION.hThread
When Regex.Replace doesn't actually need to replace anything, we're inadvertently not returning a previously rented ArrayPool array to the pool.  On repeated use, that drains the pool of the desired size, such that every attempt ends up allocating a new array, even if there are no replacements to be made.

The fix is to lazily rent from the pool.  This not only fixes the problem, but helps perf further by not taking the rental cost unless we actually need an array to store a replacement segment.
* Fix non-thread-safe EntityTagHeaderValue.Any

It was being published before fully populated.

* Address PR feedback

* Update EntityTagHeaderValue.cs
* Fix building host lineup packages.

Signed-off-by: Jeremy Koritzinsky <[email protected]>

* Update src/installer/pkg/projects/host-packages.proj

Co-authored-by: Viktor Hofer <[email protected]>

Co-authored-by: Viktor Hofer <[email protected]>
Changing the JIT-EE GUID invalidates previous SuperPMI collections,
necessitating a re-collection. As a proxy for determining whether
the JIT-EE GUID has changed, just trigger anytime the corinfo.h file
changes.
- MethodCallExpression can take nullable instance when static method
- LambdaExpression.Update does not return null in any case

Resolves #44821
Resolves #44822
* Make $(TargetOS) lowercase windows in eng/coredistools.target

* Make $(TargetOS) lowercase windows in src/tests/Common/Directory.Build.targets
…#44675)

* Fix NRE when default value is null and ServiceCallSite is not found
* Enable nullable annotations for M.E.L.Abstractions

* Corrections from review

* LoggerExtensions.cs: params object?[] -> params object?[]

* using Nullable Annotations,
to allow annotations on relevant projects, not yet enabled

* formatter not null
* Update dependencies from https://github.com/dotnet/arcade build 20201113.2

Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.ApiCompat
 From Version 6.0.0-beta.20552.5 -> To Version 6.0.0-beta.20563.2

* Update global.json

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Viktor Hofer <[email protected]>
Co-authored-by: Juan Hoyos <[email protected]>
* make ValidateCacheKey and CheckDisposed inlinable by moving throws to separate methods

* ensure that the check for expiration does not require a method call for the most common case

* update the last expiration scan when the Scan Task starts actual work

* Apply suggestions from code review

Co-authored-by: Stephen Toub <[email protected]>
* Use read-only auto-implemented property in src\libraries\Common

Use read-only auto-implemented property (RCS1170)

https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1170.md

* Revert changes except to ComEventsMethod
Resulting in several hundred Func, IEnumerable, set, and string allocations at startup.
* Improve unit test coverage for GetUninitializedObject
* Normalize most checks between coreclr and mono
…DefaultLogMessage (#44765)

It's resulting in a string[] allocation and a string allocation, when we can instead just make a few more individual calls to Write and stackalloc the integer.
…nsitively uses it through the Microsoft.NETCore.DotNetHostResolver package. (#44883)
@jkotas
Copy link
Member Author

jkotas commented Nov 21, 2020

@sandreenko Many tests are failing in this integration with:

/Users/runner/work/1/s/src/coreclr/src/jit/assertionprop.cpp:1628
2020-11-21T08:09:55.0171590Z           Assertion failed '(lvaTable[assertion->op1.lcl.lclNum].lvType != TYP_REF) || (assertion->op2.u1.iconVal == 0)' in 

I suspect that it is caused by dotnet/runtime#44398. Could you please take a look?

@sandreenko
Copy link

Sure, could I just follow what CI is doing for a repro or is there a faster way to debug this repo?

@jkotas
Copy link
Member Author

jkotas commented Nov 21, 2020

I have extracted a simple repro at:

xcopy /s \\jkotas9\drops\runtimelab-374 .
runme.bat

Note that the JIT .dll is renamed to clrjitilc.dll, so if you build a private you need to replace the clrjitilc.dll with it.

@jkotas
Copy link
Member Author

jkotas commented Nov 21, 2020

If you would prefer to just build locally, here is the workflow that I use (based on https://github.com/dotnet/runtimelab/blob/feature/NativeAOT/docs/workflow/building/coreclr/nativeaot.md):

  • build nativeaot+libs -lc release -rc checked
  • open src\coreclr\src\tools\aot\ilc.sln in VS
  • set configuration to checked x64
  • in the project debug tab, set Application Arguments to @C:\runtimelab\artifacts\bin\repro\x64\Checked\compile-with-Release-libs.rsp (or wherever the project is on your machine) and also check "Enable native debugging"
  • Append -O to C:\runtimelab\artifacts\bin\repro\x64\Checked\compile-with-Release-libs.rsp
  • Change Program.cs in repro project to:
using System;
using System.Threading;

new ThreadLocal<int>().ToString();

F5

You should see the assert

BruceForstall and others added 7 commits November 21, 2020 10:46
R2R testing was failing by hitting an assert about unimplemented
getMethodModule, called as part of R2R-only devirtualization handling
in the JIT.

I didn't determine why this regressed now.

Fixes #45016
… (#44688)

* Fix GetNonRandomizedHashCodeOrdinalIgnoreCase

* Add a test

Co-authored-by: Levi Broderick <[email protected]>
…alue (#44945)

instead of hopping over layers of ToString indirections which end up calling HexConvertor anyway.
* Drop Convert static constructor dependency from RuntimeTypeto make it trimmable

Co-authored-by: Jan Kotas <[email protected]>
Use IndexOf to search for positions rather than open-coded loops, taking advantage of vectorization to improve throughput.
marek-safar and others added 13 commits November 23, 2020 13:58
…s too long to run (#45081)

Co-authored-by: Geoffrey Kizer <[email protected]>
* Skip Invariant initalization test for CultureData.Invariant

* Feedback
… observations. (#44790)

* Use `argIsInvariant` instead of `argNode->OperIsConst()`.

* add a small repro test for the current issue.
We currently have several hundred uses of `Array.Empty<Type>()` and several hundred uses of `Type.EmptyTypes`.  This just changes the repo to use the latter consistently.
ILVerify is published on nuget now. It is not required to use the nightly feed anymore.
- Refactoring paves way for related work in dotnet/runtime#32520
- Fixes some possible GC holes in the reflection stack
* Fix native build on arm and arm64.

* Fix a typo.
* Fix CoreRT frozen strings handling.

* Review response.

* Delete noway_assert.

* Additional checks.

* Fix failures.
@jkotas jkotas merged commit 7faa1f0 into dotnet:feature/NativeAOT Nov 24, 2020
@jkotas jkotas deleted the merge-master branch November 24, 2020 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.