Skip to content

Manually merge main to rebranch #77211

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 49 commits into from
Oct 24, 2024

Conversation

bnbarham
Copy link
Contributor

Conflicts:

  • test/IRGen/has_symbol.swift test updates in rebranch. Modified test for new codegen.

artemcm and others added 30 commits October 21, 2024 14:12
…sing Swift compilation Target Triple.

As per swiftlang#65930, the Clang importer's Clang instance may be configured with a different (higher) OS version than the compilation target itself in order to be able to load pre-compiled Clang modules that are aligned with the broader SDK, and match the SDK deployment target against which Swift modules are also built. Code-generation, however, must use the actual compilation target triple. This matches how Swift itself loads Swift module dependencies as well: dependency '.swiftinterface' files are type-checked against the availability epoch and code-generated against the actual compilation triple.

Resolves rdar://113712186
`Builtin.FixedArray<let N: Int, T: ~Copyable & ~Escapable>` has the layout of `N` elements of type `T` laid out
sequentially in memory (with the tail padding of every element occupied by the array). This provides a primitive
on which the standard library `Vector` type can be built.
Most constraints don't have a fix, so we can tail-allocate the fix.
This saves 16 bytes per constraint, because it also eliminates some
padding.
OverloadChoice is rather large, 40 bytes.
These functions are never called while undoing a change; so
we want to assert if we have an active undo instead of
silently not recording the change.
…containing ParameterizedProtocolType

This fixes a soundness hole. We can't just match up the primary
associated types of different protocols.
The experimental feature the test requires is available in non-asserts
compilers.
Along with `get` and `set`, permit `read` to be required.  When a type
defines `read`, the read impl is that `read`.
With the `CoroutineAccessors` feature, `read` is allowed along with
`get` and `set`; alter the diagnostic that's issued when a disallowed
introducer is listed in the requirement list to indicate that `read` is
one of those which are valid, but only when the feature is enabled.
Make refactoring the availability checker easier by making functions that are
only called by `TypeCheckAvailability.cpp` static in that file.
[IRGen] Support generic but concrete metatypes with hasSymbol
The new code needs to not build for iOS.

rdar://137551812
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.