Skip to content

Strip zero-width or unprintable unicode characters#9564

Open
Jacobfaib wants to merge 5 commits into
NVIDIA:mainfrom
Jacobfaib:jacobf/2026-06-23/unprintable-unicode
Open

Strip zero-width or unprintable unicode characters#9564
Jacobfaib wants to merge 5 commits into
NVIDIA:mainfrom
Jacobfaib:jacobf/2026-06-23/unprintable-unicode

Conversation

@Jacobfaib

Copy link
Copy Markdown
Contributor

Description

Remove zero-width unicode characters (otherwise known as inutterable or voldemort characters). These glyphs are invisible to a reader but may be rendered strangely in certain editors or text environments.

Ideally I'd like to just convert everything to ASCII, but CUB has some lovely text-art using unicode that doesn't translate so well.

Checklist

  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@Jacobfaib Jacobfaib self-assigned this Jun 23, 2026
@Jacobfaib Jacobfaib requested review from a team as code owners June 23, 2026 14:26
@Jacobfaib Jacobfaib requested a review from alliepiper June 23, 2026 14:26
@Jacobfaib Jacobfaib requested review from caugonnet and griwes June 23, 2026 14:26
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Jun 23, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Jun 23, 2026

# Perl character class assembled from column 1 of the ranges table.
BAD_CLASS="[$(ranges | cut -f1 | tr -d '\n')]"
PERL="${PERL:-perl}"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it safe to assume that all developer systems have perl installed? Should there be a fallback (like skipping the check) if perl isn't installed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is mostly if you have multiple perls installed (e.g. one from system and one from package manager). I seriously doubt this would be needed often, but I always like to provide such escape hatches for the "main" driver utils of scripts so that users can just do e.g.

PYTHON=/my/python AWK=/my/awk PERL=/my/perl script.bash

@coderabbitai

This comment was marked as outdated.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d26b98bc-e2d9-4690-9713-285bbe5df56a

📥 Commits

Reviewing files that changed from the base of the PR and between 7d3a82f and 866de8e.

📒 Files selected for processing (20)
  • .github/actions/workflow-build/build-workflow.py
  • .pre-commit-config.yaml
  • AGENTS.md
  • ci/util/pre-commit/strip_unprintable.bash
  • ci/windows/build_common.psm1
  • ci/windows/run_cpu_bisect.ps1
  • ci/windows/run_cpu_target.ps1
  • ci/windows/run_gpu_bisect.ps1
  • ci/windows/run_gpu_target.ps1
  • cudax/include/cuda/experimental/__stf/internal/acquire_release.cuh
  • cudax/test/stf/examples/05-stencil-no-copy.cu
  • cudax/test/stf/examples/05-stencil.cu
  • cudax/test/stf/stencil/stencil-1D.cu
  • docs/cudax/stf.rst
  • libcudacxx/include/cuda/std/__iterator/iterator_traits.h
  • libcudacxx/include/cuda/std/__simd/concepts.h
  • libcudacxx/include/cuda/std/__simd/creation.h
  • libcudacxx/include/cuda/std/__simd/permute.h
  • libcudacxx/include/cuda/std/__tuple_dir/tuple_constraints.h
  • libcudacxx/test/libcudacxx/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp

Comment thread ci/util/pre-commit/strip_unprintable.bash
@Jacobfaib Jacobfaib force-pushed the jacobf/2026-06-23/unprintable-unicode branch from 117a81f to c7d88e3 Compare June 23, 2026 14:59

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 1794435e-6fef-4d8b-8124-bef7b1f740d9

📥 Commits

Reviewing files that changed from the base of the PR and between 01f9f64 and c7d88e3.

📒 Files selected for processing (36)
  • .github/actions/workflow-build/build-workflow.py
  • .pre-commit-config.yaml
  • AGENTS.md
  • ci/util/pre-commit/strip_unprintable.bash
  • ci/windows/build_common.psm1
  • ci/windows/build_cuda_cccl_python.ps1
  • ci/windows/run_cpu_bisect.ps1
  • ci/windows/run_cpu_target.ps1
  • ci/windows/run_gpu_bisect.ps1
  • ci/windows/run_gpu_target.ps1
  • cudax/include/cuda/experimental/__stf/internal/acquire_release.cuh
  • cudax/test/stf/examples/05-stencil-no-copy.cu
  • cudax/test/stf/examples/05-stencil.cu
  • cudax/test/stf/stencil/stencil-1D.cu
  • docs/cub/tuning.rst
  • docs/cudax/stf.rst
  • docs/libcudacxx/extended_api/memory_model.rst
  • docs/libcudacxx/extended_api/synchronization_primitives/atomic_ref.rst
  • docs/libcudacxx/extended_api/synchronization_primitives/barrier/barrier_native_handle.rst
  • docs/libcudacxx/index.rst
  • libcudacxx/include/cuda/std/__iterator/iterator_traits.h
  • libcudacxx/include/cuda/std/__simd/concepts.h
  • libcudacxx/include/cuda/std/__simd/creation.h
  • libcudacxx/include/cuda/std/__simd/permute.h
  • libcudacxx/include/cuda/std/__tuple_dir/tuple_constraints.h
  • libcudacxx/test/TODO.TXT
  • libcudacxx/test/libcudacxx/libcxx/iterators/compressed_movable_box/assign.copy.pass.cpp
  • libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/ranges.for_each.pass.cpp
  • libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/ranges.for_each_n.pass.cpp
  • libcudacxx/test/libcudacxx/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/call.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/convert.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/unary_ops.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/time/time.clock/time.clock.system/local_time.types.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/time/time.clock/time.clock.system/sys.time.types.pass.cpp
✅ Files skipped from review due to trivial changes (31)
  • ci/windows/run_cpu_target.ps1
  • ci/windows/run_gpu_bisect.ps1
  • libcudacxx/include/cuda/std/__simd/concepts.h
  • docs/libcudacxx/extended_api/synchronization_primitives/barrier/barrier_native_handle.rst
  • libcudacxx/test/libcudacxx/std/utilities/time/time.clock/time.clock.system/local_time.types.pass.cpp
  • ci/windows/build_common.psm1
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/unary_ops.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/call.pass.cpp
  • docs/libcudacxx/index.rst
  • libcudacxx/test/libcudacxx/libcxx/iterators/compressed_movable_box/assign.copy.pass.cpp
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/cw.pass.cpp
  • libcudacxx/test/TODO.TXT
  • ci/windows/run_cpu_bisect.ps1
  • cudax/test/stf/examples/05-stencil-no-copy.cu
  • AGENTS.md
  • libcudacxx/include/cuda/std/__simd/permute.h
  • libcudacxx/test/libcudacxx/std/utilities/const.wrap.class/convert.pass.cpp
  • docs/cub/tuning.rst
  • docs/libcudacxx/extended_api/memory_model.rst
  • cudax/test/stf/stencil/stencil-1D.cu
  • libcudacxx/test/libcudacxx/std/utilities/time/time.clock/time.clock.system/sys.time.types.pass.cpp
  • docs/libcudacxx/extended_api/synchronization_primitives/atomic_ref.rst
  • cudax/include/cuda/experimental/__stf/internal/acquire_release.cuh
  • libcudacxx/include/cuda/std/__iterator/iterator_traits.h
  • libcudacxx/include/cuda/std/__simd/creation.h
  • ci/windows/run_gpu_target.ps1
  • libcudacxx/include/cuda/std/__tuple_dir/tuple_constraints.h
  • .github/actions/workflow-build/build-workflow.py
  • cudax/test/stf/examples/05-stencil.cu
  • libcudacxx/test/libcudacxx/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp
  • docs/cudax/stf.rst
🚧 Files skipped from review as they are similar to previous changes (1)
  • ci/util/pre-commit/strip_unprintable.bash

Comment thread .pre-commit-config.yaml
Comment thread ci/windows/build_cuda_cccl_python.ps1
@Jacobfaib Jacobfaib requested a review from bdice June 23, 2026 16:43
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