Share TypeScript analysis and UTF-16 infrastructure between PBT and Calls - #412
Open
CaelmBleidd wants to merge 1 commit into
Open
CaelmBleidd wants to merge 1 commit into
CaelmBleidd wants to merge 1 commit into
Conversation
This was referenced Oct 1, 2026
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.
PBT and Calls had diverged at the TypeScript machine boundary: each configured inputs differently, PBT added observation/completion hooks, and its string work duplicated the existing Calls engine. This PR makes those facilities reusable on top of the existing builtin models and exact-coverage stack.
analyzeandanalyzeWithOutcomeentry points.StringStorage. Calls now uses the allocator; the PBT adapter can use the same API. Preserve Calls input snapshots so later heap changes cannot rewrite the original witness.JsonElementroundtrips. Send dataflow logging to stderr.Existing string, numeric, Array, Date and Error models remain authoritative. PBT-specific entry guards, property search, observations, feedback scheduling and unfinished campaign/loader changes are outside this PR.
Review order: #391 → #410 → #394 → #409 → this PR. The frontend companion UnitTestBot/jacodb#367 is merged; this PR pins its merge revision
86b07fc9fb. Its #366 catch-binding fix remains a separate open PR. No benchmark or manuscript result is changed.Validation (local JDK 21):
usvm-ts,usvm-ts-pbt,usvm-ts-calls, andusvm-ts-fast-check. The one-lineExprUtilchange removes inherited implicit-name shadowing reported by that gate.86b07fc9fbdependency, without local substitution. All 28 completion/hooks/string, UTF-16 JSON, and source-replay tests also passed against that published dependency. The earlier focused tests used a composite JacoDB tree identical to the merged revision.git diff --checkpassed.Remote CI for
0f66e4f9was dispatched manually because the PR base is notmain: https://github.com/UnitTestBot/usvm/actions/runs/36856475983. All six CI jobs passed. The unchanged JVMdynamic timeouttest failed on the first attempt and passed when that job alone was rerun on the same commit. These checks cover infrastructure behavior; they do not establish new campaign/benchmark outcomes or completion of the PBT feature migration.