Skip to content

Sync with upstream main branch #34

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 243 commits into from

Conversation

joshpeterson
Copy link

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

MichalStrehovsky and others added 30 commits January 1, 2022 10:33
The test got renamed in dotnet#63178.

Should fix the Mono AOT CI failures seen in dotnet#63232.
The real build now happens in runtime/CMakeLists.txt, the Makefile
contains only helper targets now.
When `DiagnosticName` was introduced into the type system, I didn't want to deal with it and compiled it out of the NativeAOT version of the type system.

In order to have a single ILCompiler.TypeSystem assembly that can be used with both crossgen2 and ILC, this needs to be implemented.

I've also reduced the number of diffs between ILCompiler.TypeSystem.csproj and ILCompiler.TypeSystem.ReadyToRun.csproj.
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…63065)

* [mono][wasm] Allow methods with finally clauses to be AOTed.

This is implemented by running the finally clause with the interpreter.
Methods with clauses have additional code generated, which:
* Saves the IL state (pc+arguments+locals) into a MonoMethodILState
structure.
* Pushes an LMF frame on the LMF stack of type MONO_LMFEXT_IL_STATE.
  The LMF frame points to the il state.

During EH, if such an LMF frame is found, and the IL pc in the
il state points inside a clause, then an interpreted version
of the method is created, and the finally clause is ran using
the interpreter using the il state as the starting state.

* Disable a few test suites which now cause emscripten to OOM when building with AOT.
…#63280)

IL generation (stubs/thunks) is not part of the core type system and these files are not included in ILCompiler.TypeSystem.ReadyToRun. Somehow we accumulated them in ILCompiler.TypeSystem but they can be pretty cleanly moved to ILCompiler.Compiler (left one TODO for a subsequent cleanup since some of what's in Common\TypeSystem should actually be in ILCompiler.Compiler proper).
* Description of DebuggerBrowsable behavior.

* Added test for browse attributes.

* Corrected typos in the doc.

* Added Browse Never feature. Corrected Collapse test. ToDo: RootHidden.

* Draft of RootHidden solution.

* Added Array to test cases as it behaves differently than Collection.

* Added name concatenation to make array/list elemetns in debug window unique.

* Update docs/design/mono/debugger.md

Co-authored-by: Ankit Jain <[email protected]>

* Applied PR review suggestions.

* Added a reference to regular Browsable attribute behavior in .net.

* Applied most of review suggestions.

* Stopping GetFieldsValue early.

* Remove unintentional change to the original code.

* Do not skip fields that don't have browsable attributes.

* Changing the expected behavior to match Console Application. EventHandlers are Browsable.Never by default.

* Changed the place of checking if objetc is an array.

* Update src/mono/wasm/debugger/DebuggerTestSuite/EvaluateOnCallFrameTests.cs

Co-authored-by: Ankit Jain <[email protected]>

* Removed unused variables.

* Removing space and unused import.

* Partially addressed @radical comments.

* Addressed the comment about extension instead of Union.

* Removed string cultural vunerability.

* Added Properties dictionary, the same as for fields.

* Fixed the bug I made by using dynamc.

* Applying @radical comments about refactoring.

* Corrected typo.

* Added tests for properties.

* Draft of changes for properties handling - never and root hidden failing.

* Fix for RootHidden properties.

* Added tests for static fields decorated with Browsable.

* Correct a typo.

* Undo merge unintentional changes.

* Changing expected behavior for MulticastDelegateTest - in Console Application EventHandler is Browsable.Never by default so we should not expect it to be visible in the debug window.

* Removing not relevant changes created after merge with main.

* Remove file added in merge with main.

* Revert "Removing not relevant changes created after merge with main."

This reverts commit b1acf8b.

* Revert.

* Revert revert.

* One broken test for custom getter.

* Ugly fix to make all the tests work.

* Refactored JArray aggregation to Dictionary.

* Better naming.

* Remove not connected to PR file.

* Applied @thaystg suggestions.

* Removed comments.

Co-authored-by: Ankit Jain <[email protected]>
…otnet#63281)

After this and dotnet#63280 there will be no differences between ILCompiler.TypeSystem and ILCompiler.TypeSystem.ReadyToRun and we can unify them.
It can have so many locals that zero-initing is measurable.
Rename it to parent_ and add m_field_get_parent / m_field_set_parent accessors.

(The intention is to borrow the bottom bit of the pointer for an EnC metadata
update flag)
They don't have to differ in the `--parallelism` vs `--singlethreaded` argument.
…od_union_preclean (dotnet#63293)

Fixes mono/mono#21369
Related to dotnet/android#6546

job_major_mod_union_preclean can race with the tarjan bridge
implementation that changes the vtable pointer by settings the three
lower bits. this results in invalid loading of the vtable
(shifted by 7 bytes)  which in turn give a wrong desc to the scan
functions

This change is released under the MIT license.

Co-authored-by: tmijieux <[email protected]>
…ations (dotnet#61185)

* Added logic for default interface method traversal to ILVerify method discovery

* Added Tests for DefaultImplFix

* Moved call to default interface impl resolution outside of ResolveInterfaceMethodTarget
* Update COM host to match RegAsm registration behavior
Replaced with a single ILCompiler.TypeSystem shared between crossgen2 and ilc.
…net#62973)

* make sure OpenSSL is initialized before Tls13Supported code runs

* feedback from review

* Update src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.Ssl.cs

Co-authored-by: Stephen Toub <[email protected]>

Co-authored-by: Stephen Toub <[email protected]>
* fix TryGetAddrInfo_HostName_TryGetNameInfo()

* Fix network test
…t#62958)

* Extend CPU capabilities detection for osx-arm64 (dotnet#62832)

* Revert uncoditional enable for dczva on osx-arm64
* Do addition for EndZ matching at compile time

* Tweak rendering of optional loops to say "Optional" rather than "Loop optionally"

* Remove "at least X" from loop description when X is 0

* Add a missing blank line at the beginning of a back reference

* Rename ReturnFalse to NoStartingPositionFound

* Delete stale comments

* Address PR feedback
am11 and others added 26 commits January 16, 2022 17:10
* Convert h2inc to a cmake function

* Reuse preprocess_file
This fixes issue where generated RunTests.sh in the "To repro directly: "
section contained unevaluated variables like RUNTIME_PATH, which
prevented simple copy-pasting the code into the terminal
Allows the LIR DCE to remove some indirections that
were previously incorrectly thought to be throwing.

Contributes to CLS_VAR deletion (by minimizing the diffs).
* Fix escaped strings for TryGetDateTime(Offset)

Fix the exception thrown when the escaped DateTime(Offset)
property value is unescaped and it becomes shorter than
the minimum expected length. In such case the Try* method
should fail and returns false.

Fixes dotnet#62720

* Fix escaped strings for TryGetDateTime(Offset)

Fix the exception thrown when the escaped DateTime(Offset)
property value is unescaped and it becomes shorter than
the minimum expected length. In such a case, the Try* method
should fail and return false.

Fixes dotnet#62720

* Fix escaped strings for TryGetDateTime(Offset)

Fix the exception thrown when the escaped DateTime(Offset)
property value is unescaped and it becomes shorter than
the minimum expected length. In such a case, the Try* method
should fail and return false.

Fixes dotnet#62720

* Fix escaped strings for TryGetDateTime(Offset)

Fix the exception thrown when the escaped DateTime(Offset)
property value is unescaped and it becomes shorter than
the minimum expected length. In such a case, the Try* method
should fail and return false.

Fixes dotnet#62720

* Fix escaped strings for TryGetDateTime(Offset)

Fix the exception thrown when the escaped DateTime(Offset)
property value is unescaped and it becomes shorter than
the minimum expected length. In such a case, the Try* method
should fail and return false.

Fixes dotnet#62720
* Delete UMThkCallFrame

* Place UnmanagedToManagedFrame under FEATURE_COMINTEROP
Fixes dotnet/runtimelab#1821.

Eventually we'll need to have a holistic look at how we mangle things.
* Use only one [out] parameter in IsFieldAddr

Since only one is needed.

* Actually properly type primary selectors
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Split CheckNotDisposed to allow inlining

`CheckNotDisposed` is not getting inlined because RyuJIT thinks it's not profitable (ldstr/newobj/throw is expensive). If we extract the rare path into a separate method, it changes the profitability math and allows inlining to happen.

* Review feedback
…k. (dotnet#61781)

* Encapsulate the logic of caching the last synchronously completed task.

* Apply suggestions from code review

Co-authored-by: Adam Sitnik <[email protected]>
This separation only existed because of Razzle build sequencing of desktop CLR. It doesn't make sense for CoreCLR. The only thing the extra directory is doing now is that it breaks tab completion when navigating the CoreCLR source tree because ToolBox comes before tools alphabetically and most things live in tools.
* Delete _fullpath PAL API

* Delete PAL_wcscspn

* Delete PAL_wcstok
…or of the general one for the entire set of mobile targets (dotnet#63924)
* improve protocol detection in jail

* add comment
@joshpeterson
Copy link
Author

Closing again because of test failures. We'll try one more time next week.

@joshpeterson joshpeterson deleted the bot-upstream-main-merge-2022-01-18 branch March 10, 2022 19:48
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.