Skip to content

Commit b895d98

Browse files
committed
Add full auto-generated reactive pipeline diagram
- Generate reactive-pipeline-full.mmd and .svg (44 nodes) - Link from ARCHITECTURE.md to the full diagram
1 parent fcb834e commit b895d98

File tree

3 files changed

+129
-4
lines changed

3 files changed

+129
-4
lines changed

analysis/reanalyze/ARCHITECTURE.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,10 +235,7 @@ Files → file_data → decls, annotations, refs → live (fixpoint) → dead/li
235235
236236
![Reactive Pipeline](diagrams/reactive-pipeline.svg)
237237

238-
This is a high-level view (~25 nodes). For the full detailed diagram with all 44 nodes, run:
239-
```bash
240-
dune exec rescript-editor-analysis -- reanalyze -dce -config -ci -reactive -mermaid
241-
```
238+
This is a high-level view (~25 nodes). See also the [full detailed diagram](diagrams/reactive-pipeline-full.svg) with all 44 nodes (auto-generated via `-mermaid` flag).
242239

243240
Key stages:
244241

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
graph TD
2+
annotations[annotations L2]
3+
annotations --> solver.incorrect_dead_decls
4+
annotations --> liveness.annotated_roots
5+
exc_refs.exception_decls[exc_refs.exception_decls L3]
6+
exc_refs.exception_decls --> exc_refs.resolved_refs
7+
type_deps.same_path_refs[type_deps.same_path_refs L4]
8+
type_deps.same_path_refs --> type_deps.u1
9+
file_collection[file_collection L0]
10+
file_collection --> file_data_collection
11+
decl_refs.value_decl_refs[decl_refs.value_decl_refs L7]
12+
decl_refs.value_decl_refs --> decl_refs.with_value_refs
13+
type_deps.combined_refs_to[type_deps.combined_refs_to L7]
14+
type_deps.combined_refs_to --> type_deps.all_type_refs_from
15+
type_deps.all_type_refs_from[type_deps.all_type_refs_from L8]
16+
type_deps.all_type_refs_from --> liveness.type_refs_from
17+
type_deps.impl_needing_path2[type_deps.impl_needing_path2 L4]
18+
type_deps.impl_needing_path2 --> type_deps.impl_to_intf_refs_path2
19+
exc_refs.resolved_refs_from[exc_refs.resolved_refs_from L5]
20+
exc_refs.resolved_refs_from --> liveness.value_refs_from
21+
exc_refs.resolved_refs[exc_refs.resolved_refs L4]
22+
exc_refs.resolved_refs --> exc_refs.resolved_refs_from
23+
type_deps.impl_to_intf_refs_path2[type_deps.impl_to_intf_refs_path2 L5]
24+
type_deps.impl_to_intf_refs_path2 --> type_deps.u2
25+
file_deps_map[file_deps_map L2]
26+
decl_refs.with_value_refs[decl_refs.with_value_refs L8]
27+
decl_refs.with_value_refs --> decl_refs.combined
28+
type_deps.u1[type_deps.u1 L5]
29+
type_deps.u1 --> type_deps.u2
30+
cross_file_items[cross_file_items L2]
31+
cross_file_items --> exception_refs_collection
32+
decl_refs.decls_by_file[decl_refs.decls_by_file L3]
33+
decl_refs.decls_by_file --> decl_refs.type_decl_refs
34+
decl_refs.decls_by_file --> decl_refs.value_decl_refs
35+
type_deps.impl_to_intf_refs[type_deps.impl_to_intf_refs L4]
36+
type_deps.impl_to_intf_refs --> type_deps.u1
37+
solver.issues_by_file[solver.issues_by_file L17]
38+
solver.issues_by_file --> solver.modules_with_reported
39+
liveness.annotated_roots[liveness.annotated_roots L3]
40+
liveness.annotated_roots --> liveness.all_roots
41+
solver.incorrect_dead_decls[solver.incorrect_dead_decls L16]
42+
type_deps.intf_to_impl_refs[type_deps.intf_to_impl_refs L4]
43+
type_deps.intf_to_impl_refs --> type_deps.combined_refs_to
44+
type_deps.decl_by_path[type_deps.decl_by_path L3]
45+
type_deps.decl_by_path --> type_deps.intf_to_impl_refs
46+
type_deps.decl_by_path --> type_deps.impl_to_intf_refs_path2
47+
type_deps.decl_by_path --> type_deps.impl_needing_path2
48+
type_deps.decl_by_path --> type_deps.impl_to_intf_refs
49+
type_deps.decl_by_path --> type_deps.same_path_refs
50+
type_deps.u2[type_deps.u2 L6]
51+
type_deps.u2 --> type_deps.combined_refs_to
52+
solver.live_decls[solver.live_decls L15]
53+
solver.live_decls --> solver.incorrect_dead_decls
54+
solver.live_decls --> solver.modules_with_live
55+
type_deps.impl_decls[type_deps.impl_decls L3]
56+
type_deps.impl_decls --> type_deps.impl_needing_path2
57+
type_deps.impl_decls --> type_deps.impl_to_intf_refs
58+
liveness.all_roots[liveness.all_roots L12]
59+
liveness.all_roots --> liveness.live
60+
solver.dead_modules[solver.dead_modules L17]
61+
solver.dead_modules --> solver.dead_module_issues
62+
liveness.external_type_refs[liveness.external_type_refs L10]
63+
liveness.external_type_refs --> liveness.externally_referenced
64+
decl_refs.combined[decl_refs.combined L12]
65+
decl_refs.combined --> liveness.edges
66+
type_refs_from[type_refs_from L2]
67+
type_refs_from --> liveness.type_refs_from
68+
liveness.type_refs_from[liveness.type_refs_from L9]
69+
liveness.type_refs_from --> liveness.external_type_refs
70+
liveness.type_refs_from --> decl_refs.type_decl_refs
71+
solver.dead_decls_by_file[solver.dead_decls_by_file L16]
72+
solver.dead_decls_by_file --> solver.issues_by_file
73+
liveness.external_value_refs[liveness.external_value_refs L7]
74+
liveness.external_value_refs --> liveness.externally_referenced
75+
liveness.value_refs_from[liveness.value_refs_from L6]
76+
liveness.value_refs_from --> liveness.external_value_refs
77+
liveness.value_refs_from --> decl_refs.value_decl_refs
78+
value_refs_from[value_refs_from L2]
79+
value_refs_from --> liveness.value_refs_from
80+
solver.modules_with_dead[solver.modules_with_dead L16]
81+
solver.modules_with_dead --> solver.dead_modules
82+
solver.dead_decls[solver.dead_decls L15]
83+
solver.dead_decls --> solver.dead_decls_by_file
84+
solver.dead_decls --> solver.modules_with_dead
85+
exception_refs_collection[exception_refs_collection L3]
86+
exception_refs_collection --> exc_refs.resolved_refs
87+
type_deps.intf_decls[type_deps.intf_decls L3]
88+
type_deps.intf_decls --> type_deps.intf_to_impl_refs
89+
file_data_collection[file_data_collection L1]
90+
file_data_collection --> files
91+
file_data_collection --> file_deps_map
92+
file_data_collection --> cross_file_items
93+
file_data_collection --> type_refs_from
94+
file_data_collection --> value_refs_from
95+
file_data_collection --> annotations
96+
file_data_collection --> decls
97+
solver.dead_module_issues[solver.dead_module_issues L19]
98+
decl_refs.with_type_refs[decl_refs.with_type_refs L11]
99+
decl_refs.with_type_refs --> decl_refs.combined
100+
solver.modules_with_live[solver.modules_with_live L16]
101+
solver.modules_with_live --> solver.dead_modules
102+
decl_refs.type_decl_refs[decl_refs.type_decl_refs L10]
103+
decl_refs.type_decl_refs --> decl_refs.with_type_refs
104+
files[files L2]
105+
solver.modules_with_reported[solver.modules_with_reported L18]
106+
solver.modules_with_reported --> solver.dead_module_issues
107+
liveness.externally_referenced[liveness.externally_referenced L11]
108+
liveness.externally_referenced --> liveness.all_roots
109+
liveness.edges[liveness.edges L13]
110+
liveness.edges --> liveness.live
111+
liveness.live[liveness.live L14]
112+
liveness.live --> solver.live_decls
113+
liveness.live --> solver.dead_decls
114+
decls[decls L2]
115+
decls --> solver.live_decls
116+
decls --> solver.dead_decls
117+
decls --> liveness.annotated_roots
118+
decls --> liveness.external_type_refs
119+
decls --> liveness.external_value_refs
120+
decls --> decl_refs.with_type_refs
121+
decls --> decl_refs.with_value_refs
122+
decls --> decl_refs.decls_by_file
123+
decls --> exc_refs.exception_decls
124+
decls --> type_deps.intf_decls
125+
decls --> type_deps.impl_decls
126+
decls --> type_deps.decl_by_path
127+

analysis/reanalyze/diagrams/reactive-pipeline-full.svg

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)