Repository navigation
chore(pins): move the conformance pin to cuda-oxide b0f961df - #161
Merged
Merged
Conversation
Twenty-one commits, same nightly, so this is the pin alone and no toolchain move. Its own commit, per docs/RELEASING.md, with the gates re-run at the new rev rather than assumed. The baseline diff is seven new gating findings and nothing lost. conformance_unroll_bounds_check is upstream's regression corpus for a bounds-check bug in the #[unroll] MIR transform, and all seven of its kernels take `arr: &mut [u32]` so the slice can be indexed out of range on purpose (`arr[999] = 7`). RC003 is correct on every one; they are reviewed true positives and are recorded in EXPECTED with that reason. The surface gate found one new upstream function, thread::__grid_constant_config. It is a #[doc(hidden)] compile-time launch-ABI marker for #[grid_constant] that is erased before codegen and emits no instruction, so it is allowlisted with that reason rather than left as Other. The mutation corpus moved with the upstream examples and the published numbers improve: wrapbar 71 -> 76 percent at default and 93 -> 98 under --strict, wrapcol 54 -> 65 percent, precision still 1.000 over 576 gating findings. The corpus is a different population -- upstream rewrote examples/atomics to take *mut u32 with DeviceAtomicU32::from_ptr instead of transmuting a shared slice -- so these are not the same mutants scoring better; the table is regenerated, not edited. That rewrite is also why the informational RC001/RC002 count is 4 rather than 8: the upstream example this project had recorded as a likely-real finding no longer has the shape. Every remaining chain is still complete, which is the half that gates. Signed-off-by: Vyncint Ng <chivy.nguyen@manabie.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #140. Twenty-one commits, same nightly — so this is the pin alone and not a toolchain move. Its own commit, per
docs/RELEASING.md, with every gate re-run at the new rev rather than assumed.The baseline diff: seven new gating findings, nothing lost
No
<lines: nothing that was detected stopped being detected.conformance_unroll_bounds_checkis upstream's new regression corpus for a bounds-check bug in the#[unroll]MIR transform. All seven kernels takearr: &mut [u32]precisely so the slice can be indexed out of range (arr[999] = 7) — the point of the example is the missing check, not the parameter. RC003 is correct on every one of them:&mut [T]is one exclusive reference handed to every thread, which is also what upstream's own safety model says. Reviewed true positives, recorded inEXPECTEDwith that reason, next to the existingconstant_index_from_endentry which is the same shape.The surface gate: one new primitive, classified
It is a
#[doc(hidden)]compile-time launch-ABI marker for#[grid_constant],#[inline(never)]with an empty body — "detected at compile time and removed, no runtime code is generated". It emits no instruction and has no participation semantics, so it is allowlisted with that reason rather than left asOtherby default, which is what the policy asks.The mutation corpus: regenerated, and the numbers improve
--strict)Precision stays 1.000, now over 576 gating findings rather than 506.
This is a different population, not the same mutants scoring better: upstream rewrote
examples/atomicsto take*mut u32withDeviceAtomicU32::from_ptrinstead of transmuting a shared slice, and editedcoop_groups_demo— so the kernels the corpus is generated from changed. The table is regenerated by the script and committed, never hand-edited.That rewrite is also why the informational line reads
4 RC001/RC002 chains completerather than 8: the upstream example this project had recorded as a likely-real finding (atomics::atomic_i32_test, indocs/hardware/session-1.md) no longer has the shape that produced it. Every remaining chain is still complete, which is the half that actually gates.Verified locally
plus
cargo test --workspacewith no failures. The three sample-crate manifests and their lockfiles move with the pin;render-probegains theCargo.lockit had never committed.