Skip to content

[pull] swiftwasm from main #4371

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 344 commits into from
Mar 22, 2022
Merged

[pull] swiftwasm from main #4371

merged 344 commits into from
Mar 22, 2022

Conversation

pull[bot]
Copy link

@pull pull bot commented Mar 15, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

yim-lee and others added 29 commits March 15, 2022 12:34
For ParamDecl instances, the value of this property is not just a function of the introducer (let/var which is a poorly-defined concept for parameters), it's a function of the specifier (inout/__owned/__shared etc). However, computing the specifier also has the side effect of flipping the introducer bits. This appears to be because while the AST uses `isLet` in a syntactic sense "did the user write 'let'?", SIL uses it in a semantic sense "is this property semantically immutable?". These two queries need to be split from one another and the callers migrated. But that is a much larger task for a later time. For now, provide the value of `ParamDecl::isImmutable` to callers since that's the more conservative of the two behaviors.

The bug here is that it's possible for `getSpecifier` to *not* be called before `isLet` is called (usually in SIL). This manifested as a test output divergence on the non-asserts bots since the ASTVerifier was always calling getSpecifier, and most engineers do not build without asserts on at their desk.

rdar://89237318
…version-min

Frontend: Use Swift introduction as the default inlining availability floor instead of ABI stability
…macros-in-back-deploy-funcs

Sema: Diagnose use of availability macros in conditional statements in @_backDeploy functions
…ibrary build's arguments. This will prevent issues with incorrect or missing availability checking in inlinable function bodies.

Resolves rdar://89991736
Enable caller and callee to be printed as inlining runs.  The printing
is filtered based on -sil-print-function/-sil-print-functions and
includes finer-grained info than those do already.  The caller before
and after each callee is inlined can be printed as well as the callee
on its own as it exists when inlining occurs.
…ing non-optional type

Fixes a crash during diagnostics by not assuming that optional chain
would always produce an optional type, which is not true because in
error scenarios it could get assigned an invalid type from context.

Resolves: rdar://85516390
…indings-via-conjunctions

[SE-0326] Re-enable multi-statement closure inference by default
Leave it to the clients to add it, if necessary.

Resolves rdar://90040835
[Concurrency] Fix typo in internal variable name
…t libs

The back-deployed Swift Concurrency library should not contain anything
based on clocks or durations, which aren't always available in the
underlying system. Move that functionality to separate files that are
excluded from the back-deployed concurrency libraries.

This is a partial step to better approximate the back-deployment
libraries. At some point, we'll stop building the back-deployment
libraries entirely and instead use the binaries provided by the
toolchain.

Fixes rdar://89237163.
…-normalization

RequirementMachine: Optimize rewrite path normalization
Stabilize VarDecl::isLet for ParamDecls
SE-0343 is approved so it's time to pull the feature out from behind the
experimental feature flag. This patch pulls it out and deprecates
passing the flag to the frontend so that we can pull it out entirely
eventually.
[cxx-interop][docs] add a C++ interoperability status document
ahoppen and others added 29 commits March 21, 2022 13:00
Recommit: [cxx-interop] start to emitting a unified header file for a Swift module
[RemoteMirror][swift-inspect] Decode locks in priority-escalation concurrency runtime.
Allow round-tripping access to global variables. Previously,
AccessedStorage asserted that global variables were always associated
with a VarDecl. This was to ensure that AccessEnforcmentWMO always
recognized the global. Failing to recognize access to a global will
cause a miscompile.

SILGlobalVariable now has all the information needed by
SIL. Particularly, the 'isLet' flag. Simply replace VarDecl with
SILGlobalVariable in AccessEnforcmentWMO to eliminate the need for the
assert.
…back-deploy-attr

Parse: Require a "before: " label in @_backDeploy attribute
…enericType

These are stealth generic typealiases and should not participate in the
rewrite system.
…n-tests

RequirementMachine: A couple of regression tests
…seAmbiguity

[ConstraintSystem] Augment `diagnoseAmbiguity` to handle non-expression anchors
The GSB sometimes emits redundant same-type requirements here. Only
checking for a prefix would still trigger false positives, so relax
it all the way to only consider conformance requirements, which
are the important ones from an ABI standpoint.
Update cast feasibility analysis to take parameterized protocols into account. The cast classifier was used to being able to essentially just run `conformsToProtocol` on the existential type, but for parameterized protocol types this will ignore the extra requirements imposed by the argument clause. For now, route everything through the runtime.
…ic-protocol-typealias

RequirementMachine: Don't consider protocol typealiases with UnboundGenericType
…clAndTypePrinter

This will allow us to use type mappings in the C ABI function printer.
[Docs] Fix dead link to the C++ Interop manifesto
…l-completions

[CodeCompletion] Migrate expression completions to solver-based
Conservative Dynamic Casts to/from Parameterized Protocols
…check-more

GSB: Relax verify check some more in RequirementSignatureRequest
Fix an AccessedStorage assert for SIL global variables.
…-can-cause-a-conflict

Check protocols for selector conflicts
…-fix

RequirementMachine: Explicitly specify SmallVector size
…r-fix

RequirementMachine: Try harder to preserve sugar
[PrintAsClang] NFC, refactor primitive type mapping logic out from De…
@kateinoigakukun kateinoigakukun merged commit f3f8d8d into swiftwasm Mar 22, 2022
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.