RemoteInspection was failing to produce type info for metatypes of
constrained existentials (any SomeType<ConstraintHere>.Type)
A constrained existential has the same layout as a regular protocol
composition, so we can use that instead.
rdar://176586637
The names of enum elements that are made unavailable at runtime via custom
availability conditions shouldn't leak through Swift's reflection metadata.
Don't emit the names into the metadata. These enum elements should really be
skipped entirely for layout and tag generation, but that's a riskier change
that will need to come later.
Resolves rdar://175803941.
rebuildStorageTypeInfo only handled ReferenceTypeInfo and
RecordKind::ClassExistential inner types for unmanaged_storage, but
failed for imported unmanaged types which are imported behind a
pointer (which is a struct).
rdar://175379963
Plumb the `BitwiseBorrowable` and `AddressableForDependencies` layout
properties through reflection TypeLowering, and implement type layout
for `Builtin.Borrow` based on those properties.
This patch adds parsing and extracting of the Swift reflection
metadata data segments from within the WebAssembly DATA section and
tests it using swift-reflection-dump. This is needed to allow LLDB to
acces Swift reflection metadata when attached to WebAssembly
processes.
rdar://159217213
LLD relocates some of the metadata sections resulting in bad offsets at
runtime.
The workaround is to pass `-no-rosegment` to the linker invocation.
rdar://159139154
We could encode local archetypes in reflection info by performing the
local archetype transform, to get an extended generic signature together
with substitutions for the added generic parameters.
However, for now, let's just not crash. This generalizes an earlier hack
for opened existential archetypes. Instead of replacing them with
nonsensical type parameters though, let's just not emit the whole
descriptor.
- Fixes https://github.com/swiftlang/swift/issues/83539.
- Fixes rdar://157554723.
The tests broke on the community Android CI since #82325, and I just
noticed the install issue when cross-compiling Testing with a
freshly-built compiler, which I'd never done before. Also, fix the NDK
path shown in the CMake output.
ObjectFileContext doesn't currently support chained fixups. We previously disabled chained ifxups in some other reflection tests but not this one.
rdar://137532051
ObjectFileContext doesn't currently support chained fixups. For now, avoid building the test binaries with chained fixups to avoid issues.
This adds a %no-fixup-chains substitution which resolves to -Xlinker -no_fixup_chains on Darwin, and to nothing on everything else.
rdar://145442500
Unified builds of compiler-rt together with LLVM failed for the Android SDKs. It got too complicated to redirect the way LLVM would configure the nested build-trees. Standalone builds slightly increase build time, but they turned out much simpler and we end up with less duplication of definitions.
This test was failing for a long time, spontaneously started working, and now seems to have spontaneously started failing again. Turning it back off, just on Linux aarch64, until we can figure out how to fix it.
rdar://137532051
We are already using 5.4 target as a workaround for missing
LC_DYLD_CHAINED_FIXUPS support in reflection tools, but we need to
further workaround a linker bug in older versions of ld-prime that
caused appletv simulator platform to be misidentified and use chained
fixups earlier than it should, so move back to 5.2.
No metadata is emitted for the builtin DefaultActorStorage type. Since
its layout is fixed, hardcode its definition in Remote Mirrors.
rdar://128032250
Existing code does not visit such declarations and does not mark them to be preserved in the binary even if not public and used.
Resolves rdar://127903662
This change introduces a new compilation target platform to the Swift compiler - visionOS.
- Changes to the compiler build infrastrucuture to support building compiler-adjacent artifacts and test suites for the new target.
- Addition of the new platform kind definition.
- Support for the new platform in language constructs such as compile-time availability annotations or runtime OS version queries.
- Utilities to read out Darwin platform SDK info containing platform mapping data.
- Utilities to support re-mapping availability annotations from iOS to visionOS (e.g. 'updateIntroducedPlatformForFallback', 'updateDeprecatedPlatformForFallback', 'updateObsoletedPlatformForFallback').
- Additional tests exercising platform-specific availability handling and availability re-mapping fallback code-path.
- Changes to existing test suite to accomodate the new platform.