Skip to content

Merge main 2023-02-11 #5284

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

Merged
merged 139 commits into from
Feb 11, 2023
Merged

Merge main 2023-02-11 #5284

merged 139 commits into from
Feb 11, 2023

Conversation

kateinoigakukun
Copy link
Member

No description provided.

AnthonyLatsis and others added 30 commits February 6, 2023 22:40
… more

2.24.2 is the oldest version that didn't reproduce the code signing issue from 
swiftlang#62023 with the latest Xcode release (14.2).
These were disabled becuase they didn’t work properly in bots testing iOS or other platforms. Re-enable them for macOS until they can be fully repaired.
This implements cursor info resolving for a few expression types using the constraint system. This allows us to detect ambiguous results – we cannot deliver them yet but that will be done in a follow-up PR.
Running the SourceKit stress tester with verification of solver-based cursor info returned quite a few differences but in all of them, the old AST-based implementation was actually incorrect. So, instead of verifying  the results, deliver the results from solver-baesd cursor info and only fall back to AST-based cursor info if the solver-based implementation returned no results.

rdar://103369449
…dencies on the command line

Do this by computing a transitive closure on the computed dependency graph, relying on the fact that it is a DAG.
The used algorithm is:
```
for each v ∈ V {
    T(v) = { v }
}
for v ∈ V in reverse topological order {
    for each (v, w) ∈ E {
         T(v) = T(v) ∪ T(w)
    }
}
```
… for self-contained commands

- '-o <output_path>'
- '-disable-implicit-swift-modules'
- '-Xcc -fno-implicit-modules' and '-Xcc -fno-implicit-module-maps'
- '-candidate-module-file'

These were previously supplied by the driver. Instead, they will now be ready to be run directly from the dependency scanner's output.
…to-conformed container types

This makes sure that Swift is only auto-conforming C++ container types to `CxxSequence`/`CxxConvertibleToCollection` if they expose non-mutating `begin()` and `end()` methods.

We might want to make `begin()` and `end()` non-mutating in the near future to enable performance optimizations. This change makes sure that client code relying on the automatic conformances doesn't suddenly stop compiling if/when the mutability requirement on the protocol function changes.
Requesting a callee locator from locator in pattern matching context
should always yield pattern match.
- the intermediate length (15 bytes) didn’t show results significantly different from those produced by the short length benchmark (7 bytes).
…n of PrunedLiveBlocks called FieldSensitivePrunedLiveBlocks.

This will let the non-field sensitive version use a more performant
implementation internally. This is important since PrunedLiveBlocks is used in
the hot path when working with Ownership SSA, while the field sensitive version
is only used for certain diagnostics.

NOTE: I did not refactor PrunedLiveness to use the faster implementation... this
is just a quick pass over the code to prepare for that change.
… invoked by the tester/main checker pass rather than a utility.

This is in preparation for sinking the main computation of the pass into an
implementation local helper struct that can process multiple values. I am doing
this so we can use the same code to process switch_enum arguments and am using
the current implementation to make sure I don't break anything.
…ansform into a private namespace in preparation for sinking into the implementation file.
… its own header and out of MoveOnlyObjectChecker.h
… its interface by moving gatherUses onto the impl.
…DestructureTransform driver to the local Implementation.
… and allow for it to be initialized separately from construction.
…ecific cleanup and inserting compensating destroys.
…terestingOperandIdnexMap, and blocksToUses into the implementation.

For now, I am creating new implementations every time... but once I get the
tests passing, I am going to improve the performance by reusing the same
Implementation for all computations so we can reuse memory.
It's possible for out-of-scope type variable to be the type of
declaration if such declaration is recursively referenced in
the body of a closure located in its initializer expression.
In such cases type of the variable declaration cannot be connected
to the closure because its not known in advance (determined by the
initializer itself).

Resolves: swiftlang#63455
• Remove dependency on where the `init` selector is emitted.
• Use variable names captured from previous lines instead of assuming specific names.
This allows dynamically indexing into tuples.  IRGen not yet
implemented.

I think I'm going to need a type_refine_addr instruction in
order to handle substitutions into the operand type that
eliminate the outer layer of tuple-ness.  Gonna handle that
in a follow-up commit.
Made TypeBase's implementation dispatch to the implementation specific
to SILPackType.
ahoppen and others added 25 commits February 9, 2023 23:29
…if invoked on a symbol from a different module
ABI changes due to imported module changes should be reflected by other symbol changes. Reporting
module import changes seems to be redundant.
This reverts commit af70cc5.

# Conflicts:
#	test/Serialization/Safety/unsafe-decls.swift
For the move-only checker
Limit the amount of parallelism on asan LLDB bots to nphyscpus/2
When type erased, the constraint should be printed as the layout name (e.g. `_Class` and not `AnyObject`).
…cursor-info

[CursorInfo] Implement a few expression references as solver-based
[interop][SwiftToCxx] dispatch Swift class methods correctly using th…
Encapsulate all the complexity of reborrows and guaranteed phi in 3
ownership liveness interfaces:

LinerLiveness, InteriorLiveness, and ExtendedLiveness.
[Test] Temporarily disable failing test to unblock CI
…-safety

[Serialization] Move deserialization safety behind an env var or flag
[Reflection] Some bug fixes and other improvements
@kateinoigakukun kateinoigakukun marked this pull request as ready for review February 11, 2023 18:34
@kateinoigakukun kateinoigakukun merged commit c99ec4c into swiftwasm Feb 11, 2023
@kateinoigakukun kateinoigakukun deleted the katei/merge-main-2023-02-11 branch May 6, 2023 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.