Repository navigation
build(meson): stop icx and the clang-cl drivers warning about the project's own compile flags - #2401
Merged
Merged
Conversation
lusoris
force-pushed
the
build/zero-warnings-driver-flags
branch
from
October 7, 2026 10:42
704ec20 to
0d95d16
Compare
9 of 12 tasks
Comment on lines
+19
to
+20
| static_cast<std::size_t>(capacity) > | ||
| (SIZE_MAX / sizeof(VmafFeatureExtractorContext *)) / 2u) |
…PR merge (#2406) * chore(release): restore 1.0.0-rc.3 after the unintended rc.4 release PR merge The local merge train squash-merged release-please's PR #2397 (4daa287, "chore(master): release 1.0.0-rc.4") although no rc.4 cut was decided: its skip list named release PRs by number, and release-please opened the next one under a new number. This reverts 4daa287, so the eleven version files read 1.0.0-rc.3 again. The autorelease: pending label was removed from #2397 and the queued release-please run cancelled before it ran: no v1.0.0-rc.4 release or tag exists. The train now skips every release-please--* branch; a release PR lands only through the cut procedure. State: T-RELEASE-PR-LANDED-WITHOUT-CUT-2026-10-07 (opened and closed).
…ses the retrain tooling in CI (#2198) * feat(ai): add a resumable stage runner and a mini retrain that exercises the retrain tooling in CI The one-shot retrain must not be the first end-to-end run of its tools. `aiutils.pipeline` runs a list of stages with named early failures, resume from per-stage manifests and recorded seeds, library versions, lock digest and container identity. `ai/scripts/mini_retrain.py` runs the real scripts on a generated 144-row corpus: extraction, feature checks, combination, vmaf_tiny_v2..v4 and fr_regressor_v1 training and export, validation, registry validation and a PLCC / SROCC / RMSE gate that fails on NaN. The first run found that the `motion` column of every extracted table was NaN (libvmaf emits no `integer_motion` key); `_lookup` now reads the SAD score. `extract_full_features.py` gains `--assume-dims`. * test(ai): type the mini retrain tests and helpers to the strict mypy profile * docs: regenerate the indexes and the citation map after rebasing
… warnings of every non-MSVC leg (#2399) * fix(build): clear the initialiser, tag, fallthrough and keyword-macro warnings of every non-MSVC leg Option terminators and positional test tables that left fields out now say `{0}` / `{}` or add `.cpu_opts = {NULL}`; the Metal option and extractor tables list their designators in declaration order and use `.default_val = {.b = ...}`; VmafThreadLocaleState is a struct in both files; implicit fallthrough is `[[fallthrough]]`; vendored cJSON does not redefine the C23 keywords `true` / `false`; vmaf_next_fex_capacity() compares in size_t so the check is not tautological on LP64; the HIP ADM twin no longer redefines DIV_ROUND_UP. No computed value changes. ADR-2170 records the program: leg by leg to zero warnings without suppression, then warnings are errors per leg. * docs: regenerate the indexes and the citation map after rebasing
…all warnings of every non-MSVC leg (#2400) * fix(build): clear the unused-code, ignored-attribute and deprecated-call warnings of every non-MSVC leg Code only a skipped or disabled configuration reaches is compiled only there (test_ms_ssim_decimate, test_cambi_simd, test_ssimulacra2_simd, test_read_pictures_convert, the registry helpers of model_loader.c on Windows, the HIP error mappers without hipcc). VMAF_EXPORT is empty for GCC on MinGW, where the visibility attribute is ignored and drew a -Wattributes warning per use under LTO. The Win32 pthread shim spells __stdcall only in the host pass of a SYCL build, and the SYCL linker pragma is host-only. VmafRef is built with count 1 instead of calling std::atomic_init() (deprecated in C++20), the ONNX Runtime headers are -isystem, and test_metal_float_vif_math no longer names link_language, which made Meson append -lc++ to a link the clang++ driver already completes. No computed value changes.
…ject's own compile flags (#2401) * fix(build): clear the unused-code, ignored-attribute and deprecated-call warnings of every non-MSVC leg Code only a skipped or disabled configuration reaches is compiled only there (test_ms_ssim_decimate, test_cambi_simd, test_ssimulacra2_simd, test_read_pictures_convert, the registry helpers of model_loader.c on Windows, the HIP error mappers without hipcc). VMAF_EXPORT is empty for GCC on MinGW, where the visibility attribute is ignored and drew a -Wattributes warning per use under LTO. The Win32 pthread shim spells __stdcall only in the host pass of a SYCL build, and the SYCL linker pragma is host-only. VmafRef is built with count 1 instead of calling std::atomic_init() (deprecated in C++20), the ONNX Runtime headers are -isystem, and test_metal_float_vif_math no longer names link_language, which made Meson append -lc++ to a link the clang++ driver already completes. No computed value changes. * build(meson): stop icx and the clang-cl drivers warning about the project's own compile flags icx reports `-ffp-contract=off` after `-fp-model=precise` as -Woverriding-option on every compile. The strict line now reads `-fp-model=precise -fno-fast-math -fcomplex-arithmetic=full -ffp-contract=off`: on 182 translation units of this tree the objects of the two spellings are byte-identical (clang -### differs only by the spelled -fcomplex-arithmetic token). test_strict_fp_compiler_args compiles with -Werror and holds the old spelling to fail. clang-cl and icx-cl are no longer offered -pedantic, -fvisibility=hidden and -fvisibility-inlines-hidden, which they ignored with a warning per compile.
lusoris
force-pushed
the
build/zero-warnings-driver-flags
branch
from
October 7, 2026 12:45
0d95d16 to
838e0a4
Compare
This was referenced Oct 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
icx reported
-ffp-contract=offafter-fp-model=preciseas-Woverriding-optionon every compile (7,300 warnings in one leg). The strict line is now-fp-model=precise -fno-fast-math -fcomplex-arithmetic=full -ffp-contract=off. Proof: on 182 translation units of this tree compiled both ways with icx 2026.0, the objects are byte-identical; 182 of 182 printed the warning with the old spelling, 0 with the new;clang -###argument lists differ only by the-fcomplex-arithmetic=fulltoken and the predefined macros are equal; an icpx-fsyclprobe object is identical too.test_strict_fp_compiler_args.pycompiles a probe with-Werror(new spelling passes, old spelling must fail) and checks novfmaddappears. The MSVC-syntax icx-cl driver keeps the old spelling (not measurable here). clang-cl and icx-cl are no longer offered-pedantic,-fvisibility=hiddenand-fvisibility-inlines-hidden, which they ignored with a warning per compile.Type
build/ci— tooling / infraChecklist
python3 core/test/test_strict_fp_compiler_args.py(19 tests; the icx test runs with oneAPI sourced).Bug-status hygiene
T-CI-WARNINGS-NON-MSVC-LEGS-2026-10-07.Netflix golden-data gate
assertAlmostEqual(...)score in the Netflix golden Python tests.make test-netflix-goldenequivalent run on this stack: 280 passed, 3 skipped.Deep-dive deliverables
## Alternatives considered.AGENTS.mdinvariant note —core/AGENTS.d/strict-fp-compiler-args.mdgained the icx spelling invariant.changelog.d/changed/zero-warnings-icx-and-clang-cl-driver-flags.mddocs/rebase-notes.md.Reproducer
Known follow-ups
Part of the stack of ADR-2170 (A initialisers and tags, B unused code and attributes, C driver flags, D the gate); each PR is based on the previous one and the train restacks them. Not in
train.order(lands after the rc.3 tag). Remaining ungated legs and causes:docs/development/ci.md, "Warnings are errors".