[TS Calls] Add reproducible unknown-call census - #389
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The TypeScript engine's unknown-call decisions were not available as a reproducible project-level inventory. This adds
runUnknownCallCensuswithcensusandsummarizecommands: it checks pinned project revisions, loads the complete project scene, records repeated events and explicit complete/partial/timeout/error outcomes, and summarizes unique call sites and containing functions.The development sample no longer depends on lexicographic file order or BFS. A class qualifies when it has at least
minMethodsPerClassordinary methods with at leastminStatementsPerMethodIR statements. Eligible classes and methods receive reproducible SHA-256 ranks from the manifest seed, and methods are taken round-robin across classes. Execution usesCLOSEST_TO_UNCOVERED_RANDOM, records the seed and strategy, and does not stop at entry-method coverage. Synthetic file methods use JacoDB'sDEFAULT_ARK_METHOD_NAME.The manifest uses a 30-second method budget and a 900-second project budget, with up to 40 classes and 40 methods per project. Its three projects are an explicitly limited development pilot. Additional development projects must be pinned before inspecting their results, while held-out projects remain separate from model selection.
The accepted
EMPTY_FRESHrun atc1e07845analyzed 97 methods: 45 completed, 36 partial, 16 timed out, and none failed at the tool boundary. The project distribution was 17/40/40 methods across 11/37/14 source files. It recorded 7,002 repeated events at 36 stable source sites in 26 containing functions. Site counts, not repeated exploration events, drive the documented decision; no new model family is admitted by this pilot.The runner is split into orchestration, seeded method selection, bounded process handling, and event recording. The main runner is 574 lines instead of 1,136.
Validation on the final head:
:usvm-ts:detektMain,:usvm-ts:detektTest, andgit diff --checkpassed.a091dff2d393e131a83e76cc71af51dd38dcd821e2e01ee007cfe8aa56ab6c08.7c59fbfa09af54de1e74ed65f4c762629013688d109305a970b421ee32781d00.4adba5861339782e1f514f01525561a67aa9f01a6abe914b3d371ff77e1c1bbb.Optional models are disabled for the census; mandatory semantics and existing pre-dispatch approximations remain unchanged. The 36 partial analyses, 16 timeouts, and three-project scope remain explicit limits on prevalence claims.
Related to #367.