diff --git a/README.adoc b/README.adoc index 9567e6f..8ca4977 100644 --- a/README.adoc +++ b/README.adoc @@ -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) diff --git a/compiler/src/main/pascal/Blaise.pas b/compiler/src/main/pascal/Blaise.pas index d11bbad..b4299dc 100644 --- a/compiler/src/main/pascal/Blaise.pas +++ b/compiler/src/main/pascal/Blaise.pas @@ -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 diff --git a/compiler/src/main/pascal/blaise.codegen.native.backend.pas b/compiler/src/main/pascal/blaise.codegen.native.backend.pas index 5d75d71..137c570 100644 --- a/compiler/src/main/pascal/blaise.codegen.native.backend.pas +++ b/compiler/src/main/pascal/blaise.codegen.native.backend.pas @@ -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); diff --git a/compiler/src/main/pascal/blaise.codegen.native.pas b/compiler/src/main/pascal/blaise.codegen.native.pas index 7512023..4fe7c48 100644 --- a/compiler/src/main/pascal/blaise.codegen.native.pas +++ b/compiler/src/main/pascal/blaise.codegen.native.pas @@ -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 diff --git a/compiler/src/main/pascal/uCodeGen.pas b/compiler/src/main/pascal/blaise.codegen.pas similarity index 96% rename from compiler/src/main/pascal/uCodeGen.pas rename to compiler/src/main/pascal/blaise.codegen.pas index b07d0ac..3262fa4 100644 --- a/compiler/src/main/pascal/uCodeGen.pas +++ b/compiler/src/main/pascal/blaise.codegen.pas @@ -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. diff --git a/compiler/src/main/pascal/uCodeGenQBE.pas b/compiler/src/main/pascal/blaise.codegen.qbe.pas similarity index 99% rename from compiler/src/main/pascal/uCodeGenQBE.pas rename to compiler/src/main/pascal/blaise.codegen.qbe.pas index 9aa689f..242a975 100644 --- a/compiler/src/main/pascal/uCodeGenQBE.pas +++ b/compiler/src/main/pascal/blaise.codegen.qbe.pas @@ -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. diff --git a/compiler/src/main/pascal/blaise.testing.runner.text.pas b/compiler/src/main/pascal/blaise.testing.runner.text.pas index 4708d69..48a20ad 100644 --- a/compiler/src/main/pascal/blaise.testing.runner.text.pas +++ b/compiler/src/main/pascal/blaise.testing.runner.text.pas @@ -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; diff --git a/compiler/src/test/pascal/cp.test.arc.pas b/compiler/src/test/pascal/cp.test.arc.pas index cca2a5c..0d4e175 100644 --- a/compiler/src/test/pascal/cp.test.arc.pas +++ b/compiler/src/test/pascal/cp.test.arc.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.attributes.pas b/compiler/src/test/pascal/cp.test.attributes.pas index aa7ebee..101ea0f 100644 --- a/compiler/src/test/pascal/cp.test.attributes.pas +++ b/compiler/src/test/pascal/cp.test.attributes.pas @@ -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; diff --git a/compiler/src/test/pascal/cp.test.booleanops.pas b/compiler/src/test/pascal/cp.test.booleanops.pas index 2eebfc4..28d2282 100644 --- a/compiler/src/test/pascal/cp.test.booleanops.pas +++ b/compiler/src/test/pascal/cp.test.booleanops.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.caseenum.pas b/compiler/src/test/pascal/cp.test.caseenum.pas index ca9e9c8..9ba4267 100644 --- a/compiler/src/test/pascal/cp.test.caseenum.pas +++ b/compiler/src/test/pascal/cp.test.caseenum.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.chainedfields.pas b/compiler/src/test/pascal/cp.test.chainedfields.pas index 869a1b3..183f72e 100644 --- a/compiler/src/test/pascal/cp.test.chainedfields.pas +++ b/compiler/src/test/pascal/cp.test.chainedfields.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.classes.pas b/compiler/src/test/pascal/cp.test.classes.pas index d8ea457..9f247fa 100644 --- a/compiler/src/test/pascal/cp.test.classes.pas +++ b/compiler/src/test/pascal/cp.test.classes.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.classof.pas b/compiler/src/test/pascal/cp.test.classof.pas index 6ca47ff..5979b6e 100644 --- a/compiler/src/test/pascal/cp.test.classof.pas +++ b/compiler/src/test/pascal/cp.test.classof.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.codegen.pas b/compiler/src/test/pascal/cp.test.codegen.pas index 52ceefa..98f9aab 100644 --- a/compiler/src/test/pascal/cp.test.codegen.pas +++ b/compiler/src/test/pascal/cp.test.codegen.pas @@ -12,7 +12,7 @@ interface uses blaise.testing, - uLexer, uParser, uAST, uSemantic, uCodeGenQBE; + uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe; type TCodeGenTests = class(TTestCase) diff --git a/compiler/src/test/pascal/cp.test.collections.pas b/compiler/src/test/pascal/cp.test.collections.pas index e531aad..b315643 100644 --- a/compiler/src/test/pascal/cp.test.collections.pas +++ b/compiler/src/test/pascal/cp.test.collections.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.constants.pas b/compiler/src/test/pascal/cp.test.constants.pas index fd78945..49bcdcb 100644 --- a/compiler/src/test/pascal/cp.test.constants.pas +++ b/compiler/src/test/pascal/cp.test.constants.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.control.pas b/compiler/src/test/pascal/cp.test.control.pas index 194e5ba..d82a103 100644 --- a/compiler/src/test/pascal/cp.test.control.pas +++ b/compiler/src/test/pascal/cp.test.control.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.dynarray.pas b/compiler/src/test/pascal/cp.test.dynarray.pas index a669979..c3f5bf4 100644 --- a/compiler/src/test/pascal/cp.test.dynarray.pas +++ b/compiler/src/test/pascal/cp.test.dynarray.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.e2e.base.pas b/compiler/src/test/pascal/cp.test.e2e.base.pas index 0d0bd83..ee26dce 100644 --- a/compiler/src/test/pascal/cp.test.e2e.base.pas +++ b/compiler/src/test/pascal/cp.test.e2e.base.pas @@ -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 diff --git a/compiler/src/test/pascal/cp.test.exceptions.pas b/compiler/src/test/pascal/cp.test.exceptions.pas index 05d4b70..e629887 100644 --- a/compiler/src/test/pascal/cp.test.exceptions.pas +++ b/compiler/src/test/pascal/cp.test.exceptions.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.external.pas b/compiler/src/test/pascal/cp.test.external.pas index efeb620..449e2a0 100644 --- a/compiler/src/test/pascal/cp.test.external.pas +++ b/compiler/src/test/pascal/cp.test.external.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.flowjumps.pas b/compiler/src/test/pascal/cp.test.flowjumps.pas index 9acca5f..7181f11 100644 --- a/compiler/src/test/pascal/cp.test.flowjumps.pas +++ b/compiler/src/test/pascal/cp.test.flowjumps.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.forin.pas b/compiler/src/test/pascal/cp.test.forin.pas index 8b996cb..fea4295 100644 --- a/compiler/src/test/pascal/cp.test.forin.pas +++ b/compiler/src/test/pascal/cp.test.forin.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.forloop.pas b/compiler/src/test/pascal/cp.test.forloop.pas index 3c9df55..bb9622b 100644 --- a/compiler/src/test/pascal/cp.test.forloop.pas +++ b/compiler/src/test/pascal/cp.test.forloop.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.functions.pas b/compiler/src/test/pascal/cp.test.functions.pas index 33c5629..7b5e382 100644 --- a/compiler/src/test/pascal/cp.test.functions.pas +++ b/compiler/src/test/pascal/cp.test.functions.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.genericconstraints.pas b/compiler/src/test/pascal/cp.test.genericconstraints.pas index dd3b802..58aff5f 100644 --- a/compiler/src/test/pascal/cp.test.genericconstraints.pas +++ b/compiler/src/test/pascal/cp.test.genericconstraints.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.genericdefaults.pas b/compiler/src/test/pascal/cp.test.genericdefaults.pas index 9680a5f..aa6f8f2 100644 --- a/compiler/src/test/pascal/cp.test.genericdefaults.pas +++ b/compiler/src/test/pascal/cp.test.genericdefaults.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.genericforin.pas b/compiler/src/test/pascal/cp.test.genericforin.pas index 24ea8c2..4c8d363 100644 --- a/compiler/src/test/pascal/cp.test.genericforin.pas +++ b/compiler/src/test/pascal/cp.test.genericforin.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.genericfuncs.pas b/compiler/src/test/pascal/cp.test.genericfuncs.pas index 7fb1704..e6d2389 100644 --- a/compiler/src/test/pascal/cp.test.genericfuncs.pas +++ b/compiler/src/test/pascal/cp.test.genericfuncs.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.genericintfs.pas b/compiler/src/test/pascal/cp.test.genericintfs.pas index d9054eb..bbd5e17 100644 --- a/compiler/src/test/pascal/cp.test.genericintfs.pas +++ b/compiler/src/test/pascal/cp.test.genericintfs.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.genericmethodimpls.pas b/compiler/src/test/pascal/cp.test.genericmethodimpls.pas index 56cbc0d..b11669c 100644 --- a/compiler/src/test/pascal/cp.test.genericmethodimpls.pas +++ b/compiler/src/test/pascal/cp.test.genericmethodimpls.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.genericrecords.pas b/compiler/src/test/pascal/cp.test.genericrecords.pas index 3c391f5..819cc27 100644 --- a/compiler/src/test/pascal/cp.test.genericrecords.pas +++ b/compiler/src/test/pascal/cp.test.genericrecords.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.generics.pas b/compiler/src/test/pascal/cp.test.generics.pas index 02ae069..1baef0f 100644 --- a/compiler/src/test/pascal/cp.test.generics.pas +++ b/compiler/src/test/pascal/cp.test.generics.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.highlow.pas b/compiler/src/test/pascal/cp.test.highlow.pas index 0ae2d38..e75c4c6 100644 --- a/compiler/src/test/pascal/cp.test.highlow.pas +++ b/compiler/src/test/pascal/cp.test.highlow.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.imap.pas b/compiler/src/test/pascal/cp.test.imap.pas index 905d175..4f0a557 100644 --- a/compiler/src/test/pascal/cp.test.imap.pas +++ b/compiler/src/test/pascal/cp.test.imap.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.inherit.pas b/compiler/src/test/pascal/cp.test.inherit.pas index 0707465..d51e73b 100644 --- a/compiler/src/test/pascal/cp.test.inherit.pas +++ b/compiler/src/test/pascal/cp.test.inherit.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.interfaces.pas b/compiler/src/test/pascal/cp.test.interfaces.pas index c11acfb..bcc8de4 100644 --- a/compiler/src/test/pascal/cp.test.interfaces.pas +++ b/compiler/src/test/pascal/cp.test.interfaces.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.math.pas b/compiler/src/test/pascal/cp.test.math.pas index 00338ad..caa58a3 100644 --- a/compiler/src/test/pascal/cp.test.math.pas +++ b/compiler/src/test/pascal/cp.test.math.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.methods.pas b/compiler/src/test/pascal/cp.test.methods.pas index 445feaf..e2ba165 100644 --- a/compiler/src/test/pascal/cp.test.methods.pas +++ b/compiler/src/test/pascal/cp.test.methods.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.multifile.pas b/compiler/src/test/pascal/cp.test.multifile.pas index 3bf3869..f5fba62 100644 --- a/compiler/src/test/pascal/cp.test.multifile.pas +++ b/compiler/src/test/pascal/cp.test.multifile.pas @@ -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 diff --git a/compiler/src/test/pascal/cp.test.multiwrite.pas b/compiler/src/test/pascal/cp.test.multiwrite.pas index 66590c8..ca08343 100644 --- a/compiler/src/test/pascal/cp.test.multiwrite.pas +++ b/compiler/src/test/pascal/cp.test.multiwrite.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.openarray.pas b/compiler/src/test/pascal/cp.test.openarray.pas index f239ee9..2b96311 100644 --- a/compiler/src/test/pascal/cp.test.openarray.pas +++ b/compiler/src/test/pascal/cp.test.openarray.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.overload.pas b/compiler/src/test/pascal/cp.test.overload.pas index 4921a6c..12b1aa9 100644 --- a/compiler/src/test/pascal/cp.test.overload.pas +++ b/compiler/src/test/pascal/cp.test.overload.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.packedrecord.pas b/compiler/src/test/pascal/cp.test.packedrecord.pas index a67c404..b8763e5 100644 --- a/compiler/src/test/pascal/cp.test.packedrecord.pas +++ b/compiler/src/test/pascal/cp.test.packedrecord.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.pchar.pas b/compiler/src/test/pascal/cp.test.pchar.pas index 275bc0a..07a256a 100644 --- a/compiler/src/test/pascal/cp.test.pchar.pas +++ b/compiler/src/test/pascal/cp.test.pchar.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.pointers.pas b/compiler/src/test/pascal/cp.test.pointers.pas index 8225e80..4b3b2e7 100644 --- a/compiler/src/test/pascal/cp.test.pointers.pas +++ b/compiler/src/test/pascal/cp.test.pointers.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.process.pas b/compiler/src/test/pascal/cp.test.process.pas index 254ddee..e5cef5a 100644 --- a/compiler/src/test/pascal/cp.test.process.pas +++ b/compiler/src/test/pascal/cp.test.process.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.procs.pas b/compiler/src/test/pascal/cp.test.procs.pas index 38947f7..64f9d5c 100644 --- a/compiler/src/test/pascal/cp.test.procs.pas +++ b/compiler/src/test/pascal/cp.test.procs.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.proctypes.pas b/compiler/src/test/pascal/cp.test.proctypes.pas index 8d043b7..873f3a2 100644 --- a/compiler/src/test/pascal/cp.test.proctypes.pas +++ b/compiler/src/test/pascal/cp.test.proctypes.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.proctypes_ofobject.pas b/compiler/src/test/pascal/cp.test.proctypes_ofobject.pas index ec4d56a..f10ed69 100644 --- a/compiler/src/test/pascal/cp.test.proctypes_ofobject.pas +++ b/compiler/src/test/pascal/cp.test.proctypes_ofobject.pas @@ -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; diff --git a/compiler/src/test/pascal/cp.test.properties.pas b/compiler/src/test/pascal/cp.test.properties.pas index 63c84a6..acd7d2b 100644 --- a/compiler/src/test/pascal/cp.test.properties.pas +++ b/compiler/src/test/pascal/cp.test.properties.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.publishedrtti.pas b/compiler/src/test/pascal/cp.test.publishedrtti.pas index b7028c5..a3931a1 100644 --- a/compiler/src/test/pascal/cp.test.publishedrtti.pas +++ b/compiler/src/test/pascal/cp.test.publishedrtti.pas @@ -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; diff --git a/compiler/src/test/pascal/cp.test.recordret.pas b/compiler/src/test/pascal/cp.test.recordret.pas index 08360d2..6ac93a9 100644 --- a/compiler/src/test/pascal/cp.test.recordret.pas +++ b/compiler/src/test/pascal/cp.test.recordret.pas @@ -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 diff --git a/compiler/src/test/pascal/cp.test.records.pas b/compiler/src/test/pascal/cp.test.records.pas index 3e9080a..8942310 100644 --- a/compiler/src/test/pascal/cp.test.records.pas +++ b/compiler/src/test/pascal/cp.test.records.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.repeatloop.pas b/compiler/src/test/pascal/cp.test.repeatloop.pas index 9046787..09a32bc 100644 --- a/compiler/src/test/pascal/cp.test.repeatloop.pas +++ b/compiler/src/test/pascal/cp.test.repeatloop.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.sar.pas b/compiler/src/test/pascal/cp.test.sar.pas index 00b3195..6d63a19 100644 --- a/compiler/src/test/pascal/cp.test.sar.pas +++ b/compiler/src/test/pascal/cp.test.sar.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.selfhosting.pas b/compiler/src/test/pascal/cp.test.selfhosting.pas index eac68d8..caac32d 100644 --- a/compiler/src/test/pascal/cp.test.selfhosting.pas +++ b/compiler/src/test/pascal/cp.test.selfhosting.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.sets.pas b/compiler/src/test/pascal/cp.test.sets.pas index 41dd1a4..50a4635 100644 --- a/compiler/src/test/pascal/cp.test.sets.pas +++ b/compiler/src/test/pascal/cp.test.sets.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.sizeof.pas b/compiler/src/test/pascal/cp.test.sizeof.pas index 86c9e22..fc7d59a 100644 --- a/compiler/src/test/pascal/cp.test.sizeof.pas +++ b/compiler/src/test/pascal/cp.test.sizeof.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.smallint_word.pas b/compiler/src/test/pascal/cp.test.smallint_word.pas index aa028ea..792e60d 100644 --- a/compiler/src/test/pascal/cp.test.smallint_word.pas +++ b/compiler/src/test/pascal/cp.test.smallint_word.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.staticarray.pas b/compiler/src/test/pascal/cp.test.staticarray.pas index d435fe0..89659f8 100644 --- a/compiler/src/test/pascal/cp.test.staticarray.pas +++ b/compiler/src/test/pascal/cp.test.staticarray.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.streams.pas b/compiler/src/test/pascal/cp.test.streams.pas index 3018894..5700556 100644 --- a/compiler/src/test/pascal/cp.test.streams.pas +++ b/compiler/src/test/pascal/cp.test.streams.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.stringops.pas b/compiler/src/test/pascal/cp.test.stringops.pas index 7a724c4..ff95e32 100644 --- a/compiler/src/test/pascal/cp.test.stringops.pas +++ b/compiler/src/test/pascal/cp.test.stringops.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.strutils.pas b/compiler/src/test/pascal/cp.test.strutils.pas index ac0411e..2048937 100644 --- a/compiler/src/test/pascal/cp.test.strutils.pas +++ b/compiler/src/test/pascal/cp.test.strutils.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.tdictionary.pas b/compiler/src/test/pascal/cp.test.tdictionary.pas index 23dbfdf..b0280ca 100644 --- a/compiler/src/test/pascal/cp.test.tdictionary.pas +++ b/compiler/src/test/pascal/cp.test.tdictionary.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.threadvar.pas b/compiler/src/test/pascal/cp.test.threadvar.pas index f71eb2c..6487405 100644 --- a/compiler/src/test/pascal/cp.test.threadvar.pas +++ b/compiler/src/test/pascal/cp.test.threadvar.pas @@ -12,7 +12,7 @@ interface uses blaise.testing, - uLexer, uParser, uAST, uSemantic, uCodeGenQBE; + uLexer, uParser, uAST, uSemantic, blaise.codegen.qbe; type TThreadVarTests = class(TTestCase) diff --git a/compiler/src/test/pascal/cp.test.tlist.pas b/compiler/src/test/pascal/cp.test.tlist.pas index 5d795df..d4c54b1 100644 --- a/compiler/src/test/pascal/cp.test.tlist.pas +++ b/compiler/src/test/pascal/cp.test.tlist.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.tordereddictionary.pas b/compiler/src/test/pascal/cp.test.tordereddictionary.pas index a8c2869..aad619e 100644 --- a/compiler/src/test/pascal/cp.test.tordereddictionary.pas +++ b/compiler/src/test/pascal/cp.test.tordereddictionary.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.tqueue.pas b/compiler/src/test/pascal/cp.test.tqueue.pas index 80e1bc5..b9c5d37 100644 --- a/compiler/src/test/pascal/cp.test.tqueue.pas +++ b/compiler/src/test/pascal/cp.test.tqueue.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.tset.pas b/compiler/src/test/pascal/cp.test.tset.pas index be212de..e024ab0 100644 --- a/compiler/src/test/pascal/cp.test.tset.pas +++ b/compiler/src/test/pascal/cp.test.tset.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.tstack.pas b/compiler/src/test/pascal/cp.test.tstack.pas index 0fdfda4..70b314d 100644 --- a/compiler/src/test/pascal/cp.test.tstack.pas +++ b/compiler/src/test/pascal/cp.test.tstack.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.typetests.pas b/compiler/src/test/pascal/cp.test.typetests.pas index 4b5fdd7..ed88e88 100644 --- a/compiler/src/test/pascal/cp.test.typetests.pas +++ b/compiler/src/test/pascal/cp.test.typetests.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.uint64.pas b/compiler/src/test/pascal/cp.test.uint64.pas index 2766758..8f41b98 100644 --- a/compiler/src/test/pascal/cp.test.uint64.pas +++ b/compiler/src/test/pascal/cp.test.uint64.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.units.pas b/compiler/src/test/pascal/cp.test.units.pas index 39ff88c..85f7028 100644 --- a/compiler/src/test/pascal/cp.test.units.pas +++ b/compiler/src/test/pascal/cp.test.units.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.varparams.pas b/compiler/src/test/pascal/cp.test.varparams.pas index 9dcd2d2..413b49a 100644 --- a/compiler/src/test/pascal/cp.test.varparams.pas +++ b/compiler/src/test/pascal/cp.test.varparams.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.vtable.pas b/compiler/src/test/pascal/cp.test.vtable.pas index 846c7df..9a8495e 100644 --- a/compiler/src/test/pascal/cp.test.vtable.pas +++ b/compiler/src/test/pascal/cp.test.vtable.pas @@ -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) diff --git a/compiler/src/test/pascal/cp.test.weakref.pas b/compiler/src/test/pascal/cp.test.weakref.pas index 4be433d..b407102 100644 --- a/compiler/src/test/pascal/cp.test.weakref.pas +++ b/compiler/src/test/pascal/cp.test.weakref.pas @@ -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) diff --git a/docs/design.adoc b/docs/design.adoc index 4a9c1ec..b474517 100644 --- a/docs/design.adoc +++ b/docs/design.adoc @@ -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 2–3 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) diff --git a/docs/extending-ast.adoc b/docs/extending-ast.adoc index 6a9333a..8bf5f6c 100644 --- a/docs/extending-ast.adoc +++ b/docs/extending-ast.adoc @@ -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] diff --git a/docs/language-rationale.adoc b/docs/language-rationale.adoc index fc4a97a..04416a1 100644 --- a/docs/language-rationale.adoc +++ b/docs/language-rationale.adoc @@ -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. diff --git a/docs/name-mangling.adoc b/docs/name-mangling.adoc index 2766fe9..414f47f 100644 --- a/docs/name-mangling.adoc +++ b/docs/name-mangling.adoc @@ -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`. diff --git a/docs/testing-strategy.adoc b/docs/testing-strategy.adoc index d3503a9..0745b79 100644 --- a/docs/testing-strategy.adoc +++ b/docs/testing-strategy.adoc @@ -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. diff --git a/runtime/src/main/pascal/blaise_arc.pas b/runtime/src/main/pascal/blaise_arc.pas index 10b8dc7..066bd05 100644 --- a/runtime/src/main/pascal/blaise_arc.pas +++ b/runtime/src/main/pascal/blaise_arc.pas @@ -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. diff --git a/stdlib/src/main/pascal/math.pas b/stdlib/src/main/pascal/math.pas index cda4766..a751fd7 100644 --- a/stdlib/src/main/pascal/math.pas +++ b/stdlib/src/main/pascal/math.pas @@ -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. //