Dependency prelude union seeding
Platform spec ADR
Dependency prelude union seeding
Spec standingStandard
- Program assembly - Contracts and edge cases Materialized-first roots, discovery caps, and parity across CLI and LSP.
- Program assembly - Design model EffectiveCompilationRoots, ProgramAssembly, ModuleIndex, and hybrid discovery modes.
- Program assembly - Flow and algorithm Ordered assembly after workspace materialize and before multi-unit parse and HIR resolution.
- Program assembly - Verification and traceability Test and source anchors for ProgramAssembly and effective roots.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Context
Section titled “Context”Assembly seeding used host ConsoleHost text markers and a Console module denylist to avoid pulling invalid shard units. That heuristic diverged from manifest-declared preludes and blocked legitimate pub mod re-exports.
Decision
Section titled “Decision”When AssemblyOptions.include_std_prelude is true and CompilePlan.has_std_dependency:
- For each effective module root containing
Prelude.bd(aggregatebeskid_coreliband workspace shards), parse allpub mod Path.Segment;lines and enqueue the resolved module file for each path. - Union seeds across roots, then dedupe by canonical file path (deterministic sort order).
- Must not filter modules by substring markers (
ConsoleHost, etc.) or ad-hoc denylists in the loader. is_compiler_mod_sdk_source_rootskip remains only for compiler Mod SDK trees documented in implementation-map anchors.
Invalid standalone units must be fixed in corelib packaging (see D-CORE-COMP-0009), not suppressed in assembly.
Consequences
Section titled “Consequences”loader.rs prelude seeding becomes declarative. Corelib must ensure every seeded pub mod resolves to a valid compilation unit.
Verification anchors
Section titled “Verification anchors”compiler/crates/beskid_analysis/src/projects/assembly/loader.rscompiler/corelib/beskid_corelib/src/Prelude.bdcompiler/crates/beskid_tests/src/projects/corelib/