Roadmap search
Versions, deliverables, workstreams, tasks, and pages
Build pipeline
src/content/docs/platform-spec/compiler/build-pipeline/index.mdx
import SpecPageHeader from '@beskid/beskid-ui/platform-spec/SpecPageHeader.astro'; import SpecSection from '@beskid/beskid-ui/platform-spec/SpecSection.astro'; import DomainTiles from '@beskid/beskid-ui/platform-spec/DomainTiles.astro'; import DomainOrAreaHub from '@beskid/beskid-ui/platform-spec/DomainOrAreaHub.astro';
<SpecPageHeader ownerName="Piotr Mikstacki" ownerEmail="pmikstacki@cybernomad.it" submitterName="Piotr Mikstacki" submitterEmail="pmikstacki@cybernomad.it" />
<SpecSection title="Scope" id="scope"> This **area** specifies the **reference compiler workspace** (`compiler/` in the Beskid repository): which stages exist, their ordering, observable CLI behaviour, and where JIT and AOT diverge. It does **not** redefine language semantics; those remain in [Language meta](/platform-spec/language-meta/).Execution host details (runtime ABI chapters, long-form IR narrative) continue to live under Execution where noted; this area links to them from backend features. </SpecSection>
<SpecSection title="Pipeline overview" id="overview"> The diagram below mirrors the primary data flow: **project resolution** (optional) supplies `source_path` and `source` text; **lowering** (`beskid_codegen::lower_source`) performs parse, semantic rules (when enabled), HIR, resolution, typing, and Cranelift lowering into a **`CodegenArtifact`**; **JIT** (`beskid_engine::run_entrypoint`) or **AOT** (`beskid_aot::build`) consumes that artifact.flowchart TB
resolve[Project resolution]
assemble[program.assemble]
parse[Parse and syntax diagnostics]
mods[Mod host optional]
semantic[Semantic rules and composition.resolve]
hir[HIR resolve and type-check]
lower[lower_program to CodegenArtifact]
jit[JIT run_entrypoint]
aot[AOT build and link]
resolve --> assemble --> parse --> mods --> semantic --> hir --> lower
lower --> jit
lower --> aot
</SpecSection>
<DomainOrAreaHub pathPrefix="platform-spec/compiler/build-pipeline" summaryTitle="Subtree summary" />
<SpecSection title="Feature index" id="feature-index">
Use the tiles below for normative **feature** contracts (each page declares `status` and owner metadata).
</SpecSection>
<DomainTiles pathPrefix="platform-spec/compiler/build-pipeline" heading="Features" />