Skip to content

Conversation

@compnerd
Copy link
Member

@compnerd compnerd commented Jul 2, 2020

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@compnerd
Copy link
Member Author

compnerd commented Jul 2, 2020

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.

@compnerd
Copy link
Member Author

compnerd commented Jul 2, 2020

@swift-ci please clean test

@swift-ci
Copy link
Contributor

swift-ci commented Jul 2, 2020

Build failed
Swift Test Linux Platform
Git Sha - 2ff2464ee5baa48792bc1e2157bd2de1208d8a9f

@compnerd
Copy link
Member Author

compnerd commented Jul 3, 2020

@swift-ci please test Windows platform

@compnerd
Copy link
Member Author

compnerd commented Jul 3, 2020

@swift-ci please clean test Linux platform

@swift-ci
Copy link
Contributor

swift-ci commented Jul 3, 2020

Build failed
Swift Test Linux Platform
Git Sha - 2ff2464ee5baa48792bc1e2157bd2de1208d8a9f

Copy link
Member

@DougGregor DougGregor left a 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!

Copy link
Contributor

@beccadax beccadax left a 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!

Copy link
Contributor

@beccadax beccadax Jul 9, 2020

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.

Copy link
Member Author

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.

@compnerd compnerd force-pushed the grand-unified-module-theory branch from 2ff2464 to b30b62c Compare July 19, 2020 19:33
@compnerd
Copy link
Member Author

@swift-ci please clean test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 2ff2464ee5baa48792bc1e2157bd2de1208d8a9f

@compnerd compnerd force-pushed the grand-unified-module-theory branch from b30b62c to 6853f07 Compare July 19, 2020 19:36
@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - b30b62c29659591035621676744bea26c3c554bd

@compnerd compnerd force-pushed the grand-unified-module-theory branch from 6853f07 to 6de5212 Compare July 23, 2020 15:59
@compnerd compnerd force-pushed the grand-unified-module-theory branch from 6de5212 to 4e7bb92 Compare July 28, 2020 00:33
@compnerd
Copy link
Member Author

Updated lit configuration (there was a new substitution change), fix the interpreter test.

@compnerd
Copy link
Member Author

@swift-ci please clean test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 4e7bb92e5072e756d0d07fcdc1c9d9a853b3f9af

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 4e7bb92e5072e756d0d07fcdc1c9d9a853b3f9af

@compnerd
Copy link
Member Author

@swift-ci please clean test Linux platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 4e7bb92e5072e756d0d07fcdc1c9d9a853b3f9af

@compnerd compnerd force-pushed the grand-unified-module-theory branch from 4e7bb92 to cde5ac0 Compare July 28, 2020 18:27
@compnerd
Copy link
Member Author

@swift-ci please clean test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 4e7bb92e5072e756d0d07fcdc1c9d9a853b3f9af

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 4e7bb92e5072e756d0d07fcdc1c9d9a853b3f9af

@compnerd
Copy link
Member Author

compnerd commented Aug 1, 2020

Please test with following PRs:
swiftlang/llvm-project#1577

@swift-ci please clean test

@swift-ci
Copy link
Contributor

swift-ci commented Aug 1, 2020

Build failed
Swift Test Linux Platform
Git Sha - cde5ac0ad291a0d6e341d3323bf018e43aecb24e

@compnerd compnerd force-pushed the grand-unified-module-theory branch from cde5ac0 to 97bacd5 Compare August 3, 2020 15:47
@compnerd
Copy link
Member Author

compnerd commented Aug 3, 2020

@swift-ci please clean test

@swift-ci
Copy link
Contributor

swift-ci commented Aug 3, 2020

Build failed
Swift Test Linux Platform
Git Sha - 97bacd5e10a33d28407ed95420bd68b9c41f0060

@compnerd
Copy link
Member Author

compnerd commented Aug 3, 2020

@swift-ci please test Linux platform

@swift-ci
Copy link
Contributor

swift-ci commented Aug 4, 2020

Build failed
Swift Test Linux Platform
Git Sha - 97bacd5e10a33d28407ed95420bd68b9c41f0060

@compnerd
Copy link
Member Author

compnerd commented Aug 4, 2020

Please test with following PRs:
swiftlang/llvm-project#1577

@swift-ci please clean test

@swift-ci
Copy link
Contributor

swift-ci commented Aug 4, 2020

Build failed
Swift Test Linux Platform
Git Sha - 97bacd5e10a33d28407ed95420bd68b9c41f0060

@swift-ci
Copy link
Contributor

swift-ci commented Aug 4, 2020

Build failed
Swift Test OS X Platform
Git Sha - 97bacd5e10a33d28407ed95420bd68b9c41f0060

@compnerd
Copy link
Member Author

compnerd commented Aug 4, 2020

@swift-ci please clean test

@swift-ci
Copy link
Contributor

swift-ci commented Aug 4, 2020

Build failed
Swift Test Linux Platform
Git Sha - 97bacd5e10a33d28407ed95420bd68b9c41f0060

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.
@compnerd compnerd force-pushed the grand-unified-module-theory branch from 97bacd5 to a7a1788 Compare September 13, 2020 17:55
@compnerd
Copy link
Member Author

@swift-ci please clean test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - a7a17880990b7fa778c8cc9ac455f048a6703acb

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.
@compnerd compnerd force-pushed the grand-unified-module-theory branch from a7a1788 to af868e5 Compare September 14, 2020 00:47
@compnerd
Copy link
Member Author

@swift-ci please clean test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - a7a17880990b7fa778c8cc9ac455f048a6703acb

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - a7a17880990b7fa778c8cc9ac455f048a6703acb

@compnerd
Copy link
Member Author

@swift-ci please test windows platform

@compnerd
Copy link
Member Author

Please test with following PRs:
swiftlang/llvm-project#1799

@swift-ci please test Linux platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - af868e5

@compnerd
Copy link
Member Author

CC: @adrian-prantl

@compnerd
Copy link
Member Author

Please test with following PRs:
swiftlang/llvm-project#1799

@swift-ci please test Linux platform

@adrian-prantl
Copy link
Contributor

Do you have an example of old versus new layout?

@compnerd
Copy link
Member Author

@adrian-prantl sure:

Old:

usr/lib/swift/linux/x86_64/Swift.swiftmodule
usr/lib/swift/linux/x86_64/Swift.swiftdoc
usr/lib/swift/linux/x86_64/Swift.swiftinterface

New:

usr/lib/swift/linux/Swift.swiftmodule/x86_64-unknown-linux-gnu.swiftmodule
usr/lib/swift/linux/Swift.swiftmodule/x86_64-unknown-linux-gnu.swiftdoc
usr/lib/swift/linux/Swift.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface

Basically, the Darwin layout and Linux/Windows layout will be identical.

@compnerd
Copy link
Member Author

@swift-ci please test macOS platform

@adrian-prantl
Copy link
Contributor

That looks like an improvement :-)
Thanks!

@adrian-prantl adrian-prantl self-requested a review September 15, 2020 19:01
@compnerd compnerd merged commit 507ffe6 into swiftlang:master Sep 16, 2020
@compnerd compnerd deleted the grand-unified-module-theory branch September 16, 2020 00:23
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.

5 participants