Skip to content

[backport 3.5.x] Remove __constant_wrapper from 3.5 release - #10588

Open
davebayer wants to merge 1 commit into
NVIDIA:mainfrom
davebayer:remove_constant_wrapper
Open

[backport 3.5.x] Remove __constant_wrapper from 3.5 release#10588
davebayer wants to merge 1 commit into
NVIDIA:mainfrom
davebayer:remove_constant_wrapper

Conversation

@davebayer

Copy link
Copy Markdown
Contributor

There are problems with __constant_wrapper, our weekly testing shows that gcc-10 even fails to parse the source code. I'd rather completely remove it from 3.5 release, since it's not even used anywhere.

@davebayer
davebayer requested a review from a team as a code owner August 3, 2026 08:07
@davebayer
davebayer requested a review from pciolkosz August 3, 2026 08:07
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Aug 3, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Aug 3, 2026
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: cad6f847-8849-4689-bdc2-b76024014d8a

📥 Commits

Reviewing files that changed from the base of the PR and between 3855b5a and d46b3d9.

📒 Files selected for processing (23)
  • libcudacxx/include/cuda/std/__utility/constant_wrapper.h
  • libcudacxx/include/cuda/std/utility
  • libcudacxx/include/cuda/std/version
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/adl.compile.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/assign.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/binary_ops.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/call.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/comma.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/comp.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/convert.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/ctad.compile.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/general.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/helpers.h
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/kernel_parameter.array.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/kernel_parameter.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/mem_ptr.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/pseudo_mutators.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/subscript.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/types.compile.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/unary_ops.pass.cpp
💤 Files with no reviewable changes (23)
  • libcudacxx/include/cuda/std/utility
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/ctad.compile.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/types.compile.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/kernel_parameter.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/kernel_parameter.array.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/pseudo_mutators.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/comma.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/assign.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/mem_ptr.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/convert.pass.cpp
  • libcudacxx/include/cuda/std/__utility/constant_wrapper.h
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/adl.compile.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/helpers.h
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/unary_ops.pass.cpp
  • libcudacxx/include/cuda/std/version
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/binary_ops.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/general.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/subscript.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/call.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/comp.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp

📝 Walkthrough

Summary by CodeRabbit

  • Breaking Changes

    • Removed constant-wrapper support from the CUDA standard utility library.
    • Constant-wrapper types, helpers, predefined instances, traits, and related operators are no longer available.
    • Removed the associated feature-test marker.
  • Tests

    • Removed compile-time, runtime, CUDA kernel, and operator coverage for constant-wrapper functionality.

Walkthrough

The pull request removes the constant wrapper header, its public utility include, related version metadata, and the associated constant wrapper tests.

Changes

Constant wrapper removal

Layer / File(s) Summary
Public surface cleanup
libcudacxx/include/cuda/std/utility, libcudacxx/include/cuda/std/version
The utility header no longer includes constant_wrapper.h. The disabled __cccl_lib_constant_wrapper feature-test declaration and TODO were removed. The constant wrapper implementation and tests were deleted.

Suggested reviewers: pciolkosz

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

⏱️ CCCL compile-time benchmark comparison: Public headers compile-time bench

Result: 2 regression row(s), 3 improvement row(s) above threshold.

Run Value
Config public-headers-gcc13
Baseline origin/main
Preset all-dev
Targets cub.headers.base, thrust.cpp.cuda.headers.base, libcudacxx.test.public_headers
GPU / launch args rtx2080 / --cuda 13.3 --host gcc13

Artifacts: reports and traces

Direct file processing

-f file-processing exclusive --sort total

🔴 Direct file processing — Regressions
Rank Regression impact Selected Δ Baseline Current Event Matched traces
1 0.334603 0.334603 19.923202 20.257805 Processing Header File: libcudacxx/include/cuda/__device/physical_device.h 94
2 0.204405 0.204405 7.598279 7.802684 Processing Header File: cub/cub/util_type.cuh 278
🟢 Direct file processing — Improvements
Rank Improvement impact Selected Δ Baseline Current Event Matched traces
1 0.989336 -0.989336 9.546088 8.556752 Processing Header File: libcudacxx/include/cuda/std/__cccl/prologue.h 548
2 0.542149 -0.542149 3.507896 2.965747 Processing Header File: libcudacxx/include/cuda/std/__cccl/epilogue.h 548
3 0.334162 -0.334162 2.894132 2.559970 Processing Header File: libcudacxx/include/cuda/std/__atomic/functions/cuda_ptx_generated.h 56

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🥳 CI Workflow Results

🟩 Finished in 4h 23m: Pass: 100%/115 | Total: 5d 17h | Max: 4h 22m | Hits: 42%/1802361

See results here.

@davebayer

Copy link
Copy Markdown
Contributor Author

pre-commit.ci autofix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

2 participants