[libcu++] Try to use the _CCCL_NODEBUG attribute more often - #11055
Conversation
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe pull request replaces ChangesCUDAX annotation migration
libcudacxx annotation and trait updates
Suggested reviewers: Merge Risk: 🟡 Moderate · up to Alongside debug-annotation changes, the PR changes reference-unwrapping type behavior, which could produce incorrect type deductions for users. It is not merge-ready until that behavior change is removed, separated, or covered by focused conformance tests. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
libcudacxx/include/cuda/std/__format/buffer.h (1)
462-465: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valuesuggestion: Preserve the existing surrounding formatting and declarations at these annotation-only migration sites while replacing
_CCCL_NODEBUG_ALIASwith_CCCL_NODEBUG:
libcudacxx/include/cuda/std/__format/buffer.h#L462-L465: restore the existing__fmt_output_bufferbase initialization layout.libcudacxx/include/cuda/__memory_resource/any_resource.h#L192-L194: keep the__iresourceright-hand side formatting unchanged.libcudacxx/include/cuda/std/__memory/allocator_arg_t.h#L49-L51: restore the existing alignment of the allocator trait declarations.Source: Path instructions
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: a159d6b6-db0d-4f97-a0ea-12b25600a61c
📒 Files selected for processing (123)
cudax/include/cuda/experimental/__detail/type_traits.cuhcudax/include/cuda/experimental/__execution/apply_sender.cuhcudax/include/cuda/experimental/__execution/completion_signatures.cuhcudax/include/cuda/experimental/__execution/conditional.cuhcudax/include/cuda/experimental/__execution/continues_on.cuhcudax/include/cuda/experimental/__execution/diagnostics.cuhcudax/include/cuda/experimental/__execution/domain.cuhcudax/include/cuda/experimental/__execution/env.cuhcudax/include/cuda/experimental/__execution/fwd.cuhcudax/include/cuda/experimental/__execution/get_completion_signatures.cuhcudax/include/cuda/experimental/__execution/intrusive_queue.cuhcudax/include/cuda/experimental/__execution/just_from.cuhcudax/include/cuda/experimental/__execution/lazy.cuhcudax/include/cuda/experimental/__execution/let_value.cuhcudax/include/cuda/experimental/__execution/meta.cuhcudax/include/cuda/experimental/__execution/rcvr_ref.cuhcudax/include/cuda/experimental/__execution/run_loop.cuhcudax/include/cuda/experimental/__execution/sequence.cuhcudax/include/cuda/experimental/__execution/start_detached.cuhcudax/include/cuda/experimental/__execution/stop_token.cuhcudax/include/cuda/experimental/__execution/stream/adaptor.cuhcudax/include/cuda/experimental/__execution/then.cuhcudax/include/cuda/experimental/__execution/thread.cuhcudax/include/cuda/experimental/__execution/transform_completion_signatures.cuhcudax/include/cuda/experimental/__execution/type_traits.cuhcudax/include/cuda/experimental/__execution/utility.cuhcudax/include/cuda/experimental/__execution/variant.cuhcudax/include/cuda/experimental/__execution/visit.cuhcudax/include/cuda/experimental/__execution/when_all.cuhcudax/include/cuda/experimental/__execution/write_env.cuhcudax/include/cuda/experimental/__nccl/shared_library.hcudax/include/cuda/experimental/__utility/result_policy.cuhlibcudacxx/include/cuda/__complex/complex.hlibcudacxx/include/cuda/__functional/call_or.hlibcudacxx/include/cuda/__functional/hash/murmurhash3.hlibcudacxx/include/cuda/__functional/hash/xxhash.hlibcudacxx/include/cuda/__functional/lazy_call_or.hlibcudacxx/include/cuda/__memory_resource/any_resource.hlibcudacxx/include/cuda/__numeric/isclose.hlibcudacxx/include/cuda/__stream/launch_transform.hlibcudacxx/include/cuda/__utility/__basic_any/basic_any_fwd.hlibcudacxx/include/cuda/__utility/__basic_any/basic_any_ptr.hlibcudacxx/include/cuda/__utility/__basic_any/basic_any_ref.hlibcudacxx/include/cuda/__utility/__basic_any/basic_any_value.hlibcudacxx/include/cuda/__utility/__basic_any/conversions.hlibcudacxx/include/cuda/__utility/__basic_any/interfaces.hlibcudacxx/include/cuda/__utility/__basic_any/iset.hlibcudacxx/include/cuda/__utility/__basic_any/overrides.hlibcudacxx/include/cuda/__utility/__basic_any/semiregular.hlibcudacxx/include/cuda/__utility/__basic_any/virtcall.hlibcudacxx/include/cuda/__utility/__basic_any/virtual_functions.hlibcudacxx/include/cuda/__utility/__basic_any/virtual_tables.hlibcudacxx/include/cuda/std/__complex/complex.hlibcudacxx/include/cuda/std/__execution/env.hlibcudacxx/include/cuda/std/__format/buffer.hlibcudacxx/include/cuda/std/__format/concepts.hlibcudacxx/include/cuda/std/__format/format_arg.hlibcudacxx/include/cuda/std/__format/format_arg_store.hlibcudacxx/include/cuda/std/__format/format_to_n.hlibcudacxx/include/cuda/std/__format/formatted_size.hlibcudacxx/include/cuda/std/__functional/function.hlibcudacxx/include/cuda/std/__functional/hash.hlibcudacxx/include/cuda/std/__functional/unwrap_ref.hlibcudacxx/include/cuda/std/__functional/weak_result_type.hlibcudacxx/include/cuda/std/__memory/allocator_arg_t.hlibcudacxx/include/cuda/std/__memory/allocator_destructor.hlibcudacxx/include/cuda/std/__memory/allocator_traits.hlibcudacxx/include/cuda/std/__memory/builtin_new_allocator.hlibcudacxx/include/cuda/std/__memory/compressed_pair.hlibcudacxx/include/cuda/std/__memory/pointer_traits.hlibcudacxx/include/cuda/std/__memory/unique_ptr.hlibcudacxx/include/cuda/std/__ranges/repeat_view.hlibcudacxx/include/cuda/std/__ranges/subrange.hlibcudacxx/include/cuda/std/__ranges/take_view.hlibcudacxx/include/cuda/std/__ranges/zip_view.hlibcudacxx/include/cuda/std/__simd/bit/scalar.hlibcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.hlibcudacxx/include/cuda/std/__tuple_dir/tuple.hlibcudacxx/include/cuda/std/__tuple_dir/tuple_cat.hlibcudacxx/include/cuda/std/__tuple_dir/tuple_element.hlibcudacxx/include/cuda/std/__type_traits/add_const.hlibcudacxx/include/cuda/std/__type_traits/add_cv.hlibcudacxx/include/cuda/std/__type_traits/add_lvalue_reference.hlibcudacxx/include/cuda/std/__type_traits/add_pointer.hlibcudacxx/include/cuda/std/__type_traits/add_rvalue_reference.hlibcudacxx/include/cuda/std/__type_traits/add_volatile.hlibcudacxx/include/cuda/std/__type_traits/aligned_storage.hlibcudacxx/include/cuda/std/__type_traits/aligned_union.hlibcudacxx/include/cuda/std/__type_traits/common_reference.hlibcudacxx/include/cuda/std/__type_traits/common_type.hlibcudacxx/include/cuda/std/__type_traits/conditional.hlibcudacxx/include/cuda/std/__type_traits/conjunction.hlibcudacxx/include/cuda/std/__type_traits/copy_cvref.hlibcudacxx/include/cuda/std/__type_traits/decay.hlibcudacxx/include/cuda/std/__type_traits/disjunction.hlibcudacxx/include/cuda/std/__type_traits/enable_if.hlibcudacxx/include/cuda/std/__type_traits/is_assignable.hlibcudacxx/include/cuda/std/__type_traits/is_callable.hlibcudacxx/include/cuda/std/__type_traits/is_swappable.hlibcudacxx/include/cuda/std/__type_traits/is_valid_expansion.hlibcudacxx/include/cuda/std/__type_traits/make_signed.hlibcudacxx/include/cuda/std/__type_traits/make_unsigned.hlibcudacxx/include/cuda/std/__type_traits/promote.hlibcudacxx/include/cuda/std/__type_traits/remove_all_extents.hlibcudacxx/include/cuda/std/__type_traits/remove_const.hlibcudacxx/include/cuda/std/__type_traits/remove_const_ref.hlibcudacxx/include/cuda/std/__type_traits/remove_cv.hlibcudacxx/include/cuda/std/__type_traits/remove_cvref.hlibcudacxx/include/cuda/std/__type_traits/remove_extent.hlibcudacxx/include/cuda/std/__type_traits/remove_pointer.hlibcudacxx/include/cuda/std/__type_traits/remove_reference.hlibcudacxx/include/cuda/std/__type_traits/remove_volatile.hlibcudacxx/include/cuda/std/__type_traits/type_identity.hlibcudacxx/include/cuda/std/__type_traits/type_list.hlibcudacxx/include/cuda/std/__type_traits/type_set.hlibcudacxx/include/cuda/std/__type_traits/underlying_type.hlibcudacxx/include/cuda/std/__utility/declval.hlibcudacxx/include/cuda/std/__utility/exception_guard.hlibcudacxx/include/cuda/std/__utility/integer_sequence.hlibcudacxx/include/cuda/std/__utility/pair.hlibcudacxx/include/cuda/std/__utility/pod_tuple.hlibcudacxx/include/cuda/std/__variant/variant_match.hlibcudacxx/include/cuda/std/array
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review.
It greatly improves readability during debugging and also reduces binary size
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
libcudacxx/include/cuda/std/__functional/unwrap_ref.h (1)
42-47: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winimportant: Keep this cohort annotation-only.
The added
std::reference_wrapperspecialization changescuda::std::unwrap_reference_t<std::reference_wrapper<_Tp>>to_Tp&. This changes type-trait behavior in a PR scoped to debug annotations. Remove this specialization from this cohort, or move it to a separate change with focused conformance and host/device tests.As per path instructions, “this PR should remain limited to annotation and formatting changes without altering type computations or behavior.”
Source: Path instructions
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 773d96c4-4c19-4426-bc14-cac1205fd295
📒 Files selected for processing (7)
libcudacxx/include/cuda/std/__functional/unwrap_ref.hlibcudacxx/include/cuda/std/__type_traits/add_lvalue_reference.hlibcudacxx/include/cuda/std/__type_traits/add_pointer.hlibcudacxx/include/cuda/std/__type_traits/add_rvalue_reference.hlibcudacxx/include/cuda/std/__type_traits/decay.hlibcudacxx/include/cuda/std/__type_traits/is_swappable.hlibcudacxx/include/cuda/std/__type_traits/remove_cvref.h
💤 Files with no reviewable changes (1)
- libcudacxx/include/cuda/std/__type_traits/remove_cvref.h
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.
🥳 CI Workflow Results🟩 Finished in 4h 51m: Pass: 100%/236 | Total: 10d 03h | Max: 4h 50m | Hits: 32%/4204445See results here. AI failure analysis1. RAPIDS builds: distributed sccache compilations stalled with local fallback disabled · 3 jobsExplanation: All three builds stopped after prolonged silence when distributed sccache requests failed, without any compiler diagnostic; the scheduler already reported 314 pending jobs and work older than 6,500 seconds. The two cuVS jobs failed on different generated kernels despite stalling at the same build index and wall-clock period, while cuOpt failed identically on an unrelated C++ translation unit, indicating a transient distributed compilation service failure rather than a deterministic CCCL source error. Evidence: Copy this prompt into a coding agentJobs: |
It greatly improves readability during debugging and also reduces binary size