@@ -290,6 +290,21 @@ What this buys, in order of value:
290290- The same path serves CUDA cubins and fatbins, textures, fonts, model weights
291291 and ICD JSON. The tool stops being shader-specific.
292292
293+ > **Superseded, and the difference is load-bearing for 14.1.** The host-tool
294+ > binary was not built. What shipped is `mcpp::plugins::surface` -- a generator
295+ > in the collection's lib root that every rule calls FROM `build.mcpp`, writing
296+ > the interface, the implementation and the `.S` at plan time. The four values
297+ > listed above were all obtained anyway: both shader flavours produce identical
298+ > output, storage and surface are orthogonal options, `mcpp.rules.slang` joined
299+ > at no cost, and nothing in the generator is shader-specific.
300+ >
301+ > What the library form does NOT give is the property this section was reaching
302+ > for: a tool the GRAPH invokes has its inputs in the graph. A generator that
303+ > runs at plan time writes a `.S` naming a payload that does not exist yet, and
304+ > the edge between them has to be stated separately -- which is exactly the gap
305+ > 14.1 reports and `mcpp::recompile_if_changed` closes. The library form remains
306+ > the right shape; the missing edge was the cost of it, and it was payable.
307+
293308### 4.2 One tool with options, not three
294309
295310`bin2c`, `bin2cppm` and `bin2obj` as three names would force a consumer to
0 commit comments