Skip to content

Commit 744edf7

Browse files
committed
docs(roadmap): fix factual errors in §8.8 — SWC Registry misattribution, Dart sign, Ruby citation (#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
1 parent d6533bf commit 744edf7

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

docs/roadmap/ROADMAP.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1658,7 +1658,7 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
16581658
- 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.
16591659
- 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.
16601660

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).
16621662

16631663
---
16641664

@@ -1678,7 +1678,7 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
16781678
- 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.
16791679
- 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.
16801680

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).
16821682

16831683
---
16841684

@@ -1781,7 +1781,7 @@ Precision/recall figures are cited to their source paper or benchmark. Entries m
17811781

17821782
| Tool | Approach | Precision / Recall | URL |
17831783
|------|----------|--------------------|-----|
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 |
17851785
| 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/ |
17861786

17871787
**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

Comments
 (0)