Transfer completed Go output without copies
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Computational Efficiency Implementation Plan
|
||||
|
||||
**Status:** Stages 1–8 complete; Stages 9–11 pending.
|
||||
**Status:** Stages 1–9 complete; Stages 10–11 pending.
|
||||
|
||||
## Purpose And Baseline
|
||||
|
||||
@@ -498,6 +498,24 @@ forwarded bytes and meaningful error content/cause. Run Go tool, validation,
|
||||
build, preparation, and affected CLI tests. Re-run output benchmarks and update
|
||||
[Go execution mechanics](../internal/gotool.md).
|
||||
|
||||
**Completion:** Complete. `Tool.Run` now returns status only, while `Tool.Output`
|
||||
returns combined stdout/stderr with ownership of the completed capture buffer;
|
||||
the shared private execution path preserves settings and arguments. Status
|
||||
success drops its capture, and both status and output failures retain complete
|
||||
diagnostics and underlying process or output-writer causes. Validation and
|
||||
artifact compilation use `Run`; compiler identification uses `Output`.
|
||||
Preparation retains its network-capable environment and formats diagnostics
|
||||
from the transferred buffer. Go tool fixtures cover forwarded output, large
|
||||
failure output, cancellation, and writer failure. Go tool, validation, build,
|
||||
facade, preparation, and CLI tests passed. The combined-output benchmark now
|
||||
measures 1.0–1.1 µs and 4,176 B/2 allocations for 4 KiB, and 1.51–1.56 ms and
|
||||
8,388,699–8,388,703 B/2 allocations for 8 MiB. The Stage 2 8 MiB result was
|
||||
2.02–2.36 ms and about 16.78 MB/3 allocations, including its capture copy.
|
||||
The returned 8 MiB slice remains caller-owned in memory; failed Output also
|
||||
creates diagnostic text. Disk-backed diagnostics remain a measured follow-up
|
||||
option because avoiding their additional lifecycle and cleanup work has not
|
||||
been justified here.
|
||||
|
||||
## Stage 10: Cache The Runtime Metadata Fallback
|
||||
|
||||
**Owners:** [runtimeinfo/version.go](../../internal/runtimeinfo/version.go) and
|
||||
|
||||
Reference in New Issue
Block a user