verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
llvm-exegesis
llvm-exegesis is a benchmarking tool that accepts or generates snippets and
can measure characteristics of those snippets by executing it while keeping track
of performance counters.
Currently Supported Platforms
llvm-exegesis is quite platform-dependent and currently only supports a couple
platform configurations for benchmarking. The limitations are listed below.
Analysis mode in llvm-exegesis is supported on all platforms on which LLVM is.
Currently Supported Operating Systems for Benchmarking
Currently, llvm-exegesis only supports benchmarking on Linux. This is mainly
due to a dependency on the Linux perf subsystem for reading
performance counters.
The subprocess execution mode and memory annotations currently only supports Linux due to a heavy reliance on many Linux specific syscalls/syscall implementations.
Currently Supported Architectures for Benchmarking
Currently, using llvm-exegesis for benchmarking is supported on the following
architectures:
- x86
- 64-bit only due to this being the only implemented calling convention
in
llvm-exegesiscurrently.
- 64-bit only due to this being the only implemented calling convention
in
- ARM
- Very experimental AArch64 support only: most opcodes probably won't work as e.g. pseudo instructions and most register classes are not supported.
- MIPS
- PowerPC (PowerPC64LE only)
- RISC-V
- RV64I/E, RV32I/E and extensions supported by LLVM's RISC-V backend with some limitations.
Note that not all benchmarking functionality is guaranteed to work on all platforms.
Memory annotations are currently only supported on 64-bit X86. There is no
inherent limitations for porting memory annotations to other architectures, but
parts of the test harness are implemented as MCJITed assembly that is generated
in ./lib/X86/Target.cpp that would need to be implemented on other architectures
to bring up support.