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
work around SR-11680 #145
work around SR-11680 #145
Conversation
The linked SR-11680 has different environment specified, namely Xcode 11.0, swift-5.1-RELEASE. Does that mean that using nightlies is not required to reproduce it? |
Hi @mayoff, thanks for pointing out this issue! However, we can't use the
So, basically, clients won't be able to depend on OpenCombine. What I would suggest to do is simply define |
Codecov Report
@@ Coverage Diff @@
## master #145 +/- ##
==========================================
+ Coverage 98.24% 98.29% +0.05%
==========================================
Files 84 82 -2
Lines 4730 4639 -91
==========================================
- Hits 4647 4560 -87
+ Misses 83 79 -4 Continue to review full report at Codecov.
|
LGTM Generated by 🚫 Danger Swift against c44eda4 |
@MaxDesiatov I don't know if the RELEASE builds at https://swift.org/download/ are built with assertions. You could (I assume) trigger the same error by manually setting @broadwaylamb Oh, good point. I'll revise the patch to non-inline the function. |
The Swift bug report: https://bugs.swift.org/browse/SR-11680 Swift nightly toolchains are available here: https://swift.org/download/ The Swift nightly toolchains cannot build OpenCombine. Here's why: The COpenCombineHelpers target defines a non-static function (`opencombine_stop_in_debugger`) in a header file. This function is emitted in the target's IR, but not in the target's TBD. Swift nightly toolchains have assertions enabled, so they use the -validate-tbd-against-ir=missing build setting. This build setting makes the compiler fail if the TBD doesn't match the IR. This commit un-inlines `opencombine_stop_in_debugger`, so it is not emitted in the IR. This stops the TBD validator from complaining.
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.
Nice!
I have rewritten the patch so that it no longer uses |
The Swift bug report: https://bugs.swift.org/browse/SR-11680 Swift nightly toolchains are available here: https://swift.org/download/ The Swift nightly toolchains cannot build OpenCombine. Here's why: The COpenCombineHelpers target defines a non-static function (`opencombine_stop_in_debugger`) in a header file. This function is emitted in the target's IR, but not in the target's TBD. Swift nightly toolchains have assertions enabled, so they use the -validate-tbd-against-ir=missing build setting. This build setting makes the compiler fail if the TBD doesn't match the IR. This commit un-inlines `opencombine_stop_in_debugger`, so it is not emitted in the IR. This stops the TBD validator from complaining.
The Swift bug report: https://bugs.swift.org/browse/SR-11680
Swift nightly toolchains are available here: https://swift.org/download/
The Swift nightly toolchains cannot build OpenCombine. Here's why:
The COpenCombineHelpers target defines a non-static function
(opencombine_stop_in_debugger) in a header file. This function is
emitted in the target's IR, but not in the target's TBD.
Swift nightly toolchains have assertions enabled, so they use the
-validate-tbd-against-ir=missing
build setting. This build settingmakes the compiler fail if the TBD doesn't match the IR.
This commit turns off the build setting for the OpenCombine target.