[Explicit Module Builds] Prevent SerializedModuleLoader from running in Explicit Module Build mode.#32903
Conversation
a9910d6 to
7cefbf9
Compare
|
@swift-ci test |
nkcsgexi
left a comment
There was a problem hiding this comment.
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.
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.
In order to avoid accidentally implicitly loading modules that are expected but were not provided as explicit inputs.