forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 30
[pull] swiftwasm from main #4354
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
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Remove the dependency of APIJSON tests on SDK to improve stability and speed. rdar://89448415
This introduces the `_visualc_intrinsics` module, which is the MSVC analogue to `_Builtin_intrinsics` from clang. This is needed for the ARM64 SDK build which will attempt to use the neon intrinsics during the build.
In Python 3, subprocess output is read as binary data by default, which isn’t what we want. Instead of reading process output as byte strings, then manually decoding them into strings, simply pass `text=True` to functions in the `subprocess` module, so that we get properly decoded strings right out the box. This fixes places that forget to do the decoding step — most especially, the `update-checkout` script. That script prints Git output as byte strings, which leads to unreadable results. Additionally, in shell.run, use the same pipe for capturing both stdout and stderr. The distinction is pretty pointless in this use case; however, keeping the two channels separate means that we lose the original ordering of printed messages, which does matter.
These are not an issue because adding a @_marker protocol conformance has no ABI impact - the protocol is not available at runtime.
rdar://89296327
The arglist didn't exist when I originally wrote this. Most of the assertions were there to check my assumptions about the dyn-casts that were being performed originally. In a non-asserts build, the dyn-casts would not crash, but would emit the `await` insertion fix-it into the wrong location. In an asserts build, it would crash instead. I haven't heard about crashes, or misplaced fix-its from this for roughly a year now, so I think it's safe to clean it up. I'm keeping the `parent == nullptr` check since that would indicate an issue in the implementation of `isEffectAnchor`.
…enExistentialType ... rather than re-implementing it.
We don't want to treat opaque types differently here; ones that we want to treat differently have already been opened.
…types [test] XFAIL dependent-types.swift on 32 bit platforms
…#41713) * Enable Sendability for AsyncStream and AsyncThrowingStream * Move removeFirst to hit all cases where the continuations are not empty
…-cleanups Opened existential cleanups
…edArchetypeSignature()
…lType()" This reverts commit 0b612a4.
…ng. Consolidate parsing code shared between @_originallyDefinedIn and @_backDeploy.
…bfc4c8e9f81016fdcc3537a [NFC][move-function-addr] Add a small comment to the checker.
Since this implementation is exposed to users, we want to make it nice. * Don't use 'unsafelyUnwrapped' which is usually not recommended to use * Don't access 'container.allKeys' multiple times as it's a computed property rdar://89150202
[APIJSON] Impromve tests to it doesn't rely on SDK content
…o-update-example-cxx-module [cxx-interop] Fix typo in getting started, and update example for creating the cxx module
…lizations Only synthesized `async throws` version is directly accessible remotely. Resolves: rdar://90129442
[Witness] implement dump() on witness
[Distributed] Implicit Codable conformance for distributed actors
[Distributed] IRGen: Don't emit accessor for distributed thunk specia…
MaxDesiatov
previously approved these changes
Mar 11, 2022
After swiftlang#40793, alloc_boxes all have their lifetimes protected by a lexical borrow scope. In that PR, DI had been updated to see through begin_borrow instructions from a project_box to a mark_uninitialized. It did not, however, correct the end_borrow instructions when destroy_values of mark_uninitializeds were replaced with destroy_addrs of project_boxes. That is done here. In a bit more detail, in the following context %box = alloc_box %mark_uninit = mark_uninitialized %box %lifetime = begin_borrow [lexical] %mark_uninit %proj_box = project_box %lifetime When it is not statically known whether a field is initialized, we are replacing the instruction // before destroy_value %mark_uninit // after with the following diamond // before %initialized = load cond_br %initialized, yes, no yes: destroy_addr %proj_box br bottom no: br bottom bottom: dealloc_box %box br keep_going keep_going: // after Doing so is problematic, though, because by SILGen construction the destroy_value is always preceded by an end_borrow: end_borrow %lifetime destroy_value %mark_uninit Previously, that end_borrow remained above the %initialized = load instruction in the above. That was invalid because the the newly introduced destroy_addr %proj_box was a use of the borrow scope (%proj_box is a projection of the begin_borrow) and consequently must be within the borrow scope. Note also that it would not be sufficient to simply emit the diamond before the end_borrow. The end_borrow must come before the destruction of the value whose lifetime it is protecting (%box), and the diamond contains the instruction to destroy that value (dealloc_box) in its bottom block. To resolve this issue, just move the end_borrow instruction from where it was to before the dealloc box. (This is actually done by moving it to the top of the diamond's "continue" block prior to the emission of that dealloc_box instruction.) rdar://89984216
…ncy-async-top-level Make toplevel vars MainActor with `-warn-concurrency`
visualc: add new `_visualc_intrinsics` module
[interop][SwiftToC++] print C++ interface for top-level Swift functions
These opened archetypes need to be bound within their context, so any mapping out of the context will need to be explicit and map to newly-created generic parameters.
…r89150202 [CodeSynthesis] Improve synthesized `Decodable.init(from:)` for enums
…usly, the `@_backDeploy` attribute was ignored when generating SIL for accessors on declarations with the attribute since the accessor decls themselves were not directly annotated. Also, emit an error when `@_backDeploy` is applied to coroutine accessors since they are not supported yet. Resolves rdar://90112441
…back-in-your-context Stop mapping opened archetypes "out of context".
…es/di-moves-end_borrow [DI] Fixup alloc_box borrow scope ends.
SILGen: Fix accessor functions with `@_backDeploy`
[Distributed] Enable no-longer-experimental distributed by default
MaxDesiatov
approved these changes
Mar 12, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )