2026-04-20 16:22:10 +03:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<project>
|
Phase 1 bootstrap: Blaise compiler skeleton
Renames the project from 'Clean Pascal' to Blaise (after Blaise Pascal).
Adds the Phase 1 compiler pipeline with TDD test suite:
- uPasTokeniser: general Pascal tokeniser (ported from fpGUI IDE)
- uLexer: compiler-specific adapter — filters whitespace/comments,
maps to TTokenKind, unescapes string literals
- uAST: typed AST node hierarchy (TProgram, TBlock, TBinaryExpr, etc.)
- uParser: recursive-descent parser for the Phase 1 BNF grammar
- uCodeGenQBE: QBE IR emitter — WriteLn/Write built-ins, integer
variables, arithmetic, string literals
- Blaise.pas: compiler driver — parses flags, shells to qbe+cc
- FPCUnit test suites for lexer, parser, and code generator
2026-04-20 17:35:50 +03:00
|
|
|
<name>blaise-compiler</name>
|
2026-04-20 16:22:10 +03:00
|
|
|
|
|
|
|
|
<build>
|
|
|
|
|
<packaging>application</packaging>
|
Phase 1 bootstrap: Blaise compiler skeleton
Renames the project from 'Clean Pascal' to Blaise (after Blaise Pascal).
Adds the Phase 1 compiler pipeline with TDD test suite:
- uPasTokeniser: general Pascal tokeniser (ported from fpGUI IDE)
- uLexer: compiler-specific adapter — filters whitespace/comments,
maps to TTokenKind, unescapes string literals
- uAST: typed AST node hierarchy (TProgram, TBlock, TBinaryExpr, etc.)
- uParser: recursive-descent parser for the Phase 1 BNF grammar
- uCodeGenQBE: QBE IR emitter — WriteLn/Write built-ins, integer
variables, arithmetic, string literals
- Blaise.pas: compiler driver — parses flags, shells to qbe+cc
- FPCUnit test suites for lexer, parser, and code generator
2026-04-20 17:35:50 +03:00
|
|
|
<mainSource>Blaise.pas</mainSource>
|
|
|
|
|
<executableName>blaise</executableName>
|
2026-05-12 18:49:17 +03:00
|
|
|
<unitPaths>
|
2026-07-04 21:44:54 +03:00
|
|
|
<path>../runtime/src/main/pascal</path>
|
refactor: split rtl/ into runtime/ + stdlib/, rename bcl.testing to blaise.testing
Separate always-linked runtime code (system.pas, ARC, strings, platform
abstraction) from opt-in standard library units (sysutils, classes, math,
dateutils, generics, etc.). This mirrors the Go runtime/ vs stdlib, Rust
core vs std, and Swift SwiftRuntime vs SwiftCore patterns.
- runtime/ contains code linked into every binary + C shims
- stdlib/ contains units imported explicitly via uses clause
- Single platform abstraction layer (rtl.platform.*) in runtime/,
shared by both runtime/ and stdlib/ units
- bcl.testing renamed to blaise.testing across all 95+ test files
- Updated PasBuild project.xml, fixpoint.sh, README, unit search paths
- All 1931 tests pass, fixpoint OK (stage-3/stage-4)
2026-05-16 02:51:18 +03:00
|
|
|
<path>../stdlib/src/main/pascal</path>
|
2026-05-12 18:49:17 +03:00
|
|
|
</unitPaths>
|
2026-04-20 16:22:10 +03:00
|
|
|
</build>
|
|
|
|
|
|
|
|
|
|
<test>
|
|
|
|
|
<testSource>TestRunner.pas</testSource>
|
2026-05-12 01:20:41 +03:00
|
|
|
<unitPaths>
|
2026-07-04 21:44:54 +03:00
|
|
|
<path>../runtime/src/main/pascal</path>
|
refactor: split rtl/ into runtime/ + stdlib/, rename bcl.testing to blaise.testing
Separate always-linked runtime code (system.pas, ARC, strings, platform
abstraction) from opt-in standard library units (sysutils, classes, math,
dateutils, generics, etc.). This mirrors the Go runtime/ vs stdlib, Rust
core vs std, and Swift SwiftRuntime vs SwiftCore patterns.
- runtime/ contains code linked into every binary + C shims
- stdlib/ contains units imported explicitly via uses clause
- Single platform abstraction layer (rtl.platform.*) in runtime/,
shared by both runtime/ and stdlib/ units
- bcl.testing renamed to blaise.testing across all 95+ test files
- Updated PasBuild project.xml, fixpoint.sh, README, unit search paths
- All 1931 tests pass, fixpoint OK (stage-3/stage-4)
2026-05-16 02:51:18 +03:00
|
|
|
<path>../stdlib/src/main/pascal</path>
|
2026-05-12 01:20:41 +03:00
|
|
|
</unitPaths>
|
2026-04-20 16:22:10 +03:00
|
|
|
</test>
|
|
|
|
|
|
|
|
|
|
</project>
|