blaise/scripts
Graeme Geldenhuys 0631bb0cdf test(native): add internal-assembler conformance guard
Neither fixpoint exercises the in-process internal assembler (--assembler
internal): fixpoint.sh assembles via qbe+gcc, fixpoint-native.sh assembles
the native .s with gcc.  A miscompilation that only corrupts the internal
assembler's object output therefore passes both fixpoints cleanly — which is
exactly how the sret-Result field-read bug (fixed in the previous commit)
escaped the fixpoint gate.

scripts/fixpoint-native-internal.sh closes that gap.  It compiles a small
representative program (record-returning function with sret-Result field
reads, plus immutable string literals) with BOTH --assembler internal and
--assembler external, then asserts the two binaries behave identically
(stdout + exit code).  Behavioural equivalence is the sound invariant: the
two assemblers may emit different-but-valid encodings, so a byte-level
section compare would false-positive.

A true self-hosting internal-assembler fixpoint (compile the compiler with
itself via --assembler internal) is deferred: the internal assembler buffers
the whole object in memory and needs ~53 GB for the compiler's own 631k-line
.s, OOM-killing.  That scalability limit is tracked in bugs.txt; until the
assembler streams its output, this differential conformance check plus
TInternalAsmE2ETests are the internal-assembler guards.

Verified: prints NATIVE_INTERNAL_OK on a fixed compiler, exits non-zero with
EXIT_MISMATCH on a compiler carrying the sret-Result bug.
2026-06-16 00:50:18 +01:00
..
BOOTSTRAP.adoc tooling: rolling-bootstrap script for development-checkout builds 2026-06-03 08:05:16 +01:00
fixpoint-native-internal.sh test(native): add internal-assembler conformance guard 2026-06-16 00:50:18 +01:00
fixpoint-native.sh feat: add native fixpoint verification script 2026-06-10 14:02:01 +01:00
fixpoint.sh refactor(lang): remove IsNoArgFuncCall dead code, fix remaining bare calls 2026-06-06 20:28:13 +01:00
rolling-bootstrap.sh chore: adopt -SNAPSHOT version suffix, update README 2026-06-10 10:39:14 +01:00