-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Don't emit debug line numbers for Swift type forward declarations #31750
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
Conversation
@swift-ci test |
Build failed |
@swift-ci test |
It's actually the opposite problem -- incremental builds don't trigger recompilation of dependencies on whitespace changes, so @davidungar's incremental build test tool was finding false positives by rebuilding unchanged files and observing that the LLVM IR had changed. |
I was describing the problem from the perspective of a compiler that correctly tracks the dependencies 😈 |
These line numbers are consumed by LLDB and stored in the Declaration object, but as far as I can tell no user-facing feature relies on this. Removing the line number can reduce the churn for incremental builds significantly, since whitespace changes in one file may trigger a recompilation of any file that uses a type declared below the whitespace change. <rdar://problem/63156560>
@swift-ci test |
Build failed |
Build failed |
@swift-ci test and merge |
@swift-ci test |
Is this change only supposed to remove |
Yes that's the expected behavior. What's the use-case you have for looking at the source file for a struct? |
Thanks for replying, @adrian-prantl. We use that information to identify the owner of flaky tests. In our codebase, every source file has an owning team which is defined in a special file in one of the parent directories. The unit test report only contains class name and method name, not the source file. So we use |
If you |
Yes, it does! |
Yes. See also http://dwarfstd.org/Dwarf5Std.php |
These line numbers are consumed by LLDB and stored in the Declaration object,
but as far as I can tell no user-facing feature relies on this.
Removing the line number can reduce the churn for incremental builds
significantly, since whitespace changes in one file may trigger a recompilation
of any file that uses a type declared below the whitespace change.
rdar://problem/63156560