Repository navigation
Go-Lua line/count debug hooks and opt-in line coverage, based on v1.6.12.
- Lua code can install and inspect line/count callbacks through debug.sethook/gethook. Dispatch tracking handles source changes and same-line backedges; pooled states release the previous callback and accounting. Callback replacement remains non-reentrant.
- Hosts can enable collection by setting WIPPY_COVERAGE before startup, then call CoverageSummary or WriteCoverageLCOV. States, coroutines, callbacks and restored bytecode use the existing dispatcher. Reports follow VM debug source positions and retain unexecuted function lines with zero credit.
- User debug-hook changes preserve collection. Reporting callbacks and filesystem writes run outside the collector lock using a coherent snapshot, so reentrant reads cannot deadlock recording.
This source is the fifteen-file reviewed feature/test/CI delta on the published v1.6.12 base. The unrelated compiler/type-checker changes on main are excluded. Ordinary calls retain their behavior; actor preemption and handler argument validation remain separate work. Runtime dependency adoption is separate.
The original hook/collector implementations were contributed by @xepozz in #34 and #35; this release includes the isolation, restored-bytecode and reporting repairs found during review.
Validation:
- All twelve hosted CI jobs passed on the exact PR and stable release revisions: Linux/Windows tests, all seven race shards, fuzzing, lint and benchmarks. Both platform test jobs also passed the explicitly enabled coverage regressions.
- Focused hook, cache, reporting and concurrency controls passed three race-detector repetitions.
- The fifteen released feature/test/CI files match the reviewed source byte for byte; all other files match v1.6.12.
Source: 5c2f491.
CI: https://github.com/wippyai/go-lua/actions/runs/41239756455.