-
Couldn't load subscription status.
- Fork 10.6k
[Explicit Module Builds] Prevent SerializedModuleLoader from running in Explicit Module Build mode. #32903
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
a9910d6 to
7cefbf9
Compare
|
@swift-ci test |
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.
Makes sense to me! Only a minor suggestion.
7cefbf9 to
62286f4
Compare
|
@swift-ci test |
|
Build failed |
|
Build failed |
|
Build failed |
|
Build failed |
|
Please test with following PR: @swift-ci Please test |
|
Build failed |
|
Build failed |
62286f4 to
d54460d
Compare
|
Please test with following PR: @swift-ci Please test |
|
Build failed |
|
Build failed |
|
Please test with following PR: @swift-ci Please test |
|
Build failed |
|
Build failed |
3877689 to
5836a7a
Compare
|
Please test with following PR: @swift-ci Please test |
|
Build failed |
|
Build failed |
5836a7a to
8cbba04
Compare
|
@swift-ci please test |
|
Build failed |
|
Build failed |
|
Please test with following PR: @swift-ci Please smoke test |
|
Build failed |
|
Build failed |
9c294fd to
7fe842e
Compare
|
Please test with following PR: @swift-ci Please smoke test |
7fe842e to
c1da91d
Compare
|
Please test with following PR: @swift-ci Please smoke test |
…in Explicit Module Build mode. In order to avoid accidentally implicitly loading modules that are expected but were not provided as explicit inputs. - Use either SerializedModuleLoader or ExplicitSwiftModuleLoader for loading of partial modules, depending on whether we are in Explicit Module Build or Implicit Module Build mode.
c1da91d to
140fd73
Compare
|
Please test with following PR: @swift-ci Please smoke test |
|
This seems to have caused a regression on the Windows builder: Could you please take a look @artemcm? CC: @shahmishal - seems that the CI didn't trigger? |
@compnerd , what is the path structure for |
|
It is identical to Linux, just with |
Got it, I'll prepare a patch right away. |
Repair the Windows build after swiftlang#32903
In swiftlang#32903, a substitution pseudovariable was introduced to refer to the path containing Swift.swiftmodule. Since builds on Linux put this file in a path with a subdirectory named after the architecture name -- and presumably builds on mac OS do not, a conditional was required to distinguish these two cases. However, builds on OpenBSD for example also put Swift.swiftmodule in a similar subdirectory like Linux. Thus, invert the sense of this conditional to encompass both Linux, OpenBSD, and make mac OS the specific case, which it is here.
| // [Note: ModuleInterfaceLoader-defer-to-SerializedModuleLoader]), which | ||
| // [Note: ModuleInterfaceLoader-defer-to-ImplicitSerializedModuleLoader]), which | ||
| // is interpreted by the overarching loader as a command to use the | ||
| // SerializedModuleLoader. If we failed to find a .swiftmodule, this falls | ||
| // ImplicitSerializedModuleLoader. If we failed to find a .swiftmodule, this falls |
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.
Please be careful about updating comments. There are a couple of issues here:
- This is exceeding the line length limit now.
- This broke a reference to the note, since the reference now has a new name but the note's name in
ModuleInterfaceLoader.cppis not changed in this PR.
I'm going to fix these two issues in an upcoming PR, it's not a big deal; just something to be careful about.
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.
PR with fix: #33124
In order to avoid accidentally implicitly loading modules that are expected but were not provided as explicit inputs.