You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6477e98
Browse filesBrowse the repository at this point in the historyBrowse files
resolve_toolchain gains a required keyword-only ``cxx_std`` argument and
an optional ``tweak`` post-hook. The shared ``_build_flags`` no longer
picks a default C++ standard — the two backends legitimately differ
(bindings stays on c++14 to avoid a c++17 variadic-template regression
on kernel-launch paths; core is on c++17), and there is no defensible
shared default. See NVIDIA#1882 for the audit.
- ``cuda_bindings/build_hooks.py`` adds ``_tweak_flags`` which layers
``-Wno-deprecated-declarations`` on Linux for the 38 warnings
``cudaMemcpy*Array*`` / ``cudaGetDriverEntryPoint`` produce in 13.4
headers. Without it, once NVIDIA#2966 turns on ``-Werror``, bindings would
stop building.
- Call site passes ``cxx_std=14, tweak=_tweak_flags``.
- ``cuda_core/build_hooks.py`` passes ``cxx_std=17`` (no tweak).
Also addresses Andy-Jost's line-anchored review comments:
- ``TestForceReachesBuildExt._finalized_build_ext`` now patches
``sys.modules["_build_shared"]`` instead of ``build_hooks``. Because
``build_hooks.force_build_ext`` is a module-level ``__getattr__``
fallback, monkey-patching it on ``build_hooks`` creates a real
attribute that shadows the fallback and persists across teardown —
a poison state that made ``TestBuildConfigStamp`` order-dependent
(reproduces under ``pytest -p randomly --randomly-seed=1``).
- Restores ``test_flag_set_forces_rebuild`` — the only direct check
that ``force_build_ext=True`` reaches ``build_ext.force`` through
the ``__getattr__`` re-export. Without it, a later
``from _build_shared import force_build_ext`` would silently snapshot
``False`` and forced rebuilds would stop with no failing test.
- Restores ``test_default_preserves_existing_cc`` in
``ResolveToolchainSharedMixin``. A green wheel build wouldn't catch
a regression here — if the default toolchain overwrote ``CC``,
sccache would silently stop and ``sccache-summary`` only warns.
- ``CONTRIBUTING.md`` recovery recipe now runs ``git config
core.symlinks true`` (no ``--global``) inside the existing clone.
``git clone`` probes symlink support and writes
``core.symlinks=false`` into the *repo-local* config on failure;
repo-local overrides ``--global``, so the previous recipe couldn't
fix an existing clone.
Test bookkeeping:
- Per-package ``TestResolveToolchain.test_llvm_sets_env_and_flags``
restored in both packages — bindings asserts ``-std=c++14`` +
``-Wno-deprecated-declarations``, core asserts ``-std=c++17`` and the
absence of ``-Wno-deprecated-declarations``. Removed from the shared
mixin because it now asserts package-specific flag content.
- Other shared-mixin resolve tests just pick ``cxx_std=17`` as a
placeholder — they test env/name/error mechanics, not flag content.
Pass counts: bindings 29 (was 28), core 61 (was 59). Randomized-order
runs (``-p randomly --randomly-seed={1,2,4,42}``) all green.
0 commit comments