Repository navigation
ci: build the no_std decoder for x86_64-unknown-none - #552
Conversation
The no-std job runs clippy for the host, which always has SSE2 and a
float unit. A kernel target has neither: x86_64-unknown-none is
-mmx,-sse,-sse2,...,+soft-float. Vector code that reaches codegen there
fails only on that target, and as an LLVM error rather than a type
error, so the host steps cannot see it. Earlier code in this crate did
exactly that: with the x86 huff0 SIMD gated on `target_arch` alone, a
`--no-default-features` build for this target stopped with
rustc-LLVM ERROR: Do not know how to split the result of this operator!
Current main builds cleanly for it, including with the x86 kernel tiers
enabled (they are inert without the target feature, and stay inert even
with the no_std tier selection forced on). This step keeps it that way.
It builds both profiles, since -O0 and -O3 lower differently, with no
SIMD tier and with `kernel-avx2`.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 33 minutes. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to Code-changing pull requests now build the no-std library for both feature sets and profiles; no concrete merge-blocking risk is evident. 🚥 Pre-merge checks | ✅ 5
✨ Finishing Touches 💡 1
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Thank you for the pull request. Before it can be merged, every author of its commits signs the Contributor License Agreement once. You keep the copyright in your contribution; the agreement is a license to the maintainer. Not signed yet: @myers The status updates by itself once everyone has signed. |
Summary
x86_64-unknown-none, a target with no SSE and soft float, in bothdevandrelease.Context
Earlier code in this crate hit exactly that: with the x86 huff0 SIMD gated on
target_archalone, a--no-default-featuresbuild for this target stopped withCurrent main builds cleanly for it, including with
kernel-avx2(the tiers are inert without the target feature, and stay inert even with the no_std tier selection forced on), so this step finds nothing today. It is there to keep it that way: I could not construct a mutation on main that it catches and the host steps miss, so treat it as a guard rather than a fix.Changes
rustup target add x86_64-unknown-none, thencargo build -p structured-zstd --libfor that target with--no-default-features --features hashand with--features kernel-avx2,hash, in both profiles.Testing
All four builds pass locally on stable 1.97.1.
Summary by CodeRabbit