Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
81f84dc
Updates
Mx-Iris Aug 31, 2026
04ddc68
docs(evolutions): number the two landed-but-unnumbered proposals 0013…
Mx-Iris Aug 31, 2026
79f2fa6
docs: fold the legacy docs/superpowers directory into Documentations
Mx-Iris Sep 1, 2026
7fa3077
docs(modules): start the per-module reference series with SwiftInterface
Mx-Iris Sep 1, 2026
13af122
docs: register the new docs in the index and sync AGENTS.md
Mx-Iris Sep 1, 2026
7a005e5
refactor(printing,interface): split TypeNameResolvable into role prot…
Mx-Iris Sep 1, 2026
7012d31
feat(printing,interface): exported-only interface filtering (proposal…
Mx-Iris Sep 2, 2026
a36846d
feat(dependencies,layout,interface): share dependency resolution via …
Mx-Iris Sep 2, 2026
95615f4
docs(evolution): number the MachODependencies proposal 0017 at landing
Mx-Iris Sep 2, 2026
6ef24bc
docs: record the bisect of the swift-demangling 0.6.1 slowdown
Mx-Iris Sep 2, 2026
f378224
fix(dependencies): review follow-ups — identity dedup, arm64e slice m…
Mx-Iris Sep 2, 2026
8a672ca
refactor(abi): make MachOSwiftSection self-contained (proposal draft-…
Mx-Iris Sep 3, 2026
5570d80
docs(evolution): draft the large-stack executor and cross-version par…
Mx-Iris Sep 3, 2026
6a5423b
chore(deps): raise the swift-demangling floor to 0.6.3 (proposal larg…
Mx-Iris Sep 3, 2026
4c6bdd4
feat(concurrency): run async entry points on the large-stack task exe…
Mx-Iris Sep 3, 2026
0896a71
docs(evolution): record PR #122 on the large-stack executor proposal
Mx-Iris Sep 3, 2026
b9eadbd
fix(abi): review follow-ups — library products, member-address change…
Mx-Iris Sep 4, 2026
0c3dd9f
docs(evolution): number the self-contained ABI proposal 0018 at landing
Mx-Iris Sep 4, 2026
bd21796
Merge branch 'feature/self-contained-abi-layer' into feature/large-st…
Mx-Iris Sep 4, 2026
94a3d1c
fix(concurrency): review follow-ups — cancellation-aware concurrentMa…
Mx-Iris Sep 4, 2026
7978eef
fix(dump,interface): attribute vtable slots by method descriptor symb…
Mx-Iris Sep 6, 2026
6237ba1
docs(evolution): record PR #123 on the vtable slot attribution proposal
Mx-Iris Sep 6, 2026
51b86c2
docs(review): record the PR #123 review findings and adjudications
Mx-Iris Sep 7, 2026
e3281ef
docs(review): correct the tombstone finding — the cause holds, the wo…
Mx-Iris Sep 7, 2026
bc61f4c
docs(review): fix the descent whitelist and three overstated claims
Mx-Iris Sep 7, 2026
f56fa3a
docs(release): number the two landed proposals and cover the vtable w…
Mx-Iris Sep 7, 2026
0358368
Merge pull request #123 from MxIris-Reverse-Engineering/feature/vtabl…
Mx-Iris Sep 7, 2026
fa0f35a
ci(macOS): build the fixture the way the baselines were generated
Mx-Iris Sep 7, 2026
f198fbb
ci(macOS): build the fixture ad-hoc signed, not unsigned
Mx-Iris Sep 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
57 changes: 34 additions & 23 deletions .github/workflows/macOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
uses: actions/cache@v4
with:
path: Tests/Projects/SymbolTests/DerivedData
key: symboltests-${{ matrix.xcode-version }}-${{ hashFiles('Tests/Projects/SymbolTests/**/*.swift', 'Tests/Projects/SymbolTests/**/*.pbxproj') }}
key: symboltests-${{ matrix.xcode-version }}-${{ hashFiles('Tests/Projects/SymbolTests/**/*.swift', 'Tests/Projects/SymbolTests/**/*.pbxproj', '.github/workflows/macOS.yml') }}

- name: Build SymbolTestsCore fixture
working-directory: ${{ github.workspace }}
Expand All @@ -53,32 +53,43 @@ jobs:
-derivedDataPath Tests/Projects/SymbolTests/DerivedData \
-destination 'generic/platform=macOS' \
-quiet \
CODE_SIGNING_ALLOWED=NO \
ARCHS=arm64 \
CODE_SIGN_IDENTITY=- \
CODE_SIGNING_REQUIRED=NO \
build

- name: Normalize SymbolTestsCore fixture path
- name: Normalize fixture framework paths
run: |
set -eo pipefail
expected="Tests/Projects/SymbolTests/DerivedData/SymbolTests/Build/Products/Release/SymbolTestsCore.framework"
echo "--- find SymbolTestsCore.framework under DerivedData ---"
find Tests/Projects/SymbolTests/DerivedData -name "SymbolTestsCore.framework" -type d 2>/dev/null || true
if [ -d "$expected" ]; then
echo "Framework already at expected path; nothing to do."
exit 0
fi
# Prefer a Release build product (skip Intermediates and Debug).
found=$(find Tests/Projects/SymbolTests/DerivedData -path '*/Build/Products/Release/SymbolTestsCore.framework' -type d 2>/dev/null | head -1)
if [ -z "$found" ]; then
echo "ERROR: SymbolTestsCore.framework not found at any Build/Products/Release/ path."
echo "--- DerivedData top 3 levels ---"
find Tests/Projects/SymbolTests/DerivedData -maxdepth 3 -type d
exit 1
fi
mkdir -p "$(dirname "$expected")"
ln -sfn "$(realpath "$found")" "$expected"
echo "Linked $found -> $expected"
ls -la "$expected/Versions/A/SymbolTestsCore"
# The tests look for the frameworks under DerivedData/SymbolTests/...,
# while xcodebuild writes them to DerivedData/Build/Products/Release.
# Link every framework the tests need, not just SymbolTestsCore:
# DependencyClosureTests resolves SymbolTestsHelper through the same
# expected path, and omitting it fails that suite with
# "The file SymbolTestsHelper doesn't exist".
root="Tests/Projects/SymbolTests/DerivedData"
expected_dir="$root/SymbolTests/Build/Products/Release"
echo "--- frameworks found under DerivedData ---"
find "$root" -path '*/Build/Products/Release/*.framework' -maxdepth 6 -type d 2>/dev/null || true
mkdir -p "$expected_dir"
for framework in SymbolTestsCore SymbolTestsHelper; do
expected="$expected_dir/$framework.framework"
if [ -d "$expected" ] && [ ! -L "$expected" ]; then
echo "$framework already at expected path; nothing to do."
continue
fi
# Prefer a Release build product (skip Intermediates and Debug).
found=$(find "$root" -path "*/Build/Products/Release/$framework.framework" -type d 2>/dev/null | head -1)
if [ -z "$found" ]; then
echo "ERROR: $framework.framework not found at any Build/Products/Release/ path."
echo "--- DerivedData top 3 levels ---"
find "$root" -maxdepth 3 -type d
exit 1
fi
ln -sfn "$(realpath "$found")" "$expected"
echo "Linked $found -> $expected"
ls -la "$expected/Versions/A/$framework"
done

- name: Upload xcodebuild logs on failure
if: failure()
Expand Down Expand Up @@ -106,4 +117,4 @@ jobs:
-c ${{ matrix.configuration }} \
--enable-experimental-prebuilts \
--build-path .build-test-${{ matrix.configuration }} \
--filter '\.(SymbolTestsCoreDumpSnapshotTests|SymbolTestsCoreInterfaceSnapshotTests|SymbolTestsCoreCoverageInvariantTests|STCoreE2ETests|STCoreTests|GenericSpecializationTests|MultiPayloadEnumTests|MetadataReaderDemanglingTests)(/|$)'
--filter '\.(SymbolTestsCoreDumpSnapshotTests|SymbolTestsCoreInterfaceSnapshotTests|SymbolTestsCoreCoverageInvariantTests|STCoreE2ETests|STCoreTests|GenericSpecializationTests|MultiPayloadEnumTests|MetadataReaderDemanglingTests|DependencyLoadNameTests|DependencyClosureTests|FileDependencyLocatorTests|SwiftInterfaceBuilderDependenciesTests|ManglingPrefixTests|MethodDescriptorTests|MethodOverrideDescriptorTests|MethodDefaultOverrideDescriptorTests|ProtocolRequirementTests|ResilientWitnessTests|LargeStackTaskExecutionTests|BoundedConcurrentMapTests|SwiftEvolutionInterfaceBuilderTests|EvolutionCommandValidationTests|DiffCommandValidationTests)(/|$)'
Loading
Loading