Skip to content

transform, tests: fix VTL, MSan and Windows CI regressions - #32194

Merged
medvednikov merged 5 commits into
masterfrom
codex/fix-ci-aebadc37
Nov 11, 2026
Merged

medvednikov merged 5 commits into
masterfrom
codex/fix-ci-aebadc37

Conversation

@medvednikov

@medvednikov medvednikov commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

Problem

CI on aebadc37 finished with 138 successful, 22 failed, 26 cancelled, and 18 skipped checks. This branch starts from master e957563bb and fixes the remaining reproducible VTL/compiler, MemorySanitizer, and Windows fixture problems.

Changes

  1. Materialize generic types used only in callback field signatures. After expanding a generic function alias, the transformer now visits its parameter and return types. This emits datasets__CollatedBatch_f64 before its result wrapper and fixes the eight VTL example-build failures. A regression covers callback parameters, result payloads, and option payloads without invoking the callbacks.
  2. Keep clip-stack save/restore testing independent of GPU initialization. The test only manipulates CPU state, but creating a GPU context entered uninstrumented libEGL and failed MemorySanitizer inside scandir64. Initialize a recording-only GpuSurface, retain every assertion, and explicitly verify the restored element is valid.
  3. Give assignment-review tests distinct compiler executables. Successive Windows tests rebuilt the same PID-named executable while Windows could still hold it open. Use test-specific names, the Windows executable suffix, and cleanup for each compiler.
  4. Shorten Windows tool-cache fixture paths. The original MSVC probe's staged application-manifest path exceeded MAX_PATH. Keep full cache keys, real staging directories, and manifest assertions while removing an unnecessary fixture-directory level. The final correction to honor the configured short VTMP is in follow-up tests, ci: honor Windows VTMP and remove temporary diagnostics #32197.

No tests are removed or disabled, and no sanitizer suppression is added. This PR merged before diagnostic cleanup was finalized. Follow-up #32197 removes the temporary Windows workflow and preserves the repository's long-term CI trigger policy.

The external VTL rounding failures and its retired macOS runner are addressed in vlang/vtl#833.

Completed validation

  • Rebuilt the compiler with ./v self.
  • The new callback regression fails with the baseline compiler and passes with the fix under parallel, serial, and GCC compilation, and on native Windows with both TCC and MSVC.
  • Both failed VTL examples, nn_cifar10_safe and nn_cifar10_tiny, compile in pure and -d cblas modes with -no-parallel -nocache, using the failed run's exact VTL/VSL revisions and with compatibility fallback disabled.
  • All 117 transformer test files pass; three neighboring generic-alias regressions also pass.
  • The compiler-error corpus passes: 1,881 main cases (six documented skips), 53 skip-unused cases, and eight compile-time-define cases.
  • The original clip fixture reproduces the CI MemorySanitizer failure locally; the fixed fixture passes MemorySanitizer and GCC. Hosted canvas checks pass with TCC and GCC.
  • All three recover test files pass, including recover_no_skip_unused_test.v.
  • Assignment-review tests pass on Linux and 6/6 on native Windows/TCC. The full tool-cache file passes on Linux; native results and the final untested adjustment are described below.
  • The already-merged flag, object-linking, and naming regressions pass (c_compiler_flags_test.v, object_static_local_test.v, and naming_test.v).
  • Four simultaneous cold-cache vet invocations pass in about six seconds using an optimized musl-hosted V compiler, so the original musl cache-lock timeout was not reproduced.
  • The baseline and fixed compilers generate identical C for the same compiler sources after normalizing the embedded executable path. Hardware instruction counters are unavailable, so no performance claim is made.
  • Changed V files were formatted; the final VTMP adjustment is a one-line identifier change.

Remaining CI findings / validation limits

Further local test execution was stopped as requested. This PR does not claim a green full master matrix.

  • The native Windows diagnostic run passed the original manifest-staging case and 65 of 67 tool-cache tests. Two nested MSVC helper builds failed with C1083 while producing atomic_ops.c intermediate output. Follow-up tests, ci: honor Windows VTMP and remove temporary diagnostics #32197 makes fixtures honor the short configured VTMP, which this version ignored; that adjustment has not been rerun.
  • The original Windows HTTP/2 stall remains unverified. All 21 tests pass on Linux/TCC. Adding tracing for the Windows diagnostic exposed a separate initialization-retention issue: generated C omitted Winsock and mbedTLS initialization. That diagnostic failure did not reproduce the original stall, and removal of its temporary workflow is proposed in tests, ci: honor Windows VTMP and remove temporary diagnostics #32197.
  • The original V3 unit-test job log cannot be downloaded through the available connection; summaries and artifacts do not contain the failed-file list. A fresh full-harness run was stopped after 107 of 1,661 files, with no recorded failures in those completed files.
  • The companion VTL PR's macOS runner now starts, but its pinned compiler encounters an FFT native-bridge symbol failure before reaching the math tests; details are in that PR.

Already fixed on master

The base includes the Linux pipe2 fix (#32175), coreutils symbol fix (#32177), Windows checker-print and compiler-selection fixes (#32181, #32182), and multi-object pipe-helper linkage fix (#32186). The old C2V s_sfx/Boolean errors occur after the primary pipe2 failure triggers the obsolete compiler fallback. These existing fixes are not duplicated here.

@chatgpt-codex-connector

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-11T04:45:58.637299Z
We couldn’t complete this review. Comment @codex review to try again.
9b75c3d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@medvednikov
medvednikov merged commit ca5835f into master Nov 11, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant