refactor: rename uCodeGen/uCodeGenQBE to blaise.codegen/blaise.codegen.qbe

Align the QBE backend unit names with the dotted naming convention
already used by the native backend (blaise.codegen.native.*).

  uCodeGen.pas    → blaise.codegen.pas
  uCodeGenQBE.pas → blaise.codegen.qbe.pas

Updated all uses clauses (~70 test files, main compiler units),
documentation references (README + 5 docs/*.adoc files), and
comment references in runtime/stdlib.
This commit is contained in:
Graeme Geldenhuys 2026-06-10 12:12:14 +01:00
parent 8119634b0a
commit bb2fe2da75
85 changed files with 96 additions and 96 deletions

View file

@ -133,7 +133,7 @@ project.xml Root aggregator (packaging=pom)
├── compiler/ The compiler binary (packaging=application)
│ ├── project.xml
│ └── src/
│ ├── main/pascal/ uLexer, uParser, uAST, uCodeGenQBE, blaise.codegen.native.*, ...
│ ├── main/pascal/ uLexer, uParser, uAST, blaise.codegen.qbe, blaise.codegen.native.*, ...
│ └── test/pascal/ Test suite (blaise.testing, compiled by Blaise)
├── runtime/ Always-linked runtime (packaging=library)

View file

@ -22,7 +22,7 @@ program Blaise;
uses
SysUtils, Classes, Process, contnrs,
uLexer, uParser, uAST, uSemantic, uCodeGen, uCodeGenQBE,
uLexer, uParser, uAST, uSemantic, blaise.codegen, blaise.codegen.qbe,
blaise.codegen.target, blaise.codegen.native, uToolchain,
uUnitLoader, uDebugOPDF, uUnitInterface, uSemanticExport, uSemanticImport,
uUnitInterfaceIO, uIfaceObject, uASTDump,
@ -966,7 +966,7 @@ begin
explicit `CG := nil` here: the stage-1 release binary mis-compiles an
explicit nil-assignment to an interface-typed global (emits a bare
single-slot store against an undefined $CG symbol). That codegen gap
is fixed in this tree (EmitAssign interface-nil case in uCodeGenQBE),
is fixed in this tree (EmitAssign interface-nil case in blaise.codegen.qbe),
but stage-1 predates the fix, so the driver must not rely on it. }
if OPDFEnabled then

View file

@ -33,7 +33,7 @@ unit blaise.codegen.native.backend;
interface
uses
SysUtils, uAST, uSymbolTable, uCodeGen, strutils, blaise.codegen.target;
SysUtils, uAST, uSymbolTable, blaise.codegen, strutils, blaise.codegen.target;
type
ENativeCodeGenError = class(Exception);

View file

@ -31,7 +31,7 @@ unit blaise.codegen.native;
interface
uses
SysUtils, uAST, uSymbolTable, uCodeGen,
SysUtils, uAST, uSymbolTable, blaise.codegen,
blaise.codegen.target, blaise.codegen.native.backend;
type

View file

@ -6,11 +6,11 @@
See LICENSE file in the project root for full license terms.
}
unit uCodeGen;
unit blaise.codegen;
{ Backend-neutral code-generator contract.
Both the QBE backend (uCodeGenQBE.TCodeGenQBE) and the native backend
Both the QBE backend (blaise.codegen.qbe.TCodeGenQBE) and the native backend
(blaise.codegen.native.TCodeGenNative) implement ICodeGen, so the
driver in Blaise.pas runs one codegen sequence against the interface
rather than branching per backend.

View file

@ -6,7 +6,7 @@
See LICENSE file in the project root for full license terms.
}
unit uCodeGenQBE;
unit blaise.codegen.qbe;
{ QBE IR emitter for Blaise.
WriteLn/Write are built-ins emitted as calls to _SysWriteStr/_SysWriteInt/
@ -16,7 +16,7 @@ unit uCodeGenQBE;
interface
uses
SysUtils, StrUtils, Classes, uAST, uSymbolTable, uStrCompat, uCodeGen,
SysUtils, StrUtils, Classes, uAST, uSymbolTable, uStrCompat, blaise.codegen,
blaise.codegen.target;
// Raw byte copy used by TIRBuffer maps to libc memcpy.

View file

@ -83,7 +83,7 @@ implementation
per-class out-helpers.
Typeinfo and methods-table layout are documented in
uCodeGenQBE.pas:EmitTypeInfoDefs.
blaise.codegen.qbe.pas:EmitTypeInfoDefs.
----------------------------------------------------------------------- }
function PublishedMethodCount(ATestClass: TTestCaseClass): Integer;

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe;
type
TARCTests = class(TTestCase)

View file

@ -20,7 +20,7 @@ interface
uses
Classes, SysUtils, Process, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
function ProjectRootAttr: string;
function RunCmdAttr(const AExe: string; const AArgs: array of string): Integer;

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TBooleanOpsTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TCaseEnumTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TChainedFieldTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TClassTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TClassOfTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
blaise.testing,
uLexer, uParser, uAST, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe;
type
TCodeGenTests = class(TTestCase)

View file

@ -27,7 +27,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TCollectionTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe;
type
TConstTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TControlTests = class(TTestCase)

View file

@ -20,7 +20,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TDynArrayTests = class(TTestCase)

View file

@ -18,8 +18,8 @@ interface
uses
classes, sysutils, process, contnrs, blaise.testing,
uLexer, uParser, uAST, uSemantic, uCodeGenQBE, uUnitLoader,
uCodeGen, blaise.codegen.target, blaise.codegen.native;
uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe, uUnitLoader,
blaise.codegen, blaise.codegen.target, blaise.codegen.native;
type
{ Code-generation backends an e2e test can run against. The native backend

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TExceptionTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe;
type
TExternalTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TFlowJumpsTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TForInTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TForTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TFunctionTests = class(TTestCase)

View file

@ -17,7 +17,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericConstraintTests = class(TTestCase)

View file

@ -16,7 +16,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericDefaultsTests = class(TTestCase)

View file

@ -22,7 +22,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericForInTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericFuncTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericIntfTests = class(TTestCase)

View file

@ -18,7 +18,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericMethodImplTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericRecordTests = class(TTestCase)

View file

@ -16,7 +16,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TGenericsTests = class(TTestCase)

View file

@ -21,7 +21,7 @@ interface
uses
blaise.testing, cp.test.e2e.base,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
THighLowTests = class(TTestCase)

View file

@ -19,7 +19,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TIMapTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TInheritTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TInterfaceTests = class(TTestCase)

View file

@ -10,7 +10,7 @@ unit cp.test.math;
{ IR-level tests for Math unit functions and math compiler builtins.
Builtins (handled in uSemantic + uCodeGenQBE, no RTL unit needed):
Builtins (handled in uSemantic + blaise.codegen.qbe, no RTL unit needed):
Abs, Sqrt, Ceil, Floor, Round, Trunc, Ln, Log2, Log10, Power,
Sin, Cos, Tan, ArcTan, ArcTan2, IsNaN, IsInfinite.
@ -21,7 +21,7 @@ interface
uses
SysUtils, Classes, contnrs, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE, uUnitLoader;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe, uUnitLoader;
type
TMathTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TMethodTests = class(TTestCase)

View file

@ -16,7 +16,7 @@ interface
uses
Classes, SysUtils, Contnrs, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE,
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe,
uUnitLoader;
type

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TMultiWriteTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TOpenArrayTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TOverloadTests = class(TTestCase)

View file

@ -28,7 +28,7 @@ interface
uses
blaise.testing, cp.test.e2e.base,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TPackedRecordTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TPCharTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TPointerTests = class(TTestCase)

View file

@ -20,7 +20,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TProcessBuiltinTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TProcFuncTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSemantic, uSymbolTable, uCodeGenQBE;
uLexer, uParser, uAST, uSemantic, uSymbolTable, blaise.codegen.qbe;
type
TProcTypesTests = class(TTestCase)

View file

@ -20,7 +20,7 @@ interface
uses
Classes, SysUtils, Process, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
function ProjectRootOFO: string;
function RunCmdOFO(const AExe: string; const AArgs: array of string): Integer;

View file

@ -16,7 +16,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TPropertyTests = class(TTestCase)

View file

@ -21,7 +21,7 @@ interface
uses
Classes, SysUtils, Process, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
function ProjectRootRTTI: string;
function RunCmd(const AExe: string; const AArgs: array of string): Integer;

View file

@ -20,7 +20,7 @@ interface
uses
blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE,
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe,
blaise.codegen.target;
type

View file

@ -12,7 +12,7 @@ interface
uses
blaise.testing, strutils,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TRecordTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TRepeatTests = class(TTestCase)

View file

@ -27,7 +27,7 @@ interface
uses
blaise.testing, cp.test.e2e.base,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TSarTests = class(TTestCase)

View file

@ -17,7 +17,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TSelfHostingTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TSetTests = class(TTestCase)

View file

@ -20,7 +20,7 @@ interface
uses
blaise.testing, cp.test.e2e.base,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TSizeOfTests = class(TTestCase)

View file

@ -23,7 +23,7 @@ interface
uses
blaise.testing, cp.test.e2e.base,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TSmallIntWordTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TStaticArrayTests = class(TTestCase)

View file

@ -24,7 +24,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TStreamsTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TStringOpsTests = class(TTestCase)

View file

@ -20,7 +20,7 @@ interface
uses
SysUtils, Classes, contnrs, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE, uUnitLoader;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe, uUnitLoader;
type
TStrUtilsTests = class(TTestCase)

View file

@ -19,7 +19,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TTDictionaryTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
blaise.testing,
uLexer, uParser, uAST, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe;
type
TThreadVarTests = class(TTestCase)

View file

@ -16,7 +16,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TTListTests = class(TTestCase)

View file

@ -16,7 +16,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TTOrderedDictionaryTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TTQueueTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TTSetTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TTStackTests = class(TTestCase)

View file

@ -14,7 +14,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TTypeTestTests = class(TTestCase)

View file

@ -23,7 +23,7 @@ interface
uses
blaise.testing, cp.test.e2e.base,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TUInt64Tests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE, uUnitLoader;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe, uUnitLoader;
type
TUnitTests = class(TTestCase)

View file

@ -15,7 +15,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TVarParamTests = class(TTestCase)

View file

@ -12,7 +12,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TVTableTests = class(TTestCase)

View file

@ -29,7 +29,7 @@ interface
uses
Classes, SysUtils, blaise.testing,
uLexer, uParser, uAST, uSymbolTable, uSemantic, uCodeGenQBE;
uLexer, uParser, uAST, uSymbolTable, uSemantic, blaise.codegen.qbe;
type
TWeakRefTests = class(TTestCase)

View file

@ -307,7 +307,7 @@ Supported flags:
Units: `uParser.pas`, `uAST.pas`.
. *QBE IR emitter* — traverse AST, emit QBE IR text. Link with `cc`.
Unit: `uCodeGenQBE.pas`.
Unit: `blaise.codegen.qbe.pas`.
+
*Phase 1 pre-work (before parser work begins):* Spend 23 weeks writing QBE IR
snippets by hand targeting libc to build fluency. QBE variadic calls require
@ -567,7 +567,7 @@ build, single combined QBE IR output, no `.ppu` cache.
*Milestone:* `pasbuild test -m blaise-compiler` passes with the compiler compiling
its own multi-unit source (uLexer, uParser, uAST, uSymbolTable, uSemantic,
uCodeGenQBE, uUnitLoader) via `uses` resolution, producing an identical binary.
blaise.codegen.qbe, uUnitLoader) via `uses` resolution, producing an identical binary.
Hand source retired.
=== Phase 5 — OPDF Integration (previously Phase 4)

View file

@ -20,7 +20,7 @@ in three places*.
. The semantic pass that consumes it (`uSemantic.pas`).
. The `.bif` serialiser and deserialiser (`uUnitInterfaceIO.pas`).
Codegen (`uCodeGenQBE.pas`) is a fourth
Codegen (`blaise.codegen.qbe.pas`) is a fourth
place, but only when the node carries runtime semantics. A
type-system-only change (e.g. adding a marker attribute) may need no
codegen work.
@ -235,7 +235,7 @@ AnalyseWhenStmt(TWhenStmt(AStmt))`.
=== Step 4: Codegen (QBE Backend)
In `uCodeGenQBE.pas`, add `EmitWhenStmt`. Each branch becomes a guard /
In `blaise.codegen.qbe.pas`, add `EmitWhenStmt`. Each branch becomes a guard /
body / next-branch label triple, modelled on `EmitIfStmt`'s expansion.
[source,pascal]

View file

@ -3033,7 +3033,7 @@ which naturally has a float subexpression and therefore type-checks.
`boDiv`. `uSemantic.pas` (`AnalyseBinaryExpr`) gives `boSlash` a
float result type unconditionally; `boDiv` retains the existing
integer-promotion rules and now rejects float operands explicitly.
`uCodeGenQBE.pas` lowers both `boSlash` and `boDiv` to QBE's `div`
`blaise.codegen.qbe.pas` lowers both `boSlash` and `boDiv` to QBE's `div`
instruction; the difference is whether the operands have already been
promoted to a float type (`d`/`s`) on the float arithmetic path.

View file

@ -134,7 +134,7 @@ Five categories accepted as "unmangled":
The runtime is hand-written and has *hardcoded* references to specific
symbol names that originate in these units. Concretely:
`uCodeGenQBE.pas` emits calls and references like:
`blaise.codegen.qbe.pas` emits calls and references like:
* `$_StartUp` (program init, in `System` / `rtl.*`)
* `$_SetArgs`
@ -165,7 +165,7 @@ Two paths to fix this:
. **Route everything through the symbol table** — every `$_Foo` in
codegen becomes `RtlSym('_Foo')`, which consults a registry mapping
logical names to mangled names. Cleaner long-term; mechanical refactor
of ~113 call sites in `uCodeGenQBE.pas`. Documented as a follow-up
of ~113 call sites in `blaise.codegen.qbe.pas`. Documented as a follow-up
in `memory/project_unit_prefix_mangling.md`.
@ -286,7 +286,7 @@ To add `mynew_rtl_unit` to the allowlist:
----
if SameText(AUnitName, 'mynew_rtl_unit') then Exit; { add this line }
----
. In `uCodeGenQBE.pas`'s `ClassUnitPrefix`, mirror the same check.
. In `blaise.codegen.qbe.pas`'s `ClassUnitPrefix`, mirror the same check.
. Bump `COMPILER_ID` in `uCompilerId.pas` — the change affects which
units emit prefixed symbols, so previously-built `.bif`s on disk
become semantically incompatible.
@ -320,7 +320,7 @@ prebuilt `.o`.
=== Property accessors
Properties don't have their own symbols — they expand at call sites to
calls into the read/write method. `uCodeGenQBE`'s property-access
calls into the read/write method. `blaise.codegen.qbe`'s property-access
emission inserts the prefix via `ClassUnitPrefix(FldAccess.PropOwnerType)`
so `MyList.Strings[0]` compiles to a call like
`$Classes_TStringList_GetStrings`.

View file

@ -54,7 +54,7 @@ dependencies.
| blaise.testing
| Parser, semantic analysis, and codegen logic. Feed source strings through
the compiler pipeline and assert on generated QBE IR substrings.
| Tests import compiler internals (`uParser`, `uSemantic`, `uCodeGenQBE`) and
| Tests import compiler internals (`uParser`, `uSemantic`, `blaise.codegen.qbe`) and
run in-process. Fast (~5 s for 1800+ tests).
| Compiler E2E tests
@ -93,7 +93,7 @@ module for the following reasons:
Import dependencies::
IR tests import compiler internals (`uLexer`, `uParser`, `uAST`,
`uSymbolTable`, `uSemantic`, `uCodeGenQBE`, `uUnitLoader`). Moving them
`uSymbolTable`, `uSemantic`, `blaise.codegen.qbe`, `uUnitLoader`). Moving them
to `stdlib/` would create a circular build dependency: stdlib tests would
depend on the compiler module, while the compiler module already depends on
stdlib for its unit search path.

View file

@ -692,7 +692,7 @@ end;
{ _ClassCreate: runtime equivalent of the inline EmitConstructorCall
lowering the codegen produces for the static 'TFoo.Create' form.
Reads totalsize, fieldcleanup pointer, and vtable pointer from the
expanded class typeinfo (see typeinfo layout in uCodeGenQBE.pas's
expanded class typeinfo (see typeinfo layout in blaise.codegen.qbe.pas's
EmitTypeInfoDefs). Allocates an instance, installs the vtable
pointer at slot 0, and bumps the refcount once.

View file

@ -13,7 +13,7 @@ unit Math;
// Provides numeric utilities for integer and floating-point types.
//
// The following are implemented as compiler builtins (in uSemantic.pas +
// uCodeGenQBE.pas) and therefore do NOT appear in this unit's interface:
// blaise.codegen.qbe.pas) and therefore do NOT appear in this unit's interface:
// Abs, Sqrt, Ceil, Floor, Round, Trunc, Ln, Log2, Log10, Power,
// Sin, Cos, Tan, ArcTan, ArcTan2, IsNaN, IsInfinite.
//