Repository navigation
Commit 55d2d51
committed
build: the fast path sees a path dependency's whole tree and resumes after a confirmed edit; its reasons are statements (#734 E5)
The dependency sweep read only src/, so an edit to a host module elsewhere in
a path dependency (mcpp-plugins keeps its members in deps/, rules/, dist/ and
tools/) was replayed as no work: such a unit is compiled into the consumer's
build program, which no edge of build.ninja names. The sweep now walks the
dependency's tree, skipping hidden directories, target and nested packages.
A full build that confirms the graph left an unchanged build.ninja unwritten,
and the fast path compares every source with its time, so after any edit every
later build was planned in full until the graph's text changed. The backend
now moves the file's time when it confirms the graph. 2026.9.28.2 shows both
defects on Linux; e2e 831 and 832 fail with it and pass with this change.
Under -v each refusal is now a statement of its condition rather than the
condition's code.1 parent 19bee65 commit 55d2d51
5 files changed
Lines changed: 220 additions & 47 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
28 | 36 | | |
29 | 37 | | |
30 | 38 | | |
| |||
43 | 51 | | |
44 | 52 | | |
45 | 53 | | |
46 | | - | |
| 54 | + | |
47 | 55 | | |
48 | 56 | | |
49 | 57 | | |
| |||
0 commit comments