Skip to content

Commit bd85a0c

Browse files
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

File tree

0 commit comments

Comments
 (0)