Skip to content

Commit e53d9a2

Browse files
committed
docs(plan.cppm): name the rule the fix follows, and record the enumeration
'A root package's dependency EDGES are read from *m, never from packages[0]'. The four readers in this build were checked rather than sampled; this site was the only one taking the snapshot for a question about edges, and publisher.cppm wants the unmerged edges on purpose.
1 parent 07f73b7 commit e53d9a2

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/build/plan.cppm

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1575,6 +1575,18 @@ make_plan(const mcpp::manifest::Manifest& manifest,
15751575
// dependency's own symbols undefined. Two other readers already take
15761576
// this branch for the same reason (see checkVersionFloors in
15771577
// prepare.cppm).
1578+
//
1579+
// THE RULE, AND THE ENUMERATION BEHIND IT. Every reader of a root
1580+
// package's dependency EDGES must read `*m`, never `packages[0]`; the
1581+
// snapshot is for what the scan and the fingerprint need, which is
1582+
// sources and flags. The four readers in this build were checked, not
1583+
// sampled: prepare.cppm's linkage request already reads `m->` for the
1584+
// root and `packages[i]` only for i >= 1, execute.cppm reads
1585+
// `ctx.manifest` (which IS the merged root), publisher.cppm reads
1586+
// whatever its caller hands it and wants the UNMERGED edges, because a
1587+
// published descriptor states feature deps under the feature. This
1588+
// site was the only one taking the snapshot for a question about
1589+
// edges.
15781590
auto const& edges = i == 0 ? manifest.dependencies
15791591
: packages[i].manifest.dependencies;
15801592
for (auto const& [depName, spec] : edges) {

0 commit comments

Comments
 (0)