[cudax][cuco] Explicitly mark the open addressing destructor as host-only - #11345
[cudax][cuco] Explicitly mark the open addressing destructor as host-only#11345PointKernel wants to merge 4 commits into
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
/ok to test |
🥳 CI Workflow Results🟩 Finished in 1h 33m: Pass: 100%/63 | Total: 13h 08m | Max: 56m 33s | Hits: 84%/44284See results here. |
📝 SummarySummary by CodeRabbit
WalkthroughThe open-addressing implementation now declares explicit copy and move special members and a host destructor. The dynamic-capacity map test validates the resulting construction and assignment traits. ChangesOpen-addressing special members
Suggested reviewers: Priority: ⬇️ Low Change: Bug fix Merge Risk: 🔵 Low · up to The new special-member API lacks required documentation, reducing clarity for maintainers. Address this small documentation contract issue before merge. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 58e901b2-3a13-4d8f-a7f5-08d6fb86f0b8
📒 Files selected for processing (2)
cudax/include/cuda/experimental/__cuco/detail/open_addressing/open_addressing_impl.cuhcudax/test/cuco/fixed_capacity_map/test_capacity.cu
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.
| } | ||
|
|
||
| //! @brief Copy-constructs an open addressing implementation. | ||
| _CCCL_HIDE_FROM_ABI __open_addressing_impl(const __open_addressing_impl&) = default; |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
important: Add Doxygen parameter documentation for the copy and move operations. Add return documentation for move assignment. Name the parameters so the documentation can identify them.
- _CCCL_HIDE_FROM_ABI __open_addressing_impl(const __open_addressing_impl&) = default;
+ //! `@param`[in] __other Source implementation.
+ _CCCL_HIDE_FROM_ABI __open_addressing_impl(const __open_addressing_impl& __other) = default;
- _CCCL_HIDE_FROM_ABI __open_addressing_impl(__open_addressing_impl&&) = default;
+ //! `@param`[in,out] __other Source implementation.
+ _CCCL_HIDE_FROM_ABI __open_addressing_impl(__open_addressing_impl&& __other) = default;
- _CCCL_HIDE_FROM_ABI __open_addressing_impl& operator=(__open_addressing_impl&&) = default;
+ //! `@param`[in,out] __other Source implementation.
+ //! `@return` Reference to this implementation.
+ _CCCL_HIDE_FROM_ABI __open_addressing_impl& operator=(__open_addressing_impl&& __other) = default;As per coding guidelines, documented functions must include @param for every parameter and @return for non-void functions.
Also applies to: 231-231, 236-236
Source: Coding guidelines
Description
Follow-up to #11017 and #11340.
This PR explicitly marks the
__open_addressing_impldestructor as host-only to prevent nvcc diagnostic 20011 and preserves its existing copy/move behavior. It removes the diagnostic suppression from the existing capacity tests and adds compile-time copy/move checks.Checklist