Commit bd85a0c
authored
docs(roadmap): Phase 8.8 — language-specific analysis reference map (34 languages) (#1338)
* docs(roadmap): add Phase 8.8 — language-specific analysis reference map (34 languages)
Adds section 8.8 to the Phase 8 roadmap covering every language codegraph
supports. For each of the 34 languages (grouped into 13 families including
HCL/Terraform), documents:
- State-of-the-art call-graph / points-to analysis tools (Jelly-equivalents)
- Published precision/recall figures with paper/benchmark citations
- Codegraph's current gap vs. those tools
- Concrete adoption candidates (techniques to implement)
- Benchmark suites and fixture sources with license annotations
Fixture acquisition guide added to the 8.8 intro: MIT/Apache/BSD/CC-BY
fixtures may be committed directly; GPL fixtures are reference-only; academic
suites with no license should be derived by running the tool, not copied.
Cross-references 8.6 (CI gate) to extend benchmarking beyond Jelly/ACG to
all 34 languages using the reference map.
* docs(roadmap): address review comments on §8.8 language reference map (#1338)
* docs(roadmap): add TSX and Objective-C body notes in §8.8 (#1338)
* docs(roadmap): add missing benchmark suites and license annotation in §8.8 (#1338)
- Add BSD license annotation to JCG entry in JVM benchmark suites
- Add benchmark suites entry to Erlang subsection (ELP call hierarchy,
Dialyzer OTP scalability benchmarks, Set-theoretic Types test suite)
- Add benchmark suites entry to Gleam subsection (no dedicated benchmark;
Reach project BEAM test cases as closest ground truth)
* fix(edge_builder): restrict same-file this-dispatch fallback to caller's own class (#1343)
* fix(edge_builder): restrict same-file this-dispatch fallback to caller's own class
When a file contains multiple unrelated classes all defining a method with the
same name, the broader same-file suffix scan emitted false-positive call edges
(e.g. this.area() in Shape.describe matched Calculator.area and Formatter.area).
The fix: when the scan finds more than one method with the matching suffix,
restrict the result to methods whose qualified name starts with the caller's
own class prefix. A single unambiguous match is returned as-is (handles the
CHA case of one subclass override). If multiple classes match and none is the
caller's class, return nothing rather than emitting false edges.
WASM tests are active; native tests marked todo pending next binary release.
Closes #1324
docs check acknowledged
* fix(edge_builder): apply caller-class scope to single-match suffix scan too (#1343)
The 1-match arm of the same-file suffix scan was returning any sole
method regardless of whether it belonged to the caller's class. A file
with Caller (no area()) and Sibling (area()) would produce a false
Caller.run → Sibling.area edge — the same bug fixed for 2+ matches.
Replace the three-arm match with a unified caller-prefix filter applied
to all non-empty results. Add fixture single-sibling.ts and a
corresponding WASM assertion to cover the single-match false-positive
path. Initialize callEdges to [] for cleaner beforeAll failure mode.
* docs(roadmap): fix factual errors in §8.8 (#1338)
- Remove SWC Registry from PHP benchmark suites (it is the Smart Contract
Weakness Classification registry for Solidity/EVM, not a PHP test corpus)
- Fix Dart TFA speedup notation: "−49.5%" → "49.5% reduction in AOT
compilation time" (negative speedup is mathematically undefined)
- Clarify Ruby CLBG citation: Ali et al. TSE study covers JVM-hosted languages
(Groovy/Clojure/Scala/Kotlin), not MRI Ruby; no dedicated Ruby CG P/R
evaluation exists as of the time of writing
* docs(roadmap): add dedicated subsections for Groovy, Clojure, Objective-C (#1338)
Addresses review feedback: all 34 languages now have individual subsections
in §8.8. Previously Groovy and Clojure were covered only by a shared note
inside the JVM section; Objective-C was covered only by a note inside the
C/C++ section.
Each new subsection follows the standard template: reference tools, codegraph
gap, adoption candidates, and benchmark suites.1 parent 95bc17b commit bd85a0c
1 file changed
Lines changed: 567 additions & 2 deletions
0 commit comments