-
Notifications
You must be signed in to change notification settings - Fork 10.6k
Unified Swift Module Layout #32690
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
Unified Swift Module Layout #32690
Conversation
|
CC: @brentdax @DougGregor This set of changes allows us to have the same module structure on all the platforms. This actually cleans up the cross-compilation path on Windows and Linux, simplifies the build rules, simplifies the driver (in the long run - in the short term, there is a little bit of complexity to get migration compatibility). It also means that there is less overhead on the developer to consider different layouts. |
|
@swift-ci please clean test |
|
Build failed |
|
@swift-ci please test Windows platform |
|
@swift-ci please clean test Linux platform |
|
Build failed |
DougGregor
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The unification here looks good, thank you!
beccadax
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some minor suggestions—I like this change overall!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In theory, this is a change of behavior for Mac Catalyst, but I don't see any signs that this particular path was ever exercised by Catalyst libraries, so it should be fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was purely a mechanical unconditonalization of the paths. I was aiming to do the minimal thing to make this work. There were a few paths that were of questionable value, but this isn't about the cleanup to the build, merely trying to get the same structure on all the targets.
2ff2464 to
b30b62c
Compare
|
@swift-ci please clean test |
|
Build failed |
b30b62c to
6853f07
Compare
|
Build failed |
6853f07 to
6de5212
Compare
6de5212 to
4e7bb92
Compare
|
Updated lit configuration (there was a new substitution change), fix the interpreter test. |
|
@swift-ci please clean test |
|
Build failed |
|
Build failed |
|
@swift-ci please clean test Linux platform |
|
Build failed |
4e7bb92 to
cde5ac0
Compare
|
@swift-ci please clean test |
|
Build failed |
|
Build failed |
|
Please test with following PRs: @swift-ci please clean test |
|
Build failed |
cde5ac0 to
97bacd5
Compare
|
@swift-ci please clean test |
|
Build failed |
|
@swift-ci please test Linux platform |
|
Build failed |
|
Please test with following PRs: @swift-ci please clean test |
|
Build failed |
|
Build failed |
|
@swift-ci please clean test |
|
Build failed |
Adjust the serialized module loader to allow directory layouts for the Swift module on non-Darwin targets, unifying the layout across all the platforms. It also eases cross-architecture and cross-platform development by having the same layout, which can enable more similar flag usage.
97bacd5 to
a7a1788
Compare
|
@swift-ci please clean test |
|
Build failed |
This changes the install layout to be similar across Darwin and non-Darwin platforms. This will enable simplifying the user experience, build infrastructure, and the driver as the SDK layout converges towards a single layout on all the platforms.
a7a1788 to
af868e5
Compare
|
@swift-ci please clean test |
|
Build failed |
|
Build failed |
|
@swift-ci please test windows platform |
|
Please test with following PRs: @swift-ci please test Linux platform |
|
Build failed |
|
CC: @adrian-prantl |
|
Please test with following PRs: @swift-ci please test Linux platform |
|
Do you have an example of old versus new layout? |
|
@adrian-prantl sure: Old: New: Basically, the Darwin layout and Linux/Windows layout will be identical. |
|
@swift-ci please test macOS platform |
|
That looks like an improvement :-) |
Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.
Resolves SR-NNNN.