feat(backend): default to the native backend; QBE is now opt-in
Flip the compiler's default --backend from qbe to native. Native has full feature parity with QBE (the v0.11.0 cycle's 116 fixes plus the dual-backend e2e harness brought them level), self-hosts, and gives no external codegen dependency, source-level debugging, and a path to cross-compilation — so it is the right default to exercise everywhere. QBE stays fully supported via --backend qbe and remains the cold-bootstrap root: --emit-ir still routes to QBE regardless of the default (PickTopDriver ignores --backend for emit modes), so scripts/rolling-bootstrap.sh, fixpoint.sh, and CI — all of which pass --emit-ir explicitly — are unaffected by this change. The only behaviour change is that a plain 'blaise --source X --output Y' (and a plain 'make' in runtime/) now uses the native backend. Flipping the default surfaced and fixed a real native gap first (the unit-to-.o duplicate-system-defs link collision, previous commit); the full suite is green with the TestRunner built by BOTH a QBE-built and a native-built compiler, and all three fixpoints pass.
This commit is contained in:
parent
87c17ee589
commit
d56bdbf84f
|
|
@ -44,7 +44,7 @@ const
|
|||
CompilerName = 'Blaise';
|
||||
|
||||
{ Build the --backend usage fragment from the registered drivers, with
|
||||
the default (bkQBE) entry marked. Keeps the flag parser and the usage
|
||||
the default (bkNative) entry marked. Keeps the flag parser and the usage
|
||||
text from drifting out of sync with the registry when a backend is
|
||||
added. }
|
||||
function BackendUsageLine: string;
|
||||
|
|
@ -61,7 +61,7 @@ begin
|
|||
if I > 0 then
|
||||
Result := Result + ' | ';
|
||||
Result := Result + Names.Strings[I];
|
||||
if ParseBackendName(Names.Strings[I], K) and (K = bkQBE) then
|
||||
if ParseBackendName(Names.Strings[I], K) and (K = bkNative) then
|
||||
Result := Result + ' (default)';
|
||||
end;
|
||||
finally
|
||||
|
|
@ -150,7 +150,7 @@ begin
|
|||
AFront.EmitIR := False;
|
||||
AFront.EmitAsm := False;
|
||||
AFront.DumpAST := False;
|
||||
AFront.Backend := bkQBE;
|
||||
AFront.Backend := bkNative; { native is the default backend; QBE is opt-in via --backend qbe }
|
||||
AFront.BackendExplicit := False;
|
||||
AFront.SkipDepCodegen := False;
|
||||
AFront.EmitIfaceDir := '';
|
||||
|
|
|
|||
Loading…
Reference in a new issue