Skip to content
Logo
Prismio
Developers
DraftPrismio 0.1.0

Engineering roadmap

Evidence-backed Prismio compiler, AIF, runtime, tooling, and standard-surface priorities without invented release dates.

Last verified

Draft. Compiler-derived documentation that is not yet a frozen compatibility contract.

This roadmap distinguishes shipped behavior, measured problems, and proposed engineering work. It does not assign release dates.

Established baseline

  • Self-hosted frontend, semantic analysis, AIF, and LLVM 22 backend.
  • Native artifacts, direct C ABI integration, debug information, JSON diagnostics, and UMS projects.
  • Generics, traits, associated items, trait objects, impl Trait, closures, payload enums, slices, DataView, native tasks, and blocking typed channels.
  • AIF storage plans, explanations, manifests, runtime verification, and an independent oracle.
  • A 73-workload cross-language benchmark catalog with 57 implemented workloads.

Foundational memory work

The active memory tracker ranks first-class allocation and lifetime telemetry, thread-safe region and cycle state, container-aware layout pricing, a memory-aware middle IR, and interprocedural ownership and region summaries as foundational directions.

These are proposals with acceptance criteria, not promised speedups. Most require new measurements before a performance claim is possible.

Implementation would span src/aif/model.psm and walk.psm for facts, the solver for propagation, report.psm for explanations and machine evidence, src/ir for mechanism selection, and runtime/lang_runtime.c for any new counter or allocator path. A proposal does not become active because a report can name it; codegen, the runtime, differential oracle, and verifier must consume the same meaning.

Measured optimization directions

Current investigations identify container-context layout selection, contiguous typed loop views, general destination passing, scalar replacement, return-slot construction, preserved string length across boundaries, runtime specialization, and explicit region capabilities as possible follow-on work. Each remains gated by correctness and discriminating A/B evidence.

For layout work, aif_layout_select() and candidate ranking must expose the exact emitted choice, and --force-layout must build that candidate for A/B measurement. For destination passing or return slots, ownership/AIF must prove that construction targets do not alias live values before generateExpression() changes storage. Runtime specialization must keep PRISMIO_CURATED_OPS and its symbol closure synchronized with every operation codegen can emit.

Each accepted optimization needs four artifacts: a source-level correctness regression, an AIF or IR assertion proving the mechanism, raw interleaved benchmark samples above A/A noise, and self-hosting fixed-point agreement. Rejected candidates remain in aif/evidence with their measured failure mode.

Unsupported surface

The benchmark catalog records missing deques and ordered containers, priority queues, map deletion, regex, JSON, generic serialization, user-facing atomics and locks, work stealing, async I/O, sockets, memory-mapped files, explicit SIMD types, and custom collection allocators.

Missing does not mean scheduled. A feature becomes a roadmap commitment only when its semantics, owner, implementation plan, tests, and acceptance evidence are defined.

Toolchain and platform work

The project also tracks stronger packaged-toolchain separation, target runtime coverage, manifest evolution, editor protocol stability, and release reproducibility. These changes are owned by runtime/build_driver.c, tools/package.py, ums, IDE_PROTOCOL.md, and tools/release_gate.py respectively. LLVM accepting a triple is only backend capability; Prismio target support additionally requires a runtime, SDK/link strategy, tests, and a packaged smoke test.

How roadmap status changes

A proposed item should name its current reproducer or measurement, exact source owner, unsafe or compatibility boundary, smallest discriminating test, and removal/rollback plan. Move it to the implemented baseline only after the ordinary compiler path uses it and the release gate proves it. Keep dates out until a release owner and verified artifact exist.