Skip to content
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

Use newer split module flag with Swift 5.4 #699

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

brentleyjones
Copy link
Collaborator

@brentleyjones brentleyjones commented Oct 14, 2021

Uses the newer -experimental-skip-non-inlinable-function-bodies-without-types which was introduced here: apple/swift#34612. This should improve LLDB usage in some cases.

When using WMO, it has two downsides in Swift 5.5, both introduced by apple/swift#38939:

  • The swiftmodules will have swiftdeps info embedded in them, which is only needed for incremental compilation
  • Interface hashing is enabled, which again is only needed for incremental compilation

This is because the swift compiler only expects -experimental-skip-non-inlinable-function-bodies-without-types to be used with the new -emit-module-separately incremental build. In the same vein, in order to support split modules with incremental builds, we need to use this flag (though we could choose to use this version only with incremental + split modules, if we decide it's not worth the above regressions).

Uses the newer `-experimental-skip-non-inlinable-function-bodies-without-types` which was introduced here: apple/swift#34612. This should improve LLDB usage in some cases.

When using WMO, it has two downsides in Swift 5.5, both introduced by apple/swift#38939:
- The swiftmodules will have swiftdeps info embedded in them, which is only needed for incremental compilation
- Interface hashing is enabled, which again is only needed for incremental compilation

This is because the swift compiler only expects `-experimental-skip-non-inlinable-function-bodies-without-types` to be used with the new `emit-module-separately` incremental build.
@google-cla google-cla bot added the cla: yes label Oct 14, 2021
@lyft-lint-bot
Copy link

Lyft integration job started: https://buildkite.com/lyft/rules-swift/builds/71 (must be Lyft employee to view)

@brentleyjones
Copy link
Collaborator Author

I'm not sure how to make the test differ based on Xcode version used.

@keith
Copy link
Member

keith commented Oct 22, 2021

do the embedded swiftdeps include all the normal things like timestamps?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants