Skip to content

Commit d6533bf

Browse files
committed
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)
1 parent bc8732f commit d6533bf

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

docs/roadmap/ROADMAP.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1537,7 +1537,7 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
15371537
- Implement TCAexpand-this for Scala: when resolving a call on `this` inside a trait method, include all concrete classes that mix in the trait, using the `extends`/`implements` graph already extracted by Phase 4.3. Expected 1.5–17x reduction in Scala call graph edges per ECOOP 2014 results.
15381538
- Apply Zipper's two-pass principle: run a fast initial pass, identify call sites with high receiver-type fan-out (the precision-critical positions), then apply type-narrowing only to those sites rather than globally.
15391539

1540-
**Benchmark suites:** JCG (opalj/JCG) — annotated Java CG benchmark covering reflection, invokedynamic, lambdas; DaCapo suite; ISSTA 2024 dynamic baseline corpus (Zenodo 13134617).
1540+
**Benchmark suites:** JCG (opalj/JCG, BSD) — annotated Java CG benchmark covering reflection, invokedynamic, lambdas; DaCapo suite; ISSTA 2024 dynamic baseline corpus (Zenodo 13134617).
15411541

15421542
---
15431543

@@ -1717,6 +1717,8 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
17171717
- Use `Module:Function/Arity` triples as call-target keys; build a module-export index analogous to Dialyzer's PLT during graph construction. Arity disambiguation is the single highest-leverage change for Erlang precision.
17181718
- ELP-style incremental module index: resolve `M:F/A` triples across the whole corpus via a symbol index, replicating ELP's call-hierarchy queries without requiring a full LSP integration.
17191719

1720+
**Benchmark suites:** ELP call hierarchy (WhatsApp/erlang-language-platform, Apache-2.0); Dialyzer OTP scalability benchmarks (Jansen et al.); Set-theoretic Types for Erlang test suite (321 tests, arXiv 2302.12783).
1721+
17201722
---
17211723

17221724
#### Gleam
@@ -1730,6 +1732,8 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
17301732
**Adoption candidates:**
17311733
- Exploit Gleam's type annotations to restrict dispatch candidates: unlike dynamic languages, Gleam function calls are fully type-resolved by the compiler. At minimum, use declared parameter types to filter candidate targets by type compatibility rather than name alone.
17321734

1735+
**Benchmark suites:** No dedicated Gleam call-graph precision/recall benchmark exists as of the time of writing. The Reach project's BEAM bytecode test cases (elixir-vibe/reach, MIT) are the closest available ground truth.
1736+
17331737
---
17341738

17351739
#### C / C++ / CUDA / Objective-C

0 commit comments

Comments
 (0)