Skip to content

Fix benchmark compiler paths across worktrees - #191

Draft
zzwong wants to merge 1 commit into
mainfrom
fix/benchmark-native-compiler-paths
Draft

zzwong wants to merge 1 commit into
mainfrom
fix/benchmark-native-compiler-paths

Conversation

@zzwong

@zzwong zzwong commented Nov 10, 2026

Copy link
Copy Markdown
Owner

Summary

Fix native compiler selection in the benchmark driver for #115.

  • Resolve --cc and --cxx once in the invoking environment and reuse absolute paths for preflight, build commands and metadata.
  • Preserve symlinked launcher names and parent-directory segments.
  • Add eight regressions and document invocation-directory/PATH behavior.

Relative paths previously passed preflight in the checkout but failed after the driver switched to a disposable worktree. A compiler found through a relative PATH entry had the same problem. Default absolute compiler paths remain unchanged.

Validation

On Linux with Python 3.12.14 and Git 2.52.0:

  • All 35 benchmark-driver tests passed, including 27 existing tests and eight additions.
  • An independent review and separate rerun of all 35 tests passed.
  • The same test suite against the unchanged driver produced five expected routing errors; the other 30 tests passed.
  • Python parsing, whitespace checks and forward/reverse patch application passed.
  • Verified all three baseline files against GitHub blob identities at 7b68d0b6959607ff094745f8ab28a123ef2de2a8.

The fixtures use real temporary Git worktrees and fake Rust/C/C++ executables. They execute the selected fake native compilers from the build working directory and compare them with the preflight receipts. Coverage includes relative paths, invocation outside the checkout, relative PATH entries, spaces, symlink names, symlink-plus-parent paths, missing/nonexecutable choices and absolute-path compatibility.

Unrun checks

Full repository core/native checks, real Rust/C/C++ compilation, Clippy/audit and native macOS checks were not run locally. No Rust toolchain was installed for this work. The focused fixtures do not establish native build compatibility or performance improvement; hosted CI is separate.

This is a standalone draft based directly on main. No application source, dependency, workflow, cache policy or profile default changed. #115 remains open for its broader measurement and platform acceptance.

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