Open dabrahams opened 7 years ago
@swift-ci create
In fact I very commonly see overlays and other components that depend on the standard library building long before the standard library is finished compiling. Is it possible they're all depending on the .swiftmodule but not the .dylib, but they need to depend on both?
Please make this a priority; it really gets in the way of standard library development.
/cc najacque (JIRA User)
najacque (JIRA User) Can you please escalate this? It's gotten to the point that I need to do
cd ~/src/s/swift && find . -name '*.swift*' -not -path './stdlib/public/core/*' -print0 | xargs -0 touch
after I change anything in the standard library. Otherwise I get link errors and my benchmark results are out-of-date.
@shahmishal You might need to add something like the above to any incremental builds in CI until this is fixed.
zisko (JIRA User) I think you told me you were going to add a patch to the build script to squash this problem until we could implement a real solution?
Escalating to @bob-wilson since nothing seems to be happening here.
Bob, this problem makes it impossible to be sure you are getting accurate benchmark or test results unless you touch all the other swift files whenever the stdlib (and presumably, the compiler too?) changes. IMO this is an intolerable fragility. It didn't use to be this way; it regressed.
I've been manually using this, but it's still easy to forget:
#!/usr/bin/env bash -e -o pipefail
top=$(git rev-parse --show-toplevel 2>/dev/null || echo "$HOME/src/s/swift")
cd "${top}"
find . -name '*.swift*' -not -path './stdlib/public/core/*' -not -path './test/*' -not -path './validation-test/*' -print0 | xargs -0 touch
Weird; I just saw this happen when I built without the extra "touch" step:
+ /Users/dave/brew/bin/cmake --build /Users/dave/src/s/build/Ninja-Release/swift-macosx-x86_64 -- -j20 all swift-test-stdlib-macosx-x86_64 swift-benchmark-macosx-x86_64
[1/306] Generating SwiftRevision.inc
[2/84] Generating Substring.swift from Substring.swift.gyb with ptr size = 8
...
It's as though generating SwiftRevision.inc brought a bunch of targets up-to-date or something.
Additional Detail from JIRA
| | | |------------------|-----------------| |Votes | 0 | |Component/s | Project Infrastructure | |Labels | Bug, BuildScript | |Assignee | @bob-wilson | |Priority | Medium | md5: 816665ab1842c12203bf934db4311a18Issue Description:
I keep seeing things like this when I make changes in the Standard library, especially to types with lots of
@_transparent
methods:simd.o is another one that was failing to be linked recently.
Is it possible these .o files aren't dependent on the standard library's .o file in the build system?