You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- 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
Copy file name to clipboardExpand all lines: docs/roadmap/ROADMAP.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1658,7 +1658,7 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
1658
1658
- Two-pass CHA: first collect all `class C < B` and `module M; include X` declarations to build a hierarchy; then for each `obj.method` call site, resolve to all classes in the receiver's concrete type set using the hierarchy rather than global name matching. Replicates Sorbet's two-pass strategy, achievable from tree-sitter output.
1659
1659
- TypeProf-style reachability: start from declared entry points and speculatively enumerate all concrete receiver types reachable at each call site via a worklist. This converts name-based dispatch into a reachability-constrained type set.
1660
1660
1661
-
**Benchmark suites:** PyCG micro-benchmark methodology (directly portable to Ruby); CLBG (Computer Language Benchmarks Game) Ruby programs used in JVM-hosted language study (Ali et al., IEEE TSE).
1661
+
**Benchmark suites:** PyCG micro-benchmark methodology (directly portable to Ruby); CLBG (Computer Language Benchmarks Game) Ruby programs (methodology reference — the Ali et al. IEEE TSE study applied these to JVM-hosted languages, not MRI Ruby; no dedicated Ruby CG precision/recall evaluation exists as of the time of writing).
1662
1662
1663
1663
---
1664
1664
@@ -1678,7 +1678,7 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
1678
1678
- Adopt Psalm-style flow-sensitive receiver narrowing: at `$v->method()`, use the narrowed type of `$v` from preceding `instanceof` guards or assignment context rather than the full class hierarchy.
1679
1679
- Phan's two-phase design: build a global class/method index from all parsed files before resolving any call site. Replicates what codegraph's build pipeline already does for JS/TS but is not yet applied to PHP.
1680
1680
1681
-
**Benchmark suites:** TChecker evaluation corpus (CCS 2022); Artemis corpus (250 PHP web apps, OOPSLA 2025); SWC Registry PHP test cases.
1681
+
**Benchmark suites:** TChecker evaluation corpus (CCS 2022); Artemis corpus (250 PHP web apps, OOPSLA 2025).
1682
1682
1683
1683
---
1684
1684
@@ -1781,7 +1781,7 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
1781
1781
1782
1782
| Tool | Approach | Precision / Recall | URL |
1783
1783
|------|----------|--------------------|-----|
1784
-
| Dart VM Type Flow Analysis (TFA) — dart-lang/sdk pkg/vm | Two-phase: RTA seeds allocated classes; then iterative type-flow propagation to fixed point; sound devirtualization under closed-world assumption |AOT compilation speedup −49.5% in a large Flutter app; devirtualizes only when a unique target is provable (no published academic P/R paper) |https://github.com/dart-lang/sdk/tree/master/pkg/vm/lib/transformations/type_flow|
1784
+
| Dart VM Type Flow Analysis (TFA) — dart-lang/sdk pkg/vm | Two-phase: RTA seeds allocated classes; then iterative type-flow propagation to fixed point; sound devirtualization under closed-world assumption | 49.5% reduction in AOT compilation time in a large Flutter app; devirtualizes only when a unique target is provable (no published academic P/R paper) |https://github.com/dart-lang/sdk/tree/master/pkg/vm/lib/transformations/type_flow|
1785
1785
| Heinze, Møller, Strocco (Aarhus, DLS 2016) | Flow analysis using optional Dart type annotations as filters | 99.3% of all property lookup operations type-safe across benchmark Dart programs (DLS 2016) |https://cs.au.dk/~amoeller/papers/safedart/|
1786
1786
1787
1787
**Codegraph gap:** No RTA pre-pass; Dart 2+ sound type annotations are unused for dispatch filtering; all Dart virtual calls treated as fully dynamic; closure argument types untracked.
0 commit comments