Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Dependency prelude union seeding

Platform spec ADR

Dependency prelude union seeding

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

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.

When AssemblyOptions.include_std_prelude is true and CompilePlan.has_std_dependency:

  1. For each effective module root containing Prelude.bd (aggregate beskid_corelib and workspace shards), parse all pub mod Path.Segment; lines and enqueue the resolved module file for each path.
  2. Union seeds across roots, then dedupe by canonical file path (deterministic sort order).
  3. Must not filter modules by substring markers (ConsoleHost, etc.) or ad-hoc denylists in the loader.
  4. is_compiler_mod_sdk_source_root skip 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.

loader.rs prelude seeding becomes declarative. Corelib must ensure every seeded pub mod resolves to a valid compilation unit.

  • compiler/crates/beskid_analysis/src/projects/assembly/loader.rs
  • compiler/corelib/beskid_corelib/src/Prelude.bd
  • compiler/crates/beskid_tests/src/projects/corelib/