-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
f16
and f128
step 4: basic library support
#122470
Conversation
@bjorn3 @antoyo do both GCC and Clif have CI covered enough that breaking library builds isn't a concern, as long as CI passes? Contrasting this to #114607 (comment) which is from a while ago. Most of the inlines needed there were for formatting, which I do not intend to add until a few weeks from now anyway. |
This comment has been minimized.
This comment has been minimized.
cg_clif doesn't build the standard library in CI. It reuses the one built by LLVM, so no CI passing is not enough. You also have to set cranelift as sole codegen backend in config.toml and then try a build to make it compile the standard library with cg_clif. |
I would assume it is the same as cg_cranelift, but cc-ing @GuillaumeGomez since he added the CI for cg_gcc. |
Just for information, we run a small subset of tests currently. You can see them here. I can add more if you want? |
Thanks all for the info. Is there any reason the backends couldn't try building the libraries in CI, even if tests can't be run for any reason? I can check locally but it would probably be good to have that feedback readily available, even beyond this change |
4ef0a5f
to
5bdb9dd
Compare
This comment has been minimized.
This comment has been minimized.
5bdb9dd
to
fe4d151
Compare
#121926 landed so I rebased, LLVM tests pass now. I cannot seem to get the different backends working though - running
And with
I didn't yet try the GCC backend. Is there a more automated way to test with GCC now that it is in tree, like with the LLVM submodule? Or does it still need to be built separately |
This comment has been minimized.
This comment has been minimized.
Still needs to be built separately for now. Once the vendoring PR is merged, I'll be able to start adding config so you can specify which backend to use. |
fe4d151
to
73c80c6
Compare
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #122754) made this pull request unmergeable. Please resolve the merge conflicts. |
73c80c6
to
6d2c0cf
Compare
This comment has been minimized.
This comment has been minimized.
@rustbot label +rla-silenced |
Rollup of 8 pull requests Successful merges: - rust-lang#122470 (`f16` and `f128` step 4: basic library support) - rust-lang#122954 (Be more specific when flagging imports as redundant due to the extern prelude) - rust-lang#123314 (Skip `unused_parens` report for `Paren(Path(..))` in macro.) - rust-lang#123360 (Document restricted_std) - rust-lang#123661 (Stabilize `cstr_count_bytes`) - rust-lang#123703 (Use `fn` ptr signature instead of `{closure@..}` in infer error) - rust-lang#123756 (clean up docs for `File::sync_*`) - rust-lang#123761 (Use `suggest_impl_trait` in return type suggestion on type error) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#122470 - tgross35:f16-f128-step4-libs-min, r=Amanieu `f16` and `f128` step 4: basic library support This is the next step after rust-lang#121926, another portion of rust-lang#114607 Tracking issue: rust-lang#116909 This PR adds the most basic operations to `f16` and `f128` that get lowered as LLVM intrinsics. This is a very small step but it seemed reasonable enough to add unopinionated basic operations before the larger modules that are built on top of them. r? ```@Amanieu``` since you were pretty involved in the RFC cc ```@compiler-errors``` ```@rustbot``` label +T-libs-api +S-blocked +F-f16_and_f128
@craterbot run mode=check-only start=master#aa067fb984d36462548bb785da221bfaf38253f0 end=try#530e69408e76a29e47f25e5aedaf0e3fdf629e5b |
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
@craterbot abort |
🗑️ Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
@craterbot run mode=check-only start=master#aa067fb984d36462548bb785da221bfaf38253f0 end=try#707d6562f55b55a7aab4ab3a904997116b358314 Trying with an actually existing commit from the unrolled build. |
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🎉 Experiment
|
Re-add `From<f16> for f64` This impl was originally added in rust-lang#122470 before being removed in rust-lang#123830 due to rust-lang#123831. However, the issue only affects `f32` (which currently only has one `From<{float}>` impl, `From<f32>`) as `f64` already has two `From<{float}>` impls (`From<f32>` and `From<f64>`) and is also the float literal fallback type anyway. Therefore it is safe to re-add `From<f16> for f64`. This PR also updates the FIXME link to point to the open issue rust-lang#123831 rather than the closed issue rust-lang#123824. Tracking issue: rust-lang#116909 `@rustbot` label +F-f16_and_f128 +T-libs-api
Re-add `From<f16> for f64` This impl was originally added in rust-lang#122470 before being removed in rust-lang#123830 due to rust-lang#123831. However, the issue only affects `f32` (which currently only has one `From<{float}>` impl, `From<f32>`) as `f64` already has two `From<{float}>` impls (`From<f32>` and `From<f64>`) and is also the float literal fallback type anyway. Therefore it is safe to re-add `From<f16> for f64`. This PR also updates the FIXME link to point to the open issue rust-lang#123831 rather than the closed issue rust-lang#123824. Tracking issue: rust-lang#116909 `@rustbot` label +F-f16_and_f128 +T-libs-api
This is the next step after #121926, another portion of #114607
Tracking issue: #116909
This PR adds the most basic operations to
f16
andf128
that get lowered as LLVM intrinsics. This is a very small step but it seemed reasonable enough to add unopinionated basic operations before the larger modules that are built on top of them.r? @Amanieu since you were pretty involved in the RFC
cc @compiler-errors
@rustbot label +T-libs-api +S-blocked +F-f16_and_f128