chore(nil-kill): extract gem tool and remove legacy scripts#59
Conversation
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #59 +/- ##
==========================================
- Coverage 92.71% 92.70% -0.01%
==========================================
Files 208 208
Lines 52716 52716
Branches 12381 12381
==========================================
- Hits 48876 48872 -4
- Misses 3840 3844 +4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
| Branch | nil-kill-prod |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | leak-build-ms | Measure (units) x 1e3 | leak-count | Measure (units) | leak-run-ms | Measure (units) |
|---|---|---|---|---|---|---|
| benchmarks/concurrent/02_concurrent_search/bench | 📈 view plot | 1.41 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 6.49 units |
| benchmarks/concurrent/07_stream_merge/bench | 📈 view plot | 1.29 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 36.58 units |
| benchmarks/concurrent/12_false_sharing/bench | 📈 view plot | 1.33 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,051.57 units |
| benchmarks/concurrent/19_atomic_ptr/bench | 📈 view plot | 1.48 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 84.18 units |
| benchmarks/inter-clear/05_concurrent_mvcc_pure_read/bench | 📈 view plot | 1.42 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 359.94 units |
| benchmarks/sequential/04_hashmap/bench | 📈 view plot | 1.20 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 2,065.38 units |
| benchmarks/sequential/09_frame_vs_heap/bench | 📈 view plot | 1.28 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,782.41 units |
| benchmarks/sequential/14_iterator/bench | 📈 view plot | 1.20 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 429.10 units |
|
| Branch | nil-kill-prod |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | leak-build-ms | Measure (units) x 1e3 | leak-count | Measure (units) | leak-run-ms | Measure (units) |
|---|---|---|---|---|---|---|
| benchmarks/concurrent/01_socket_throughput/bench | 📈 view plot | 5.31 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,385.15 units |
| benchmarks/concurrent/06_dynamic_spawn/bench | 📈 view plot | 5.37 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 3,707.49 units |
| benchmarks/concurrent/11_parallel_aggregation/bench | 📈 view plot | 5.21 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 7,168.09 units |
| benchmarks/concurrent/18_atomic_counter/bench | 📈 view plot | 5.26 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 45.69 units |
| benchmarks/inter-clear/04_concurrent_mvcc_fat_struct/bench | 📈 view plot | 5.32 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 335.30 units |
| benchmarks/sequential/03_alloc_throughput/bench | 📈 view plot | 5.11 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 11,524.88 units |
| benchmarks/sequential/13_soa_layout/bench | 📈 view plot | 5.24 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 756.26 units |
|
| Branch | nil-kill-prod |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | leak-build-ms | Measure (units) x 1e3 | leak-count | Measure (units) | leak-run-ms | Measure (units) |
|---|---|---|---|---|---|---|
| benchmarks/concurrent/05_backpressure/bench | 📈 view plot | 5.91 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,799.14 units |
| benchmarks/concurrent/10_shard_vs_locked/bench | 📈 view plot | 5.77 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 60,005.11 units |
| benchmarks/concurrent/16_observables/bench | 📈 view plot | 5.83 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 103.12 units |
| benchmarks/inter-clear/03_concurrent_mvcc_vs_rwlock/bench | 📈 view plot | 6.65 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 293.87 units |
| benchmarks/sequential/07_pointer_chase/bench | 📈 view plot | 5.74 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 583.77 units |
| benchmarks/sequential/12_weak_ref_graph/bench | 📈 view plot | 5.88 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 271.18 units |
| benchmarks/server/03_pathological/server | 📈 view plot | 5.91 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,003.19 units |
|
| Branch | nil-kill-prod |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | leak-build-ms | Measure (units) x 1e3 | leak-count | Measure (units) | leak-run-ms | Measure (units) |
|---|---|---|---|---|---|---|
| benchmarks/concurrent/03_atomic_contention/bench | 📈 view plot | 6.26 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 118.34 units |
| benchmarks/concurrent/08_pubsub/bench | 📈 view plot | 5.52 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 2,385.91 units |
| benchmarks/concurrent/13_rwlock_starvation/bench | 📈 view plot | 5.36 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,222.06 units |
| benchmarks/inter-clear/06_concurrent_mvcc_writer_pressure/bench | 📈 view plot | 5.46 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 2,082.44 units |
| benchmarks/sequential/05_string_builder/bench | 📈 view plot | 5.29 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 28,044.65 units |
| benchmarks/sequential/10_pool_vs_multiowned/bench | 📈 view plot | 5.24 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 751.83 units |
| benchmarks/server/01_tcp_kvstore/server | 📈 view plot | 5.46 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,002.62 units |
|
| Branch | nil-kill-prod |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | leak-build-ms | Measure (units) x 1e3 | leak-count | Measure (units) | leak-run-ms | Measure (units) |
|---|---|---|---|---|---|---|
| benchmarks/concurrent/04_fanout_fanin/bench | 📈 view plot | 5.29 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 3,547.97 units |
| benchmarks/concurrent/09_kvstore/bench | 📈 view plot | 5.53 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 60,004.02 units |
| benchmarks/concurrent/14_nested_lock/bench | 📈 view plot | 5.52 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 435.29 units |
| benchmarks/inter-clear/02_concurrent_fsm_vs_stackful/bench_fsm | 📈 view plot | 5.31 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 159.50 units |
| benchmarks/inter-clear/02_concurrent_fsm_vs_stackful/bench_stackful | 📈 view plot | 5.27 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 193.87 units |
| benchmarks/sequential/11_pipeline_overhead/bench | 📈 view plot | 5.31 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 13,920.64 units |
| benchmarks/server/02_json_api/server | 📈 view plot | 5.44 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,002.82 units |
|
| Branch | nil-kill-prod |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | leak-build-ms | Measure (units) x 1e3 | leak-count | Measure (units) | leak-run-ms | Measure (units) |
|---|---|---|---|---|---|---|
| benchmarks/concurrent/01_socket_throughput/bench | 📈 view plot | 5.48 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 1,437.60 units |
| benchmarks/concurrent/06_dynamic_spawn/bench | 📈 view plot | 5.27 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 3,693.55 units |
| benchmarks/concurrent/11_parallel_aggregation/bench | 📈 view plot | 5.20 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 7,333.18 units |
| benchmarks/concurrent/18_atomic_counter/bench | 📈 view plot | 5.23 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 45.70 units |
| benchmarks/inter-clear/04_concurrent_mvcc_fat_struct/bench | 📈 view plot | 5.34 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 366.82 units |
| benchmarks/sequential/03_alloc_throughput/bench | 📈 view plot | 5.20 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 11,588.82 units |
| benchmarks/sequential/13_soa_layout/bench | 📈 view plot | 5.23 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 756.34 units |
User's model validated (target nil|Type|FunctionSignature; String/ Symbol slop; sigs -> T.any(Type,FunctionSignature)). Carrier disambiguated: Literal#type is a separate token-kind field, no blast radius. Real obstacle is semantic, not mechanical: the 11 is_a?(Type) sites double as a resolved-vs-unresolved gate, so normalizing the seam changes which decls get processed. Documented as the spec for a focused reviewed PR; not auto-run (gates-green != provably-correct for semantic change). #48-#51,#53,#57,#59 same. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ee; src sig autofixes
Adds the `nil-kill` gem (gems/nil-kill): a runtime+static type-inference
tool that drives `T.untyped`/`T.nilable` out of the codebase, plus the
verified-loop sig autofixes it produced for src/.
Highlights
- collect_ran_untraced / untraced_covered are zero BY CONSTRUCTION:
* B1 in-place instrumentation -- the real src/ is wrapped in place
for a collect (one always-wrapped copy at the real path), so every
load path / subprocess / re-exec records; crash-safe snapshot +
sentinel restore + self-heal. The parallel instrumented tree and
the require/require_relative redirect are deleted.
* A1 single source of truth -- the foreign coverage/.resultset.json
baseline is removed; never_run_reason is a closed tree over the
collect's own Coverage. collect_ran_untraced and never_run are not
report columns: they are hard failures, not silently-zero columns.
- Permanent contract: spec/zero_evidence_gap_guarantee_spec (hermetic
corpus, every load path incl. spawned subprocess) +
evidence_gap_invariant_spec (property + negative control) +
report_evidence_gap_unit_spec + inplace_lifecycle_spec; tracer
capability matrix retargeted to in-place; shared spec/support harness.
- add_sig apply-offset corruption fixed: action["line"] is a hint;
the sig is placed at the named def (Prism-relocated if the buffer
shifted) or refused -- never inserted as dead code mid-body.
- classify_return_untyped_cause no longer pre-empts forwarded-return
analysis (resolvable forwards -> PropagationGap; transitive wall ->
NoEvidence/discarded_return; observed-only-nil stays Refused/Pending).
- src/: pure signature refinements only (no logic changes); the
corrupt autofix batch was reverted. srb tc clean; ruby-unit,
nil-kill specs, and the examples/benchmarks corpus all green.
- CI: nil-kill-unit job runs the specs without coverage/codecov.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
User's model validated (target nil|Type|FunctionSignature; String/ Symbol slop; sigs -> T.any(Type,FunctionSignature)). Carrier disambiguated: Literal#type is a separate token-kind field, no blast radius. Real obstacle is semantic, not mechanical: the 11 is_a?(Type) sites double as a resolved-vs-unresolved gate, so normalizing the seam changes which decls get processed. Documented as the spec for a focused reviewed PR; not auto-run (gates-green != provably-correct for semantic change). #48-#51,#53,#57,#59 same. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
No description provided.