Roadmap search

Versions, deliverables, workstreams, tasks, and pages

Beskid

Jump to a Beskid service

Build pipeline

area

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" />