Skip to content

feat(demangle): Import libswift demangle 6.3.1#980

Merged
Dav1dde merged 9 commits into
masterfrom
dav1d/swift-6.3.1
May 19, 2026
Merged

feat(demangle): Import libswift demangle 6.3.1#980
Dav1dde merged 9 commits into
masterfrom
dav1d/swift-6.3.1

Conversation

@Dav1dde
Copy link
Copy Markdown
Member

@Dav1dde Dav1dde commented May 18, 2026

Fixes: #979
Refs: #913

  • Updates the Python script to add a missing header which can't be inferred from clang -H.
  • Updates the build and Python script to exclude cpp files which aren't actually needed.
  • Updates the patch.
  • Updates the readme to first checkout, then run the scripts from the repo
  • Added the testcase from feat(demangle): Import libswift demangle 6.1.0 #913, potentially adding another testcase for 6.3

There is a failing test case $s11Supercharge2AXO7ElementPAAE8elements33_35EDDAA799FBB5B74D2F426690B0D99DLL3for2asSayqd__GSo28NSAccessibilityAttributeNamea_qd__mtSo7AXErrorVYKAcDRd__lFAC3AppC_AC6WindowCTgm5 which I removed, it also fails with swift demangle on the command line. Best guess right now is, that the original symbol is now mangled differently and the old version can't be de-mangled.
I will do a timeboxed investigation if we can support the old mangled string, but generally we prefer supporting more recent versions over older ones.

@Dav1dde Dav1dde requested a review from a team as a code owner May 18, 2026 15:08
@Dav1dde Dav1dde marked this pull request as draft May 18, 2026 15:08
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against f2ebaa6

Comment thread symbolic-demangle/vendor/swift/lib/Demangling/Remangler.cpp
cursor[bot]

This comment was marked as off-topic.

@Dav1dde Dav1dde force-pushed the dav1d/swift-6.3.1 branch from a01082c to 2d9e4e2 Compare May 18, 2026 15:16
@Dav1dde Dav1dde marked this pull request as ready for review May 18, 2026 15:18
Comment thread symbolic-demangle/vendor/swift/README.md Outdated
@Brett-Best
Copy link
Copy Markdown

Brett-Best commented May 18, 2026

Test cases that can be added:

  1. $s12SharedDomain7ServiceC06streamC0_4bodyACXDScSyxG_yxYaYbKYCcts8SendableRzlFZyycAA06StreamC0CYbcfu_yycfu0_Tm
  2. $s18OrderedCollections0A10DictionaryV20uniqueKeysWithValuesACyxq_Gqd___tcSTRd__x_q_t7ElementRtd__lufC6TaggedAHVy8SportsUI0J23ParticipantRowViewModelVSSG_ALs15LazyMapSequenceVySayALGAM_ALtGTt0g5Tf4g_n

These currently fail and can be added.

@Dav1dde
Copy link
Copy Markdown
Member Author

Dav1dde commented May 18, 2026

@Brett-Best thanks, added the tests and confirmed they fail on master. Marked them as 6.3 even though technically they could be 6.2 or anything in between, but that should be fine.

Also found a solution to fix the breaking test in #981 with an additional patch.

@Brett-Best
Copy link
Copy Markdown

Thanks @Dav1dde, appreciate the quick turnaround once I landed in the right place :)

@Dav1dde Dav1dde merged commit ce93a03 into master May 19, 2026
21 checks passed
@Dav1dde Dav1dde deleted the dav1d/swift-6.3.1 branch May 19, 2026 10:43
Dav1dde added a commit that referenced this pull request May 19, 2026
Follow-up for the 6.3.1 upgrade in #980 restoring a removed test, which
breaks with the upgrade.

With the upgrade support for `MetatypeParamsRemoved` was removed from
the demangler, this was previously represented with a `m` in the mangled
string. This patch skips the `m` marker to keep the correctly demangle
the rest of the string.
This does break re-mangling of these strings, but symbolic does not
expose any remangling functionality.

If this patch ever becomes a problem in the future, it may be removed,
it's only required for compatibility with old compiler versions and we
generally prefer staying compatible with recent compilers.
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.

Update Swift demangler

3 participants