Skip to content

Sync with upstream main branch #23

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

Closed
wants to merge 118 commits into from

Conversation

joshpeterson
Copy link

This is an automatically generated pull request to merge changes from the upstream main branch.

radical and others added 30 commits December 4, 2021 01:48
Includes:
- Better error logging, and handling
- Add @(NativeFileReference) to up-to-date check items for VS
- Add `WasmBuild.sln`
- Better fix up of symbol names for pinvokes, and callbacks, based on @lambdageek's suggestion in dotnet#60814 (comment)

Fixes dotnet#60862
During my work on runtime test refactoring I noticed that when
CG2-compiling the merged test, the component assemblies end up
with an ever-increasing reference list. I tracked it down to this
poorly placed environment variable update.

Thanks

Tomas
These three projects apparently already use the [Fact] model;
this causes trouble in the switch-over to support new-style merged
test wrappers as the system believes these are standalone tests
due to the explicit Exe output type specification and and they fail
to provide a Main method. Thanks to Jeremy's source generation
change we can now tag them as "new-style tests".

Thanks

Tomas
In .NET 6, we added "real" support for Initialize on hash objects.
However, the Reset call would create a new hash object without the CNG
"resuable" flag. This led to the HashProvider's "_reusable" field and
the actual reusability of the hash instance to disagree.
* Add regex test for parsing runtime-assets expressions

* Address PR feedback
I recently noticed that the copynative step often takes an
excessive amount of time (up to 20 minutes). I tracked this down
to a deficiency caused by my summer cleanup of the test build
scripts - in the copynative step we should also use out-of-proc
msbuild executions for the individual test groups otherwise msbuild
chokes on the huge number of properties and slows down dramatically.

Thanks

Tomas
… done by fgMorphArgs() (dotnet#62379)

* Add regression test for dotnet#62249

* On Arm32 FEATURE_SIMD is not supported, hence varTypeIsSIMD() always returns false.
Change the assert, so it checks that the argument type is TYP_DOUBLE in Lowering::NewPutArg() in src/coreclr/jit/lower.cpp

* Fix GCC error
* Mark ArmBase.Yiels with HW_Flag_NoFloatingPointUsed in src/coreclr/jit/hwintrinsiclistarm64.h

* Move handling of ArmBase.Yield to an earlier point in impSpecialIntrinsic and simplify the remaining logic in src/coreclr/jit/hwintrinsicarm64.cpp

* Address feedback
* Move FabricBot rules to Configuration-As-Code

* Update docs/infra/automation.md

Co-authored-by: Dan Moseley <[email protected]>

* update FabricBot dump to most recent version

Co-authored-by: Dan Moseley <[email protected]>
* fix for dotnet#61899

* proper fix

* Fix for dotnet#62238

* misc change

* Revert "fix for dotnet#61899"

This reverts commit 1fc26a5.

* fix formatting

* fix formatting once again

* add validJumpKind check

* review comments
…he (dotnet#62411)

.. desktop. Earlier we did this for one test, but others are hitting
this issue randomly too. New one:

```
[00:32:41] fail: [FAIL] System.Diagnostics.Tests.StopwatchTests.StartNewAndReset
[00:32:41] info: Assert.True() Failure
[00:32:41] info: Expected: True
[00:32:41] info: Actual:   False
[00:32:41] info:    at System.Diagnostics.Tests.StopwatchTests.StartNewAndReset()
[00:32:41] info:    at System.Reflection.RuntimeMethodInfo.InvokeWorker(Object obj, BindingFlags invokeAttr, Span`1 parameters)
```

Issue: dotnet#62021
…2400)

* [mono][wasm] Fix an issue with the passing of small vtypes.

Fixes an issue introduced by 915ee6d.

* Reenable tests.

* Enable the tests for windows/aot also

Co-authored-by: Ankit Jain <[email protected]>
- silence errors before aborting the iframe
- separate iframe code
Co-authored-by: Radek Doulik <[email protected]>
…otnet#62382)

* Ensure that FMA codegen operand swapping matches the lsra selections

* Ensure operands end up in the right slots
In the case where replay of a test collection contains MISSING items,
or other SuperPMI replay failures, we strip the failing method contexts
from the result. This is very rare in the test scenario, but does happen
mostly (presumably) due to SuperPMI tool bugs. However, the strip command
wasn't actually being passed the set of things to strip, so it was just
doing a straight copy. Thus, we ended up failing the "clean replay" because
the failing MCs were still in the collection.

The test has had this problem for a long time, and it looks like it has
periodically hit in testing, but we haven't had bugs opened on these failures,
so we haven't noticed.
* Improve comments in generated Regex code

To help make the generated code easier to understand and debug.

* Format RegexOptions textually when possible
…otnet#62426)

* Reduce (?!) to nothing

The expression "(?!)" (an empty negative lookahead) is sometimes used in expressions at a point where we want to match nothing and thus fail a match, often in combination with a conditional operation.  This negative lookahead wrapped around an empty can be reduced to simply a Nothing, which is cheaper to process.

* Special-case an empty pattern in the source generator

* Output more idiomatic C# for some backreference conditionals

We currently output goto-based code, avoiding an actual if/else construct in case the child branches need to backtrack (and with the forced scoping for the if/else blocks, backtracking would result in compilation failures due to trying to jump to labels defined inside those scopes).  But if we know in advance that no such backtracking will happen, we can output the nicer if/else code.

* Improve code generated for backreferences

We were iterating through each individual character in our own open-coded loop, but for case-sensitive, we can just delegate to SequenceEqual.

* Avoid mutating RegexNode tree for expression conditionals

Rather than wrapping a node in a new positive lookahead assertion node, just call the logic to emit the node as if it were a positive lookahead.

* Change a few -1 comparisons to be 0 comparisons

Ever so slightly cheaper

* Factor stack pushing/popping into helper methods
* load dotnet.js with import in tests
* fix proxy fail and handle errors of this type
* feedback
…the 3 overloads could convert all the argument types` on VS2019 with warning level 4. (dotnet#60967)
When analyzing PR failures I noticed that the log / wrn / err / binlog
combo only gets produced on Unix runs. I think this is also a bug
I made in the build script refactoring, the logging parameters
were used for the cmake build instead of the managed build.
[I can add a second set of logging parameters for the cmake build
phase if needed but I believe it wasn't there before my change.]

Thanks

Tomas
* Fix Some Date and Time parsing cases

* Avoid running the new test on Mac

* Exclude the browser for the new test

* Update src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs

Co-authored-by: Santiago Fernandez Madero <[email protected]>
dotnet#62460)

* Renaming some local variables to make the generated code more readable

* Renaming crawlpos as well.
* Create symlink at build time

* Pick up latest Installers package from Arcade
stephentoub and others added 25 commits December 9, 2021 21:16
* Remove now unecessary "Variable declared but never used" warning suppression

* Avoid declaring inputSpan in FindFirstChar if we don't have to

* Add RegexNode.Ref/Bol/Eol to non-backtracking list

* Move some additionalDeclarations back to where they're used

I was overaggressive in moving these to the beginning.  Some are fine where they're needed.

* Delete dead code

* Emit IsEmpty for more slice.Length checks

* Apply suggestions from code review
* allow the main.js file to keep it's name
Co-authored-by: Ankit Jain <[email protected]>
* Reduce number of calls to setTimer (dotnet#62433)
* unit test
Co-authored-by: Marek Fišera <[email protected]>
Add build instructions to skip restoring nuget packages, when you only made change to mono.
* Enforce HTTP request Content-Length correctness

* Skip test on Browser

* Test that subsequent HTTP/1.1 requests can still succeed on a new connection

* Be consistent about exception nesting
* new API MONO.mono_run_main_and_exit and MONO.mono_run_main
* default onAbort
* console-v8-cjs sample
* reduced setup ceremony
…fe (dotnet#62640)

If two threads race to initialize it, one may end up overwriting the others, which means state pushed onto the losing thread's stack might end up disappearing.
…otnet/xharness dotnet/icu dotnet/hotreload-utils dotnet/llvm-project (dotnet#62582)

* Update dependencies from https://github.com/dotnet/runtime-assets build 20211203.1

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
 From Version 7.0.0-beta.21602.1 -> To Version 7.0.0-beta.21603.1

* Update dependencies from https://github.com/dotnet/llvm-project build 20211206.1

runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
 From Version 11.1.0-alpha.1.21579.1 -> To Version 11.1.0-alpha.1.21606.1

* Update dependencies from https://github.com/dotnet/icu build 20211206.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 7.0.0-alpha.1.21579.1 -> To Version 7.0.0-alpha.1.21606.1

* Update dependencies from https://github.com/dotnet/xharness build 20211209.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21607.3 -> To Version 1.0.0-prerelease.21609.1

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 7.0.0-beta.21602.3 -> To Version 7.0.0-beta.21609.2

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20211206.2

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.2-alpha.0.21579.1 -> To Version 1.0.2-alpha.0.21606.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
I was previously too aggressive in getting rid of concatenations in the comment rendering.  We would end up flattening concatenations into alternations erroneously.
Also add missing set description rendering for \d, \D
Just anotate couple other methods which I need, based on dotnet#61259 methodology
…ers (dotnet#61942)

This change introduces test infra changes supporting new-style merged test wrappers.
As a first step in the test conversion the change switches over 1501 tests under the path
Loader/classloader/TypeGeneratorTests.
…t#62537)

According to the issue dotnet#49247
a known pre-existing Crossgen2 bug is that it fails when presented
with the components of a previous Crossgen2 compilation in the
composite mode. This is because Crossgen2 lacks proper logic to
recognize the composite images and mistakes them for currently
unsupported managed C++ MSIL assemblies. This change adds the extra
check; I have also unified it between Crossgen2 and R2RDump.

Thanks

Tomas
…t#62635)

Collect both non-pgo and pgo cases. For non-pgo, set OSR to trigger immediately
when any patchpoint is hit to maximize number of cases collected. For PGO, set
OSR to trigger once we've got a bit of profile data gathered by the Tier0 method.
@joshpeterson
Copy link
Author

The test failures are being discussed here: dotnet#62844

@joshpeterson
Copy link
Author

It looks like the test issue was later corrected. I'll close this pull request and spin a new one.

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.