From a4994371c0b0fbea9d2802acc22d9cc3977a0de0 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Sun, 4 Oct 2026 13:30:41 -0700 Subject: Slides for 2026 REBASE --- docs/2026_REBASE/assets/aliases-final.json | 406 +++ docs/2026_REBASE/assets/aliases-final.svg | 140 ++ docs/2026_REBASE/assets/arithmetic-final.json | 162 ++ docs/2026_REBASE/assets/arithmetic-final.svg | 94 + docs/2026_REBASE/assets/backend-encoded.txt | 14 + docs/2026_REBASE/assets/backend-registers.txt | 22 + docs/2026_REBASE/assets/backend-selected.txt | 30 + docs/2026_REBASE/assets/cliff-click-2020.jpeg | Bin 0 -> 408728 bytes .../assets/coffee-compiler-club-still.gif | Bin 0 -> 39680 bytes docs/2026_REBASE/assets/coffee-compiler-club.gif | Bin 0 -> 129460 bytes docs/2026_REBASE/assets/control-final.json | 588 +++++ docs/2026_REBASE/assets/control-final.svg | 171 ++ docs/2026_REBASE/assets/inline-final.json | 251 ++ docs/2026_REBASE/assets/inline-final.svg | 107 + docs/2026_REBASE/assets/memory-final.json | 1404 +++++++++++ docs/2026_REBASE/assets/memory-final.svg | 320 +++ docs/2026_REBASE/assets/rich-lattice.gv | 404 +++ docs/2026_REBASE/assets/rich-lattice.svg | 2579 ++++++++++++++++++++ 18 files changed, 6692 insertions(+) create mode 100644 docs/2026_REBASE/assets/aliases-final.json create mode 100644 docs/2026_REBASE/assets/aliases-final.svg create mode 100644 docs/2026_REBASE/assets/arithmetic-final.json create mode 100644 docs/2026_REBASE/assets/arithmetic-final.svg create mode 100644 docs/2026_REBASE/assets/backend-encoded.txt create mode 100644 docs/2026_REBASE/assets/backend-registers.txt create mode 100644 docs/2026_REBASE/assets/backend-selected.txt create mode 100644 docs/2026_REBASE/assets/cliff-click-2020.jpeg create mode 100644 docs/2026_REBASE/assets/coffee-compiler-club-still.gif create mode 100644 docs/2026_REBASE/assets/coffee-compiler-club.gif create mode 100644 docs/2026_REBASE/assets/control-final.json create mode 100644 docs/2026_REBASE/assets/control-final.svg create mode 100644 docs/2026_REBASE/assets/inline-final.json create mode 100644 docs/2026_REBASE/assets/inline-final.svg create mode 100644 docs/2026_REBASE/assets/memory-final.json create mode 100644 docs/2026_REBASE/assets/memory-final.svg create mode 100644 docs/2026_REBASE/assets/rich-lattice.gv create mode 100644 docs/2026_REBASE/assets/rich-lattice.svg (limited to 'docs/2026_REBASE/assets') diff --git a/docs/2026_REBASE/assets/aliases-final.json b/docs/2026_REBASE/assets/aliases-final.json new file mode 100644 index 00000000..0a13477b --- /dev/null +++ b/docs/2026_REBASE/assets/aliases-final.json @@ -0,0 +1,406 @@ +{ + "ver": 1, + "comp": "rebase-aliases", + "step": 50, + "roots": [ + 2, + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 29, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 5, + "label": "Xctrl", + "type": "~Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 6, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 7, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 8, + "label": "arg", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 2 + } + }, + { + "id": 12, + "label": "Con", + "type": "10", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 13, + "label": "Con", + "type": "16", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 15, + "label": "new_Pair", + "type": "[ *Pair {int !x; int !y; }, MemBot]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 14, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 13, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 8, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 12, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 16, + "label": "Pair", + "type": "*Pair {int !x; int !y; }", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 15, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 15, + "idx": 0 + } + }, + { + "id": 17, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 15, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 15, + "idx": 1 + } + }, + { + "id": 21, + "label": "Con", + "type": "8", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 22, + "label": "Con", + "type": "99", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 23, + "label": "st_y", + "type": "MEM#3:[10-99]", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 17, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 16, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 21, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 22, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 24, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 17, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 23, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 29, + "label": "Return", + "type": "[ Ctrl, MemBot, 0]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 24, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 4, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [] +} diff --git a/docs/2026_REBASE/assets/aliases-final.svg b/docs/2026_REBASE/assets/aliases-final.svg new file mode 100644 index 00000000..f8b2af9e --- /dev/null +++ b/docs/2026_REBASE/assets/aliases-final.svg @@ -0,0 +1,140 @@ +#3[0] → #29 · CTRL#4[0] → #2 · ASSOC#5[0] → #2 · ASSOC#12[0] → #2 · ASSOC#13[0] → #2 · ASSOC#14[2] → #7 · MEM#14[3] → #7 · MEM#15[0] → #6 · CTRL#15[1] → #14 · MEM#15[2] → #13 · DATA#15[3] → #8 · DATA#15[4] → #12 · DATA#21[0] → #2 · ASSOC#22[0] → #2 · ASSOC#23[1] → #17 · MEM#23[2] → #16 · DATA#23[3] → #21 · DATA#23[4] → #22 · DATA#24[1] → #7 · MEM#24[2] → #17 · MEM#24[3] → #23 · MEM#29[0] → #6 · CTRL#29[1] → #24 · MEM#29[2] → #4 · DATAStart  #2[ Ctrl, MemBot, int]#2 Start +[ Ctrl, MemBot, int] + +[0] → — ASSOC +[1] → — CTRL +[2] → — CTRL012Stop  #3#3 Stop +Bot + +[0] → #29 CTRL0Con  #40#4 Con +0 + +[0] → #2 ASSOC0Xctrl  #5~Ctrl#5 Xctrl +~Ctrl + +[0] → #2 ASSOC0$ctrl  #6/0Ctrl#6 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRL$mem  #7/1MemBot#7 $mem +Projection 1 of #2 +MemBot + +[0] → #2 MEMarg  #8/2int#8 arg +Projection 2 of #2 +int + +[0] → #2 DATACon  #1210#12 Con +10 + +[0] → #2 ASSOC0Con  #1316#13 Con +16 + +[0] → #2 ASSOC0MemMerge  #14MemBot#14 MemMerge +MemBot + +[0] → — CTRL +[1] → — DATA +[2] → #7 MEM +[3] → #7 MEM0123new_Pair  #15[ *Pair {int !x; int !y; }, MemBot]#15 new_Pair +[ *Pair {int !x; int !y; }, MemBot] + +[0] → #6 CTRL +[1] → #14 MEM +[2] → #13 DATA +[3] → #8 DATA +[4] → #12 DATA01234Pair  #16/0*Pair {int !x; int !y; }#16 Pair +Projection 0 of #15 +*Pair {int !x; int !y; } + +[0] → #15 DATA$mem  #17/1MemBot#17 $mem +Projection 1 of #15 +MemBot + +[0] → #15 MEMCon  #218#21 Con +8 + +[0] → #2 ASSOC0Con  #2299#22 Con +99 + +[0] → #2 ASSOC0st_y  #23MEM#3:[10-99]#23 st_y +MEM#3:[10-99] + +[0] → — CTRL +[1] → #17 MEM +[2] → #16 DATA +[3] → #21 DATA +[4] → #22 DATA01234MemMerge  #24MemBot#24 MemMerge +MemBot + +[0] → — CTRL +[1] → #7 MEM +[2] → #17 MEM +[3] → #23 MEM0123Return  #29[ Ctrl, MemBot, 0]#29 Return +[ Ctrl, MemBot, 0] + +[0] → #6 CTRL +[1] → #24 MEM +[2] → #4 DATA012 diff --git a/docs/2026_REBASE/assets/arithmetic-final.json b/docs/2026_REBASE/assets/arithmetic-final.json new file mode 100644 index 00000000..8ac65d50 --- /dev/null +++ b/docs/2026_REBASE/assets/arithmetic-final.json @@ -0,0 +1,162 @@ +{ + "ver": 1, + "comp": "rebase-arithmetic", + "step": 50, + "roots": [ + 2, + 26 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl,IntBot]", + "kind": "CTRL", + "edges": [], + "proj": null + }, + { + "id": 3, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 4, + "label": "arg", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 19, + "label": "Con", + "type": "2", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 20, + "label": "Mul", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 19, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 24, + "label": "Con", + "type": "6", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 25, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 20, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 24, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 26, + "label": "Return", + "type": "[ Ctrl,IntBot]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 3, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 25, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [] +} diff --git a/docs/2026_REBASE/assets/arithmetic-final.svg b/docs/2026_REBASE/assets/arithmetic-final.svg new file mode 100644 index 00000000..ae8452e1 --- /dev/null +++ b/docs/2026_REBASE/assets/arithmetic-final.svg @@ -0,0 +1,94 @@ +#19[0] → #2 · ASSOC#20[1] → #4 · DATA#20[2] → #19 · DATA#24[0] → #2 · ASSOC#25[1] → #20 · DATA#25[2] → #24 · DATA#26[0] → #3 · CTRL#26[1] → #25 · DATAStart  #2[ Ctrl,IntBot]#2 Start +[ Ctrl,IntBot] + +$ctrl  #3/0Ctrl#3 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRLarg  #4/1IntBot#4 arg +Projection 1 of #2 +IntBot + +[0] → #2 DATACon  #192#19 Con +2 + +[0] → #2 ASSOC0Mul  #20IntBot#20 Mul +IntBot + +[0] → — CTRL +[1] → #4 DATA +[2] → #19 DATA012Con  #246#24 Con +6 + +[0] → #2 ASSOC0Add  #25IntBot#25 Add +IntBot + +[0] → — CTRL +[1] → #20 DATA +[2] → #24 DATA012Return  #26[ Ctrl,IntBot]#26 Return +[ Ctrl,IntBot] + +[0] → #3 CTRL +[1] → #25 DATA01 diff --git a/docs/2026_REBASE/assets/backend-encoded.txt b/docs/2026_REBASE/assets/backend-encoded.txt new file mode 100644 index 00000000..ec1e9236 --- /dev/null +++ b/docs/2026_REBASE/assets/backend-encoded.txt @@ -0,0 +1,14 @@ + +--- { *Box {int !x; } int -> int #0}--------------------------- + arg:rsi,box:rdi +0000 488bc6 mov rax = rsi // def/empty1 #0 +0003 4883f800 test rax +0007 7d03 j>= L3 // L4 +L4: +0009 48f7d8 neg rax +L12: +L3: + :rax +000c 480107 add8 [rdi] += rax +000f c3 ret +--- --------------------------- diff --git a/docs/2026_REBASE/assets/backend-registers.txt b/docs/2026_REBASE/assets/backend-registers.txt new file mode 100644 index 00000000..d833b574 --- /dev/null +++ b/docs/2026_REBASE/assets/backend-registers.txt @@ -0,0 +1,22 @@ + +--- { *Box {int !x; } int -> int #0}--------------------------- + arg rsi + box rdi + r15 // r15 + r14 // r14 + r13 // r13 + r12 // r12 + rbp // rbp + rbx // rbx +0000 mov rax = rsi // def/empty1 #0 +0000 test rax +0000 j< L4 // L12 +L12: +0000 ?? JMP L3 +L4: +0001 neg rax +L3: + rax = phi( N20,N33 ) +0001 add8 [rdi] += rax +0001 ret rax [stk#33] rbx rbp r12 r13 r14 r15 +--- --------------------------- diff --git a/docs/2026_REBASE/assets/backend-selected.txt b/docs/2026_REBASE/assets/backend-selected.txt new file mode 100644 index 00000000..d09adc6b --- /dev/null +++ b/docs/2026_REBASE/assets/backend-selected.txt @@ -0,0 +1,30 @@ + 7 Start ____ ____ ____ [[ 6 11 15 18 22 ]] [ Ctrl, MemBot, int] + 11 Con 7 [[ 10 ]] int + 15 Con 7 [[ 14 ]] MemBot + 18 Con 7 [[ 17 ]] *Box + 22 Con 7 [[ 21 ]] $[ALL] + +--- { *Box {int !x; } int -> int #0}---------------------- + + 6 $fun0 ____ 7 [[ 5 10 14 17 21 ]] Ctrl + 10 arg 6 11 [[ 8 20 19 ]] int + 14 $mem 6 15 [[ 13 16 ]] MemBot + 17 box 6 18 [[ 16 ]] *Box + 21 $rpc 6 22 [[ 2 ]] $[ALL] + 8 test ____ 10 [[ 5 ]] bool + 20 neg ____ 10 [[ 19 ]] int + + 5 j< 6 8 [[ 4 12 ]] [ Ctrl, Ctrl] + + 12 False 5 [[ 3 ]] Ctrl + + 4 True 5 [[ 3 ]] Ctrl + + 3 Region ____ 4 12 [[ 2 19 ]] Ctrl + 19 Phi_ 3 20 10 [[ 16 2 ]] int + 16 add8 ____ 14 17 ____ 19 [[ 13 ]] #2:Bot + 13 MemMerg ____ 14 16 [[ 2 ]] MemBot + + 2 Return 3 13 19 21 [[ 1 ]] [ Ctrl, MemBot, int] +--- ---------------------- + 1 Stop 2 [[ ]] Bot diff --git a/docs/2026_REBASE/assets/cliff-click-2020.jpeg b/docs/2026_REBASE/assets/cliff-click-2020.jpeg new file mode 100644 index 00000000..8e1fd801 Binary files /dev/null and b/docs/2026_REBASE/assets/cliff-click-2020.jpeg differ diff --git a/docs/2026_REBASE/assets/coffee-compiler-club-still.gif b/docs/2026_REBASE/assets/coffee-compiler-club-still.gif new file mode 100644 index 00000000..16616ab9 Binary files /dev/null and b/docs/2026_REBASE/assets/coffee-compiler-club-still.gif differ diff --git a/docs/2026_REBASE/assets/coffee-compiler-club.gif b/docs/2026_REBASE/assets/coffee-compiler-club.gif new file mode 100644 index 00000000..b3d7e292 Binary files /dev/null and b/docs/2026_REBASE/assets/coffee-compiler-club.gif differ diff --git a/docs/2026_REBASE/assets/control-final.json b/docs/2026_REBASE/assets/control-final.json new file mode 100644 index 00000000..6161328b --- /dev/null +++ b/docs/2026_REBASE/assets/control-final.json @@ -0,0 +1,588 @@ +{ + "ver": 1, + "comp": "rebase-control", + "step": 64, + "roots": [ + 2, + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[Ctrl,IntBot]", + "kind": "CTRL", + "edges": [], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 5, + "label": "arg", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 6, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 7, + "label": "LT", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 5, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 6, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 8, + "label": "If", + "type": "[Ctrl,Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 4, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 9, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 8, + "idx": 0 + } + }, + { + "id": 10, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 8, + "idx": 1 + } + }, + { + "id": 12, + "label": "Minus", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 5, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 13, + "label": "Region", + "type": "Ctrl", + "kind": "REGION", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 9, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 10, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "Phi_n", + "type": "IntBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 13, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 12, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 5, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 15, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 16, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 17, + "label": "Loop", + "type": "Ctrl", + "kind": "LOOP", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 13, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 23, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 19, + "label": "Phi_i", + "type": "IntBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 17, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 27, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 21, + "label": "LT", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 19, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 14, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 22, + "label": "If", + "type": "[Ctrl,Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 17, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 21, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 23, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 22, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 22, + "idx": 0 + } + }, + { + "id": 24, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 22, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 22, + "idx": 1 + } + }, + { + "id": 26, + "label": "Con", + "type": "1", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 27, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 19, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 26, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 28, + "label": "Phi_sum", + "type": "IntBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 17, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 15, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 31, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 30, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 28, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 19, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 31, + "label": "Add", + "type": "IntBot", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 30, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 26, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 32, + "label": "Return", + "type": "[Ctrl,IntBot]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 24, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 28, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [ + { + "id": 8, + "par": 0, + "nodes": [ + 7, + 8, + 9, + 10, + 12, + 13, + 14 + ] + }, + { + "id": 17, + "par": 0, + "nodes": [ + 17, + 19, + 21, + 22, + 23, + 24, + 27, + 28, + 30, + 31 + ] + } + ] +} diff --git a/docs/2026_REBASE/assets/control-final.svg b/docs/2026_REBASE/assets/control-final.svg new file mode 100644 index 00000000..32e933aa --- /dev/null +++ b/docs/2026_REBASE/assets/control-final.svg @@ -0,0 +1,171 @@ +#3[0] → #32 · CTRL#6[0] → #2 · ASSOC#7[1] → #5 · DATA#7[2] → #6 · DATA#8[0] → #4 · CTRL#8[1] → #7 · DATA#12[1] → #5 · DATA#13[1] → #9 · CTRL#13[2] → #10 · CTRL#14[1] → #12 · DATA#14[2] → #5 · DATA#15[0] → #2 · ASSOC#16[0] → #2 · ASSOC#17[1] → #13 · CTRL#17[2] → #23 · CTRL#19[1] → #16 · DATA#19[2] → #27 · DATA#21[1] → #19 · DATA#21[2] → #14 · DATA#22[0] → #17 · CTRL#22[1] → #21 · DATA#26[0] → #2 · ASSOC#27[1] → #19 · DATA#27[2] → #26 · DATA#28[1] → #15 · DATA#28[2] → #31 · DATA#30[1] → #28 · DATA#30[2] → #19 · DATA#31[1] → #30 · DATA#31[2] → #26 · DATA#32[0] → #24 · CTRL#32[1] → #28 · DATAStart  #2[Ctrl,IntBot]#2 Start +[Ctrl,IntBot] + +Stop  #3#3 Stop +Bot + +[0] → #32 CTRL0$ctrl  #4/0Ctrl#4 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRLarg  #5/1IntBot#5 arg +Projection 1 of #2 +IntBot + +[0] → #2 DATACon  #60#6 Con +0 + +[0] → #2 ASSOC0LT  #7IntBot#7 LT +IntBot + +[0] → — CTRL +[1] → #5 DATA +[2] → #6 DATA012If  #8[Ctrl,Ctrl]#8 If +[Ctrl,Ctrl] + +[0] → #4 CTRL +[1] → #7 DATA01True  #9/0Ctrl#9 True +Projection 0 of #8 +Ctrl + +[0] → #8 CTRLFalse  #10/1Ctrl#10 False +Projection 1 of #8 +Ctrl + +[0] → #8 CTRLMinus  #12IntBot#12 Minus +IntBot + +[0] → — CTRL +[1] → #5 DATA01Region  #13Ctrl#13 Region +Ctrl + +[0] → — ASSOC +[1] → #9 CTRL +[2] → #10 CTRL012Phi_n  #14IntBot#14 Phi_n +IntBot + +[0] → #13 ASSOC +[1] → #12 DATA +[2] → #5 DATA[0] → #13012Con  #150#15 Con +0 + +[0] → #2 ASSOC0Con  #160#16 Con +0 + +[0] → #2 ASSOC0Loop  #17Ctrl#17 Loop +Ctrl + +[0] → — ASSOC +[1] → #13 CTRL +[2] → #23 CTRL012Phi_i  #19IntBot#19 Phi_i +IntBot + +[0] → #17 ASSOC +[1] → #16 DATA +[2] → #27 DATA[0] → #17012LT  #21IntBot#21 LT +IntBot + +[0] → — CTRL +[1] → #19 DATA +[2] → #14 DATA012If  #22[Ctrl,Ctrl]#22 If +[Ctrl,Ctrl] + +[0] → #17 CTRL +[1] → #21 DATA01True  #23/0Ctrl#23 True +Projection 0 of #22 +Ctrl + +[0] → #22 CTRLFalse  #24/1Ctrl#24 False +Projection 1 of #22 +Ctrl + +[0] → #22 CTRLCon  #261#26 Con +1 + +[0] → #2 ASSOC0Add  #27IntBot#27 Add +IntBot + +[0] → — CTRL +[1] → #19 DATA +[2] → #26 DATA012Phi_sum  #28IntBot#28 Phi_sum +IntBot + +[0] → #17 ASSOC +[1] → #15 DATA +[2] → #31 DATA[0] → #17012Add  #30IntBot#30 Add +IntBot + +[0] → — CTRL +[1] → #28 DATA +[2] → #19 DATA012Add  #31IntBot#31 Add +IntBot + +[0] → — CTRL +[1] → #30 DATA +[2] → #26 DATA012Return  #32[Ctrl,IntBot]#32 Return +[Ctrl,IntBot] + +[0] → #24 CTRL +[1] → #28 DATA01If  #8If · 7 nodes−Fold regionLoop  #17Loop · 10 nodes−Fold region diff --git a/docs/2026_REBASE/assets/inline-final.json b/docs/2026_REBASE/assets/inline-final.json new file mode 100644 index 00000000..35e1568e --- /dev/null +++ b/docs/2026_REBASE/assets/inline-final.json @@ -0,0 +1,251 @@ +{ + "ver": 1, + "comp": "rebase-inline", + "step": 160, + "roots": [ + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 14, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 5, + "label": "Con", + "type": "null", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 6, + "label": "Xctrl", + "type": "~Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 7, + "label": "Con", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 8, + "label": "main", + "type": "Ctrl", + "kind": "FUN", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 9, + "label": "Con", + "type": "$[ALL]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 10, + "label": "$rpc", + "type": "$[ALL]", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 9, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "Return", + "type": "[ Ctrl, MemBot, 11]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 66, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 10, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 16, + "label": "$mem", + "type": "MemBot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 8, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 66, + "label": "Con", + "type": "11", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + } + ], + "groups": [ + { + "id": 8, + "par": 0, + "nodes": [ + 8, + 10, + 14, + 16 + ] + } + ] +} diff --git a/docs/2026_REBASE/assets/inline-final.svg b/docs/2026_REBASE/assets/inline-final.svg new file mode 100644 index 00000000..bd862ec3 --- /dev/null +++ b/docs/2026_REBASE/assets/inline-final.svg @@ -0,0 +1,107 @@ +#3[0] → #14 · CTRL#4[0] → #2 · ASSOC#5[0] → #2 · ASSOC#6[0] → #2 · ASSOC#7[0] → #2 · ASSOC#8[1] → #2 · CTRL#9[0] → #2 · ASSOC#10[1] → #9 · DATA#14[0] → #8 · CTRL#14[1] → #16 · MEM#14[2] → #66 · DATA#14[3] → #10 · DATA#16[1] → #7 · MEM#66[0] → #2 · ASSOCStart  #2[ Ctrl, MemBot, int]#2 Start +[ Ctrl, MemBot, int] + +[0] → — ASSOC +[1] → — CTRL +[2] → — CTRL012Stop  #3#3 Stop +Bot + +[0] → #14 CTRL0Con  #40#4 Con +0 + +[0] → #2 ASSOC0Con  #5null#5 Con +null + +[0] → #2 ASSOC0Xctrl  #6~Ctrl#6 Xctrl +~Ctrl + +[0] → #2 ASSOC0Con  #7MemBot#7 Con +MemBot + +[0] → #2 ASSOC0main  #8Ctrl#8 main +Ctrl + +[0] → — ASSOC +[1] → #2 CTRL01Con  #9$[ALL]#9 Con +$[ALL] + +[0] → #2 ASSOC0$rpc  #10$[ALL]#10 $rpc +$[ALL] + +[0] → #8 ASSOC +[1] → #9 DATA[0] → #801Return  #14[ Ctrl, MemBot, 11]#14 Return +[ Ctrl, MemBot, 11] + +[0] → #8 CTRL +[1] → #16 MEM +[2] → #66 DATA +[3] → #10 DATA0123$mem  #16MemBot#16 $mem +MemBot + +[0] → #8 ASSOC +[1] → #7 MEM[0] → #801Con  #6611#66 Con +11 + +[0] → #2 ASSOC0main  #8main · 4 nodes−Fold region diff --git a/docs/2026_REBASE/assets/memory-final.json b/docs/2026_REBASE/assets/memory-final.json new file mode 100644 index 00000000..e2f378ed --- /dev/null +++ b/docs/2026_REBASE/assets/memory-final.json @@ -0,0 +1,1404 @@ +{ + "ver": 1, + "comp": "rebase-memory", + "step": 318, + "roots": [ + 2, + 3 + ], + "scope": 0, + "nodes": [ + { + "id": 2, + "label": "Start", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 3, + "label": "Stop", + "type": "Bot", + "kind": "STOP", + "edges": [ + { + "idx": 0, + "def": 115, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 4, + "label": "Con", + "type": "0", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 5, + "label": "Xctrl", + "type": "~Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 6, + "label": "$ctrl", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 0 + } + }, + { + "id": 7, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 1 + } + }, + { + "id": 8, + "label": "arg", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 2, + "idx": 2 + } + }, + { + "id": 12, + "label": "Con", + "type": "16", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 13, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 14, + "label": "new_Totals", + "type": "[ *Totals {int !sum; int !visits; }, MemBot]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 13, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 12, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 4, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 15, + "label": "Totals", + "type": "*Totals {int !sum; int !visits; }", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 14, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 14, + "idx": 0 + } + }, + { + "id": 16, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 14, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 14, + "idx": 1 + } + }, + { + "id": 18, + "label": "Con", + "type": "4", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 24, + "label": "Con", + "type": "40", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 26, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 0, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 5, + "def": 7, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 27, + "label": "new_ary_int", + "type": "[ *[int] {int #; int ![]; }, MemBot]", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 26, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 24, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 18, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 4, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 28, + "label": "[int]", + "type": "*[int] {int #; int ![]; }", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 27, + "role": "DATA", + "label": null + } + ], + "proj": { + "par": 27, + "idx": 0 + } + }, + { + "id": 29, + "label": "$mem", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 27, + "role": "MEM", + "label": null + } + ], + "proj": { + "par": 27, + "idx": 1 + } + }, + { + "id": 32, + "label": "Loop", + "type": "Ctrl", + "kind": "LOOP", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 6, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 41, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 34, + "label": "Phi_i", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 60, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 35, + "label": "LT", + "type": "bool", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 18, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 40, + "label": "If", + "type": "[ Ctrl, Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 35, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 41, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 40, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 40, + "idx": 0 + } + }, + { + "id": 42, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 40, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 40, + "idx": 1 + } + }, + { + "id": 46, + "label": "Con", + "type": "1", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 51, + "label": "Con", + "type": "8", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 52, + "label": "Con", + "type": "3", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 2, + "role": "ASSOC", + "label": null + } + ], + "proj": null + }, + { + "id": 53, + "label": "Shl", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 52, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 54, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 53, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 51, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 56, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 8, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 57, + "label": "st_ary", + "type": "MEM#5:Bot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 41, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 124, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 28, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 54, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 56, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 60, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 34, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 46, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 65, + "label": "Loop", + "type": "Ctrl", + "kind": "LOOP", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 42, + "role": "CTRL", + "label": null + }, + { + "idx": 2, + "def": 74, + "role": "CTRL", + "label": null + } + ], + "proj": null + }, + { + "id": 67, + "label": "Phi_i", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 103, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 68, + "label": "LT", + "type": "bool", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 67, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 18, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 73, + "label": "If", + "type": "[ Ctrl, Ctrl]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 68, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 74, + "label": "True", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 73, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 73, + "idx": 0 + } + }, + { + "id": 75, + "label": "False", + "type": "Ctrl", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 73, + "role": "CTRL", + "label": null + } + ], + "proj": { + "par": 73, + "idx": 1 + } + }, + { + "id": 88, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 131, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 93, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 91, + "label": "Shl", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 67, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 52, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 92, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 91, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 51, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 93, + "label": "ld_ary", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 74, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 124, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 28, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 92, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 94, + "label": "st_sum", + "type": "MEM#2:Bot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 104, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 15, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 88, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 99, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 138, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 46, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 100, + "label": "st_visits", + "type": "MEM#3:Bot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 132, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 15, + "role": "DATA", + "label": null + }, + { + "idx": 3, + "def": 51, + "role": "DATA", + "label": null + }, + { + "idx": 4, + "def": 99, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 103, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 67, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 46, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 104, + "label": "MemPhi_2", + "type": "MEM#2:Bot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 94, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 106, + "label": "MemMerge", + "type": "MemBot", + "kind": "MEM", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 7, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 104, + "role": "MEM", + "label": null + }, + { + "idx": 3, + "def": 132, + "role": "MEM", + "label": null + }, + { + "idx": 4, + "def": 29, + "role": "MEM", + "label": null + }, + { + "idx": 5, + "def": 124, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 112, + "label": "Add", + "type": "int", + "kind": "DATA", + "edges": [ + { + "idx": 0, + "def": 0, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 138, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 131, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 115, + "label": "Return", + "type": "[ Ctrl, MemBot, int]", + "kind": "CTRL", + "edges": [ + { + "idx": 0, + "def": 75, + "role": "CTRL", + "label": null + }, + { + "idx": 1, + "def": 106, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 112, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 124, + "label": "MemPhi_5", + "type": "MEM#5:Bot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 32, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 29, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 57, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 131, + "label": "Phi_sum", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 88, + "role": "DATA", + "label": null + } + ], + "proj": null + }, + { + "id": 132, + "label": "MemPhi_3", + "type": "MEM#3:Bot", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 16, + "role": "MEM", + "label": null + }, + { + "idx": 2, + "def": 100, + "role": "MEM", + "label": null + } + ], + "proj": null + }, + { + "id": 138, + "label": "Phi_visits", + "type": "int", + "kind": "PHI", + "edges": [ + { + "idx": 0, + "def": 65, + "role": "ASSOC", + "label": null + }, + { + "idx": 1, + "def": 4, + "role": "DATA", + "label": null + }, + { + "idx": 2, + "def": 99, + "role": "DATA", + "label": null + } + ], + "proj": null + } + ], + "groups": [ + { + "id": 32, + "par": 0, + "nodes": [ + 32, + 34, + 35, + 40, + 41, + 42, + 53, + 54, + 56, + 57, + 60, + 124 + ] + }, + { + "id": 65, + "par": 0, + "nodes": [ + 65, + 67, + 68, + 73, + 74, + 75, + 88, + 91, + 92, + 93, + 94, + 99, + 100, + 103, + 104, + 112, + 131, + 132, + 138 + ] + } + ] +} diff --git a/docs/2026_REBASE/assets/memory-final.svg b/docs/2026_REBASE/assets/memory-final.svg new file mode 100644 index 00000000..205fea1b --- /dev/null +++ b/docs/2026_REBASE/assets/memory-final.svg @@ -0,0 +1,320 @@ +#3[0] → #115 · CTRL#4[0] → #2 · ASSOC#5[0] → #2 · ASSOC#12[0] → #2 · ASSOC#13[2] → #7 · MEM#13[3] → #7 · MEM#14[0] → #6 · CTRL#14[1] → #13 · MEM#14[2] → #12 · DATA#14[3] → #4 · DATA#14[4] → #4 · DATA#18[0] → #2 · ASSOC#24[0] → #2 · ASSOC#26[4] → #7 · MEM#26[5] → #7 · MEM#27[0] → #6 · CTRL#27[1] → #26 · MEM#27[2] → #24 · DATA#27[3] → #18 · DATA#27[4] → #4 · DATA#32[1] → #6 · CTRL#32[2] → #41 · CTRL#34[1] → #4 · DATA#34[2] → #60 · DATA#35[1] → #34 · DATA#35[2] → #18 · DATA#40[0] → #32 · CTRL#40[1] → #35 · DATA#46[0] → #2 · ASSOC#51[0] → #2 · ASSOC#52[0] → #2 · ASSOC#53[1] → #34 · DATA#53[2] → #52 · DATA#54[1] → #53 · DATA#54[2] → #51 · DATA#56[1] → #34 · DATA#56[2] → #8 · DATA#57[0] → #41 · CTRL#57[1] → #124 · MEM#57[2] → #28 · DATA#57[3] → #54 · DATA#57[4] → #56 · DATA#60[1] → #34 · DATA#60[2] → #46 · DATA#65[1] → #42 · CTRL#65[2] → #74 · CTRL#67[1] → #4 · DATA#67[2] → #103 · DATA#68[1] → #67 · DATA#68[2] → #18 · DATA#73[0] → #65 · CTRL#73[1] → #68 · DATA#88[1] → #131 · DATA#88[2] → #93 · DATA#91[1] → #67 · DATA#91[2] → #52 · DATA#92[1] → #91 · DATA#92[2] → #51 · DATA#93[0] → #74 · CTRL#93[1] → #124 · MEM#93[2] → #28 · DATA#93[3] → #92 · DATA#94[1] → #104 · MEM#94[2] → #15 · DATA#94[3] → #4 · DATA#94[4] → #88 · DATA#99[1] → #138 · DATA#99[2] → #46 · DATA#100[1] → #132 · MEM#100[2] → #15 · DATA#100[3] → #51 · DATA#100[4] → #99 · DATA#103[1] → #67 · DATA#103[2] → #46 · DATA#104[1] → #16 · MEM#104[2] → #94 · MEM#106[1] → #7 · MEM#106[2] → #104 · MEM#106[3] → #132 · MEM#106[4] → #29 · MEM#106[5] → #124 · MEM#112[1] → #138 · DATA#112[2] → #131 · DATA#115[0] → #75 · CTRL#115[1] → #106 · MEM#115[2] → #112 · DATA#124[1] → #29 · MEM#124[2] → #57 · MEM#131[1] → #4 · DATA#131[2] → #88 · DATA#132[1] → #16 · MEM#132[2] → #100 · MEM#138[1] → #4 · DATA#138[2] → #99 · DATAStart  #2[ Ctrl, MemBot, int]#2 Start +[ Ctrl, MemBot, int] + +[0] → — ASSOC +[1] → — CTRL +[2] → — CTRL012Stop  #3#3 Stop +Bot + +[0] → #115 CTRL0Con  #40#4 Con +0 + +[0] → #2 ASSOC0Xctrl  #5~Ctrl#5 Xctrl +~Ctrl + +[0] → #2 ASSOC0$ctrl  #6/0Ctrl#6 $ctrl +Projection 0 of #2 +Ctrl + +[0] → #2 CTRL$mem  #7/1MemBot#7 $mem +Projection 1 of #2 +MemBot + +[0] → #2 MEMarg  #8/2int#8 arg +Projection 2 of #2 +int + +[0] → #2 DATACon  #1216#12 Con +16 + +[0] → #2 ASSOC0MemMerge  #13MemBot#13 MemMerge +MemBot + +[0] → — CTRL +[1] → — DATA +[2] → #7 MEM +[3] → #7 MEM0123new_Totals  #14[ *Totals {int !sum; int !visits; }, MemBot]#14 new_Totals +[ *Totals {int !sum; int !visits; }, MemBot] + +[0] → #6 CTRL +[1] → #13 MEM +[2] → #12 DATA +[3] → #4 DATA +[4] → #4 DATA01234Totals  #15/0*Totals {int !sum; int !visits; }#15 Totals +Projection 0 of #14 +*Totals {int !sum; int !visits; } + +[0] → #14 DATA$mem  #16/1MemBot#16 $mem +Projection 1 of #14 +MemBot + +[0] → #14 MEMCon  #184#18 Con +4 + +[0] → #2 ASSOC0Con  #2440#24 Con +40 + +[0] → #2 ASSOC0MemMerge  #26MemBot#26 MemMerge +MemBot + +[0] → — CTRL +[1] → — DATA +[2] → — DATA +[3] → — DATA +[4] → #7 MEM +[5] → #7 MEM012345new_ary_int  #27[ *[int] {int #; int ![]; }, MemBot]#27 new_ary_int +[ *[int] {int #; int ![]; }, MemBot] + +[0] → #6 CTRL +[1] → #26 MEM +[2] → #24 DATA +[3] → #18 DATA +[4] → #4 DATA01234[int]  #28/0*[int] {int #; int ![]; }#28 [int] +Projection 0 of #27 +*[int] {int #; int ![]; } + +[0] → #27 DATA$mem  #29/1MemBot#29 $mem +Projection 1 of #27 +MemBot + +[0] → #27 MEMLoop  #32Ctrl#32 Loop +Ctrl + +[0] → — ASSOC +[1] → #6 CTRL +[2] → #41 CTRL012Phi_i  #34int#34 Phi_i +int + +[0] → #32 ASSOC +[1] → #4 DATA +[2] → #60 DATA[0] → #32012LT  #35bool#35 LT +bool + +[0] → — CTRL +[1] → #34 DATA +[2] → #18 DATA012If  #40[ Ctrl, Ctrl]#40 If +[ Ctrl, Ctrl] + +[0] → #32 CTRL +[1] → #35 DATA01True  #41/0Ctrl#41 True +Projection 0 of #40 +Ctrl + +[0] → #40 CTRLFalse  #42/1Ctrl#42 False +Projection 1 of #40 +Ctrl + +[0] → #40 CTRLCon  #461#46 Con +1 + +[0] → #2 ASSOC0Con  #518#51 Con +8 + +[0] → #2 ASSOC0Con  #523#52 Con +3 + +[0] → #2 ASSOC0Shl  #53int#53 Shl +int + +[0] → — CTRL +[1] → #34 DATA +[2] → #52 DATA012Add  #54int#54 Add +int + +[0] → — CTRL +[1] → #53 DATA +[2] → #51 DATA012Add  #56int#56 Add +int + +[0] → — CTRL +[1] → #34 DATA +[2] → #8 DATA012st_ary  #57MEM#5:Bot#57 st_ary +MEM#5:Bot + +[0] → #41 CTRL +[1] → #124 MEM +[2] → #28 DATA +[3] → #54 DATA +[4] → #56 DATA01234Add  #60int#60 Add +int + +[0] → — CTRL +[1] → #34 DATA +[2] → #46 DATA012Loop  #65Ctrl#65 Loop +Ctrl + +[0] → — ASSOC +[1] → #42 CTRL +[2] → #74 CTRL012Phi_i  #67int#67 Phi_i +int + +[0] → #65 ASSOC +[1] → #4 DATA +[2] → #103 DATA[0] → #65012LT  #68bool#68 LT +bool + +[0] → — CTRL +[1] → #67 DATA +[2] → #18 DATA012If  #73[ Ctrl, Ctrl]#73 If +[ Ctrl, Ctrl] + +[0] → #65 CTRL +[1] → #68 DATA01True  #74/0Ctrl#74 True +Projection 0 of #73 +Ctrl + +[0] → #73 CTRLFalse  #75/1Ctrl#75 False +Projection 1 of #73 +Ctrl + +[0] → #73 CTRLAdd  #88int#88 Add +int + +[0] → — CTRL +[1] → #131 DATA +[2] → #93 DATA012Shl  #91int#91 Shl +int + +[0] → — CTRL +[1] → #67 DATA +[2] → #52 DATA012Add  #92int#92 Add +int + +[0] → — CTRL +[1] → #91 DATA +[2] → #51 DATA012ld_ary  #93int#93 ld_ary +int + +[0] → #74 CTRL +[1] → #124 MEM +[2] → #28 DATA +[3] → #92 DATA0123st_sum  #94MEM#2:Bot#94 st_sum +MEM#2:Bot + +[0] → — CTRL +[1] → #104 MEM +[2] → #15 DATA +[3] → #4 DATA +[4] → #88 DATA01234Add  #99int#99 Add +int + +[0] → — CTRL +[1] → #138 DATA +[2] → #46 DATA012st_visits  #100MEM#3:Bot#100 st_visits +MEM#3:Bot + +[0] → — CTRL +[1] → #132 MEM +[2] → #15 DATA +[3] → #51 DATA +[4] → #99 DATA01234Add  #103int#103 Add +int + +[0] → — CTRL +[1] → #67 DATA +[2] → #46 DATA012MemPhi_2  #104MEM#2:Bot#104 MemPhi_2 +MEM#2:Bot + +[0] → #65 ASSOC +[1] → #16 MEM +[2] → #94 MEM[0] → #65012MemMerge  #106MemBot#106 MemMerge +MemBot + +[0] → — CTRL +[1] → #7 MEM +[2] → #104 MEM +[3] → #132 MEM +[4] → #29 MEM +[5] → #124 MEM012345Add  #112int#112 Add +int + +[0] → — CTRL +[1] → #138 DATA +[2] → #131 DATA012Return  #115[ Ctrl, MemBot, int]#115 Return +[ Ctrl, MemBot, int] + +[0] → #75 CTRL +[1] → #106 MEM +[2] → #112 DATA012MemPhi_5  #124MEM#5:Bot#124 MemPhi_5 +MEM#5:Bot + +[0] → #32 ASSOC +[1] → #29 MEM +[2] → #57 MEM[0] → #32012Phi_sum  #131int#131 Phi_sum +int + +[0] → #65 ASSOC +[1] → #4 DATA +[2] → #88 DATA[0] → #65012MemPhi_3  #132MEM#3:Bot#132 MemPhi_3 +MEM#3:Bot + +[0] → #65 ASSOC +[1] → #16 MEM +[2] → #100 MEM[0] → #65012Phi_visits  #138int#138 Phi_visits +int + +[0] → #65 ASSOC +[1] → #4 DATA +[2] → #99 DATA[0] → #65012Loop  #32Loop · 12 nodes−Fold regionLoop  #65Loop · 19 nodes−Fold region diff --git a/docs/2026_REBASE/assets/rich-lattice.gv b/docs/2026_REBASE/assets/rich-lattice.gv new file mode 100644 index 00000000..848bca82 --- /dev/null +++ b/docs/2026_REBASE/assets/rich-lattice.gv @@ -0,0 +1,404 @@ +digraph RichLattice { +graph [bgcolor="transparent", ranksep=0.35, nodesep=0.12, pad=0.08]; +node [shape=box, style="rounded,filled", fontname="Arial", fontsize=10, margin="0.06,0.04", color="#647674", penwidth=0.65]; +edge [arrowhead=none, color="#899895", penwidth=0.65]; +n0 [label="BOTTOM", tooltip="Type: Bot", fillcolor="#172e35", fontcolor="white"]; +n1 [label="Ctrl", tooltip="Type: Ctrl", fillcolor="#faedce", fontcolor="#172e35"]; +n2 [label="null", tooltip="Type: null", fillcolor="#faedce", fontcolor="#172e35"]; +n3 [label="ptr", tooltip="TypePtr: ptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n4 [label="nptr", tooltip="TypePtr: nptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n5 [label="i32", tooltip="TypeInteger: i32", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n6 [label="i64", tooltip="TypeInteger: i64", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n7 [label="bool", tooltip="TypeInteger: bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n8 [label="i1", tooltip="TypeInteger: i1", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n9 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n10 [label="0", tooltip="TypeInteger: 0", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n11 [label="bool", tooltip="TypeInteger: bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n12 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n13 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n14 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n15 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n16 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n17 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n18 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n19 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n20 [label="u8", tooltip="TypeInteger: u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n21 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n22 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n23 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n24 [label="[1-255]", tooltip="TypeInteger: [1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n25 [label="[-255-0]", tooltip="TypeInteger: [-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n26 [label="[-255--1]", tooltip="TypeInteger: [-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n27 [label="flt", tooltip="TypeFloat: flt", fillcolor="#c7eee9", fontcolor="#172e35"]; +n28 [label="f32", tooltip="TypeFloat: f32", fillcolor="#c7eee9", fontcolor="#172e35"]; +n29 [label="3.141592653589793", tooltip="TypeFloat: 3.141592653589793", fillcolor="#c7eee9", fontcolor="#172e35"]; +n30 [label="*void", tooltip="TypeMemPtr: *void", fillcolor="#cce4d6", fontcolor="#172e35"]; +n31 [label="PtrBot", tooltip="TypeMemPtr: PtrBot", fillcolor="#cce4d6", fontcolor="#172e35"]; +n32 [label="*test", tooltip="TypeMemPtr: *test {null !test; }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n33 [label="*test", tooltip="TypeMemPtr: *test {null !test; }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n34 [label="{0}", tooltip="TypeFunPtr: { i64 f32 -> i64 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n35 [label="{b11}", tooltip="TypeFunPtr: { i64 f32 -> i64 #b11}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n36 [label="FunBot", tooltip="TypeFunPtr: FunBot", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n37 [label="{ALL}", tooltip="TypeFunPtr: { i64 -> Bot #ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n38 [label="{ALL}", tooltip="TypeFunPtr: { i64 i64 -> PtrBot #ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n39 [label="{0}", tooltip="TypeFunPtr: { i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n40 [label="{0}", tooltip="TypeFunPtr: { -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n41 [label="{0}", tooltip="TypeFunPtr: { Top i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n42 [label="{0}", tooltip="TypeFunPtr: { i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n43 [label="{0}", tooltip="TypeFunPtr: { -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n44 [label="{0}", tooltip="TypeFunPtr: { Bot i64 -> i32 #0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n45 [label="#2:null", tooltip="TypeMem: #2:null", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n46 [label="#2:0", tooltip="TypeMem: #2:0", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n47 [label="MemBot", tooltip="TypeMem: MemBot", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n48 [label="!test", tooltip="Field: !test:-2 : null", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n49 [label="test", tooltip="Field: test:-2 : null", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n50 [label="!flt ", tooltip="Field: !flt :-2 : f32", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n51 [label="StructBot", tooltip="TypeStruct: StructBot", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n52 [label="test", tooltip="TypeStruct: test {null !test; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n53 [label="[]i64", tooltip="TypeStruct: []i64", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n54 [label="[]u8", tooltip="TypeStruct: []u8", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n55 [label="[]u8", tooltip="TypeStruct: [\"abc\"]", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n56 [label="%SINT", tooltip="TypeStruct: %SINT {... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n57 [label="%SFLT", tooltip="TypeStruct: %SFLT {... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n58 [label="%SINT", tooltip="TypeStruct: %SINT {u32 !a; *%SFLT {... } !s2; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n59 [label="%SFLT", tooltip="TypeStruct: %SFLT {f32 !b; *%SINT {u32 !a; *%SFLT {... } !s2; ... } !s1; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n60 [label="%SFLT", tooltip="TypeStruct: %SFLT {f32 !b; *%SINT {u32 !a; *%SFLT !s2; } !s1; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n61 [label="%SINT", tooltip="TypeStruct: %SINT {u32 !a; *%SFLT {f32 !b; *%SINT !s1; } !s2; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n62 [label="calloc", tooltip="TypeStruct: calloc {{ i64 i64 -> PtrBot #ALL}? calloc; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n63 [label="[BOT]", tooltip="TypeTuple: [BOT]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n64 [label="[ i64, *test {null !test; }]", tooltip="TypeTuple: [ i64, *test {null !test; }]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n65 [label="[ Ctrl, MemTop, i64]", tooltip="TypeTuple: [ Ctrl, MemTop, i64]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n66 [label="[ Ctrl, ~Ctrl]", tooltip="TypeTuple: [ Ctrl, ~Ctrl]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n67 [label="$[ALL]", tooltip="TypeRPC: $[ALL]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n68 [label="$[2]", tooltip="TypeRPC: $[2]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n69 [label="[\"abc\"]", tooltip="TypeConAryB: [\"abc\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n70 [label="[\"abcd\"]", tooltip="TypeConAryB: [\"abcd\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n71 [label="[i32]", tooltip="TypeConAryI: [i32]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n72 [label="TOP", tooltip="Type: Top", fillcolor="#172e35", fontcolor="white"]; +n73 [label="~Ctrl", tooltip="Type: ~Ctrl", fillcolor="#faedce", fontcolor="#172e35"]; +n74 [label="~nil", tooltip="Type: ~nil", fillcolor="#faedce", fontcolor="#172e35"]; +n75 [label="~ptr", tooltip="TypePtr: ~ptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n76 [label="~nptr", tooltip="TypePtr: ~nptr", fillcolor="#cce4d6", fontcolor="#172e35"]; +n77 [label="~i32", tooltip="TypeInteger: ~i32", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n78 [label="~i64", tooltip="TypeInteger: ~i64", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n79 [label="~bool", tooltip="TypeInteger: ~bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n80 [label="~i1", tooltip="TypeInteger: ~i1", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n81 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n82 [label="0", tooltip="TypeInteger: 0", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n83 [label="~bool", tooltip="TypeInteger: ~bool", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n84 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n85 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n86 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n87 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n88 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n89 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n90 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n91 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n92 [label="~u8", tooltip="TypeInteger: ~u8", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n93 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n94 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n95 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n96 [label="~[1-255]", tooltip="TypeInteger: ~[1-255]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n97 [label="~[-255-0]", tooltip="TypeInteger: ~[-255-0]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n98 [label="~[-255--1]", tooltip="TypeInteger: ~[-255--1]", fillcolor="#d3e7f5", fontcolor="#172e35"]; +n99 [label="~flt", tooltip="TypeFloat: ~flt", fillcolor="#c7eee9", fontcolor="#172e35"]; +n100 [label="~f32", tooltip="TypeFloat: ~f32", fillcolor="#c7eee9", fontcolor="#172e35"]; +n101 [label="~*StructTop", tooltip="TypeMemPtr: ~*StructTop", fillcolor="#cce4d6", fontcolor="#172e35"]; +n102 [label="PtrTop", tooltip="TypeMemPtr: PtrTop", fillcolor="#cce4d6", fontcolor="#172e35"]; +n103 [label="~*test", tooltip="TypeMemPtr: ~*test {~nil test; ... }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n104 [label="~*test", tooltip="TypeMemPtr: ~*test {~nil test; ... }", fillcolor="#cce4d6", fontcolor="#172e35"]; +n105 [label="{~0}", tooltip="TypeFunPtr: ~{ ~i64 ~f32 -> ~i64 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n106 [label="{~b11}", tooltip="TypeFunPtr: ~{ ~i64 ~f32 -> ~i64 #~b11}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n107 [label="FunTop", tooltip="TypeFunPtr: FunTop", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n108 [label="{~ALL}", tooltip="TypeFunPtr: ~{ ~i64 -> Top #~ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n109 [label="{~ALL}", tooltip="TypeFunPtr: ~{ ~i64 ~i64 -> PtrTop #~ALL}?", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n110 [label="{~0}", tooltip="TypeFunPtr: ~{ ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n111 [label="{~0}", tooltip="TypeFunPtr: ~{ -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n112 [label="{~0}", tooltip="TypeFunPtr: ~{ Bot ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n113 [label="{~0}", tooltip="TypeFunPtr: ~{ ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n114 [label="{~0}", tooltip="TypeFunPtr: ~{ -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n115 [label="{~0}", tooltip="TypeFunPtr: ~{ Top ~i64 -> ~i32 #~0}", fillcolor="#dfd0ef", fontcolor="#172e35"]; +n116 [label="#2:~nil", tooltip="TypeMem: #2:~nil", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n117 [label="#2:0", tooltip="TypeMem: #2:0", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n118 [label="MemTop", tooltip="TypeMem: MemTop", fillcolor="#a9c9e5", fontcolor="#172e35"]; +n119 [label="test", tooltip="Field: test:-2 : ~nil", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n120 [label="!test", tooltip="Field: !test:-2 : ~nil", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n121 [label="flt ", tooltip="Field: flt :-2 : ~f32", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n122 [label="StructTop", tooltip="TypeStruct: StructTop", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n123 [label="test", tooltip="TypeStruct: test {~nil test; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n124 [label="[]i64", tooltip="TypeStruct: []i64", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n125 [label="[]u8", tooltip="TypeStruct: []u8", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n126 [label="[]u8", tooltip="TypeStruct: [\"abc\"]", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n127 [label="%SINT", tooltip="TypeStruct: %SINT {}", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n128 [label="%SFLT", tooltip="TypeStruct: %SFLT {}", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n129 [label="%SINT", tooltip="TypeStruct: %SINT {~u32 a; ~*%SFLT {} s2; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n130 [label="%SFLT", tooltip="TypeStruct: %SFLT {~f32 b; ~*%SINT {~u32 a; ~*%SFLT {} s2; } s1; }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n131 [label="%SFLT", tooltip="TypeStruct: %SFLT {~f32 b; ~*%SINT {~u32 a; ~*%SFLT s2; ... } s1; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n132 [label="%SINT", tooltip="TypeStruct: %SINT {~u32 a; ~*%SFLT {~f32 b; ~*%SINT s1; ... } s2; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n133 [label="calloc", tooltip="TypeStruct: calloc {~{ ~i64 ~i64 -> PtrTop #~ALL}? !calloc; ... }", fillcolor="#e0ebc8", fontcolor="#172e35"]; +n134 [label="[TOP]", tooltip="TypeTuple: [TOP]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n135 [label="[ ~i64, ~*test {~nil test; ... }]", tooltip="TypeTuple: [ ~i64, ~*test {~nil test; ... }]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n136 [label="[ ~Ctrl, MemBot, ~i64]", tooltip="TypeTuple: [ ~Ctrl, MemBot, ~i64]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n137 [label="[ ~Ctrl, Ctrl]", tooltip="TypeTuple: [ ~Ctrl, Ctrl]", fillcolor="#f2d7e4", fontcolor="#172e35"]; +n138 [label="$[]", tooltip="TypeRPC: $[]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n139 [label="$[-2]", tooltip="TypeRPC: $[-2]", fillcolor="#f4d4b5", fontcolor="#172e35"]; +n140 [label="[\"abc\"]", tooltip="TypeConAryB: [\"abc\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n141 [label="[\"abcd\"]", tooltip="TypeConAryB: [\"abcd\"]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n142 [label="[i32]", tooltip="TypeConAryI: [i32]", fillcolor="#d9d5cc", fontcolor="#172e35"]; +n1 -> n0; +n2 -> n31; +n2 -> n35; +n2 -> n37; +n2 -> n38; +n3 -> n0; +n4 -> n3; +n5 -> n6; +n6 -> n0; +n7 -> n9; +n8 -> n25; +n9 -> n5; +n10 -> n11; +n10 -> n12; +n10 -> n14; +n10 -> n82; +n11 -> n7; +n11 -> n20; +n12 -> n16; +n13 -> n12; +n13 -> n17; +n14 -> n18; +n15 -> n14; +n15 -> n19; +n16 -> n20; +n17 -> n16; +n17 -> n21; +n18 -> n22; +n19 -> n18; +n19 -> n23; +n20 -> n9; +n21 -> n20; +n21 -> n24; +n22 -> n25; +n23 -> n22; +n23 -> n26; +n24 -> n9; +n25 -> n5; +n26 -> n25; +n27 -> n0; +n28 -> n27; +n29 -> n27; +n30 -> n4; +n30 -> n31; +n31 -> n3; +n32 -> n33; +n33 -> n30; +n34 -> n4; +n34 -> n35; +n35 -> n36; +n36 -> n3; +n37 -> n36; +n38 -> n36; +n39 -> n34; +n39 -> n37; +n39 -> n42; +n39 -> n44; +n40 -> n39; +n40 -> n41; +n41 -> n42; +n41 -> n44; +n42 -> n43; +n43 -> n4; +n43 -> n36; +n44 -> n43; +n45 -> n47; +n46 -> n117; +n47 -> n0; +n48 -> n49; +n49 -> n0; +n50 -> n0; +n51 -> n0; +n52 -> n51; +n53 -> n51; +n54 -> n51; +n55 -> n51; +n56 -> n51; +n57 -> n51; +n58 -> n56; +n59 -> n57; +n60 -> n59; +n61 -> n58; +n62 -> n51; +n63 -> n0; +n64 -> n63; +n65 -> n63; +n66 -> n63; +n67 -> n0; +n68 -> n67; +n69 -> n13; +n69 -> n140; +n70 -> n13; +n70 -> n141; +n71 -> n13; +n71 -> n142; +n72 -> n48; +n72 -> n50; +n72 -> n73; +n72 -> n75; +n72 -> n78; +n72 -> n99; +n72 -> n118; +n72 -> n120; +n72 -> n121; +n72 -> n122; +n72 -> n134; +n72 -> n138; +n73 -> n1; +n74 -> n4; +n75 -> n76; +n75 -> n102; +n75 -> n107; +n76 -> n2; +n76 -> n40; +n76 -> n101; +n76 -> n105; +n76 -> n114; +n77 -> n81; +n77 -> n97; +n78 -> n77; +n79 -> n10; +n79 -> n13; +n79 -> n83; +n80 -> n10; +n80 -> n15; +n81 -> n79; +n81 -> n92; +n81 -> n96; +n82 -> n7; +n82 -> n8; +n83 -> n11; +n83 -> n17; +n83 -> n18; +n83 -> n82; +n84 -> n82; +n84 -> n85; +n85 -> n7; +n85 -> n140; +n85 -> n141; +n85 -> n142; +n86 -> n82; +n86 -> n87; +n87 -> n8; +n87 -> n26; +n88 -> n22; +n88 -> n84; +n88 -> n89; +n89 -> n11; +n89 -> n21; +n89 -> n85; +n90 -> n11; +n90 -> n86; +n90 -> n91; +n91 -> n23; +n91 -> n87; +n92 -> n83; +n92 -> n88; +n92 -> n93; +n93 -> n17; +n93 -> n89; +n94 -> n16; +n94 -> n90; +n94 -> n95; +n95 -> n19; +n95 -> n91; +n96 -> n69; +n96 -> n70; +n96 -> n71; +n96 -> n93; +n97 -> n80; +n97 -> n94; +n97 -> n98; +n98 -> n15; +n98 -> n95; +n99 -> n29; +n99 -> n100; +n100 -> n28; +n101 -> n32; +n101 -> n104; +n102 -> n74; +n102 -> n101; +n103 -> n30; +n104 -> n103; +n105 -> n110; +n106 -> n74; +n106 -> n105; +n107 -> n38; +n107 -> n40; +n107 -> n106; +n107 -> n108; +n107 -> n109; +n107 -> n114; +n108 -> n42; +n108 -> n74; +n108 -> n110; +n109 -> n36; +n109 -> n74; +n110 -> n111; +n111 -> n4; +n111 -> n36; +n112 -> n111; +n113 -> n37; +n113 -> n110; +n113 -> n112; +n114 -> n113; +n114 -> n115; +n115 -> n110; +n115 -> n112; +n116 -> n47; +n117 -> n47; +n118 -> n45; +n118 -> n46; +n118 -> n116; +n119 -> n0; +n120 -> n119; +n121 -> n0; +n122 -> n52; +n122 -> n53; +n122 -> n54; +n122 -> n55; +n122 -> n62; +n122 -> n123; +n122 -> n124; +n122 -> n125; +n122 -> n126; +n122 -> n127; +n122 -> n128; +n122 -> n133; +n123 -> n51; +n124 -> n51; +n125 -> n51; +n126 -> n51; +n127 -> n61; +n127 -> n129; +n128 -> n60; +n128 -> n130; +n129 -> n132; +n130 -> n131; +n131 -> n57; +n132 -> n56; +n133 -> n51; +n134 -> n64; +n134 -> n65; +n134 -> n66; +n134 -> n135; +n134 -> n136; +n134 -> n137; +n135 -> n63; +n136 -> n63; +n137 -> n63; +n138 -> n68; +n138 -> n139; +n139 -> n67; +n140 -> n24; +n141 -> n24; +n142 -> n24; +} diff --git a/docs/2026_REBASE/assets/rich-lattice.svg b/docs/2026_REBASE/assets/rich-lattice.svg new file mode 100644 index 00000000..2aecb147 --- /dev/null +++ b/docs/2026_REBASE/assets/rich-lattice.svg @@ -0,0 +1,2579 @@ + + + + + + +RichLattice + + +n0 + + +BOTTOM + + + + + +n1 + + +Ctrl + + + + + +n1->n0 + + + + +n2 + + +null + + + + + +n31 + + +PtrBot + + + + + +n2->n31 + + + + +n35 + + +{b11} + + + + + +n2->n35 + + + + +n37 + + +{ALL} + + + + + +n2->n37 + + + + +n38 + + +{ALL} + + + + + +n2->n38 + + + + +n3 + + +ptr + + + + + +n3->n0 + + + + +n4 + + +nptr + + + + + +n4->n3 + + + + +n5 + + +i32 + + + + + +n6 + + +i64 + + + + + +n5->n6 + + + + +n6->n0 + + + + +n7 + + +bool + + + + + +n9 + + +u8 + + + + + +n7->n9 + + + + +n8 + + +i1 + + + + + +n25 + + +[-255-0] + + + + + +n8->n25 + + + + +n9->n5 + + + + +n10 + + +0 + + + + + +n11 + + +bool + + + + + +n10->n11 + + + + +n12 + + +u8 + + + + + +n10->n12 + + + + +n14 + + +[-255-0] + + + + + +n10->n14 + + + + +n82 + + +0 + + + + + +n10->n82 + + + + +n11->n7 + + + + +n20 + + +u8 + + + + + +n11->n20 + + + + +n16 + + +u8 + + + + + +n12->n16 + + + + +n13 + + +[1-255] + + + + + +n13->n12 + + + + +n17 + + +[1-255] + + + + + +n13->n17 + + + + +n18 + + +[-255-0] + + + + + +n14->n18 + + + + +n15 + + +[-255--1] + + + + + +n15->n14 + + + + +n19 + + +[-255--1] + + + + + +n15->n19 + + + + +n16->n20 + + + + +n17->n16 + + + + +n21 + + +[1-255] + + + + + +n17->n21 + + + + +n22 + + +[-255-0] + + + + + +n18->n22 + + + + +n19->n18 + + + + +n23 + + +[-255--1] + + + + + +n19->n23 + + + + +n20->n9 + + + + +n21->n20 + + + + +n24 + + +[1-255] + + + + + +n21->n24 + + + + +n22->n25 + + + + +n23->n22 + + + + +n26 + + +[-255--1] + + + + + +n23->n26 + + + + +n24->n9 + + + + +n25->n5 + + + + +n26->n25 + + + + +n27 + + +flt + + + + + +n27->n0 + + + + +n28 + + +f32 + + + + + +n28->n27 + + + + +n29 + + +3.141592653589793 + + + + + +n29->n27 + + + + +n30 + + +*void + + + + + +n30->n4 + + + + +n30->n31 + + + + +n31->n3 + + + + +n32 + + +*test + + + + + +n33 + + +*test + + + + + +n32->n33 + + + + +n33->n30 + + + + +n34 + + +{0} + + + + + +n34->n4 + + + + +n34->n35 + + + + +n36 + + +FunBot + + + + + +n35->n36 + + + + +n36->n3 + + + + +n37->n36 + + + + +n38->n36 + + + + +n39 + + +{0} + + + + + +n39->n34 + + + + +n39->n37 + + + + +n42 + + +{0} + + + + + +n39->n42 + + + + +n44 + + +{0} + + + + + +n39->n44 + + + + +n40 + + +{0} + + + + + +n40->n39 + + + + +n41 + + +{0} + + + + + +n40->n41 + + + + +n41->n42 + + + + +n41->n44 + + + + +n43 + + +{0} + + + + + +n42->n43 + + + + +n43->n4 + + + + +n43->n36 + + + + +n44->n43 + + + + +n45 + + +#2:null + + + + + +n47 + + +MemBot + + + + + +n45->n47 + + + + +n46 + + +#2:0 + + + + + +n117 + + +#2:0 + + + + + +n46->n117 + + + + +n47->n0 + + + + +n48 + + +!test + + + + + +n49 + + +test + + + + + +n48->n49 + + + + +n49->n0 + + + + +n50 + + +!flt + + + + + +n50->n0 + + + + +n51 + + +StructBot + + + + + +n51->n0 + + + + +n52 + + +test + + + + + +n52->n51 + + + + +n53 + + +[]i64 + + + + + +n53->n51 + + + + +n54 + + +[]u8 + + + + + +n54->n51 + + + + +n55 + + +[]u8 + + + + + +n55->n51 + + + + +n56 + + +%SINT + + + + + +n56->n51 + + + + +n57 + + +%SFLT + + + + + +n57->n51 + + + + +n58 + + +%SINT + + + + + +n58->n56 + + + + +n59 + + +%SFLT + + + + + +n59->n57 + + + + +n60 + + +%SFLT + + + + + +n60->n59 + + + + +n61 + + +%SINT + + + + + +n61->n58 + + + + +n62 + + +calloc + + + + + +n62->n51 + + + + +n63 + + +[BOT] + + + + + +n63->n0 + + + + +n64 + + +[  i64, *test {null !test; }] + + + + + +n64->n63 + + + + +n65 + + +[  Ctrl, MemTop, i64] + + + + + +n65->n63 + + + + +n66 + + +[  Ctrl, ~Ctrl] + + + + + +n66->n63 + + + + +n67 + + +$[ALL] + + + + + +n67->n0 + + + + +n68 + + +$[2] + + + + + +n68->n67 + + + + +n69 + + +["abc"] + + + + + +n69->n13 + + + + +n140 + + +["abc"] + + + + + +n69->n140 + + + + +n70 + + +["abcd"] + + + + + +n70->n13 + + + + +n141 + + +["abcd"] + + + + + +n70->n141 + + + + +n71 + + +[i32] + + + + + +n71->n13 + + + + +n142 + + +[i32] + + + + + +n71->n142 + + + + +n72 + + +TOP + + + + + +n72->n48 + + + + +n72->n50 + + + + +n73 + + +~Ctrl + + + + + +n72->n73 + + + + +n75 + + +~ptr + + + + + +n72->n75 + + + + +n78 + + +~i64 + + + + + +n72->n78 + + + + +n99 + + +~flt + + + + + +n72->n99 + + + + +n118 + + +MemTop + + + + + +n72->n118 + + + + +n120 + + +!test + + + + + +n72->n120 + + + + +n121 + + +flt + + + + + +n72->n121 + + + + +n122 + + +StructTop + + + + + +n72->n122 + + + + +n134 + + +[TOP] + + + + + +n72->n134 + + + + +n138 + + +$[] + + + + + +n72->n138 + + + + +n73->n1 + + + + +n74 + + +~nil + + + + + +n74->n4 + + + + +n76 + + +~nptr + + + + + +n75->n76 + + + + +n102 + + +PtrTop + + + + + +n75->n102 + + + + +n107 + + +FunTop + + + + + +n75->n107 + + + + +n76->n2 + + + + +n76->n40 + + + + +n101 + + +~*StructTop + + + + + +n76->n101 + + + + +n105 + + +{~0} + + + + + +n76->n105 + + + + +n114 + + +{~0} + + + + + +n76->n114 + + + + +n77 + + +~i32 + + + + + +n81 + + +~u8 + + + + + +n77->n81 + + + + +n97 + + +~[-255-0] + + + + + +n77->n97 + + + + +n78->n77 + + + + +n79 + + +~bool + + + + + +n79->n10 + + + + +n79->n13 + + + + +n83 + + +~bool + + + + + +n79->n83 + + + + +n80 + + +~i1 + + + + + +n80->n10 + + + + +n80->n15 + + + + +n81->n79 + + + + +n92 + + +~u8 + + + + + +n81->n92 + + + + +n96 + + +~[1-255] + + + + + +n81->n96 + + + + +n82->n7 + + + + +n82->n8 + + + + +n83->n11 + + + + +n83->n17 + + + + +n83->n18 + + + + +n83->n82 + + + + +n84 + + +~u8 + + + + + +n84->n82 + + + + +n85 + + +~[1-255] + + + + + +n84->n85 + + + + +n85->n7 + + + + +n85->n140 + + + + +n85->n141 + + + + +n85->n142 + + + + +n86 + + +~[-255-0] + + + + + +n86->n82 + + + + +n87 + + +~[-255--1] + + + + + +n86->n87 + + + + +n87->n8 + + + + +n87->n26 + + + + +n88 + + +~u8 + + + + + +n88->n22 + + + + +n88->n84 + + + + +n89 + + +~[1-255] + + + + + +n88->n89 + + + + +n89->n11 + + + + +n89->n21 + + + + +n89->n85 + + + + +n90 + + +~[-255-0] + + + + + +n90->n11 + + + + +n90->n86 + + + + +n91 + + +~[-255--1] + + + + + +n90->n91 + + + + +n91->n23 + + + + +n91->n87 + + + + +n92->n83 + + + + +n92->n88 + + + + +n93 + + +~[1-255] + + + + + +n92->n93 + + + + +n93->n17 + + + + +n93->n89 + + + + +n94 + + +~[-255-0] + + + + + +n94->n16 + + + + +n94->n90 + + + + +n95 + + +~[-255--1] + + + + + +n94->n95 + + + + +n95->n19 + + + + +n95->n91 + + + + +n96->n69 + + + + +n96->n70 + + + + +n96->n71 + + + + +n96->n93 + + + + +n97->n80 + + + + +n97->n94 + + + + +n98 + + +~[-255--1] + + + + + +n97->n98 + + + + +n98->n15 + + + + +n98->n95 + + + + +n99->n29 + + + + +n100 + + +~f32 + + + + + +n99->n100 + + + + +n100->n28 + + + + +n101->n32 + + + + +n104 + + +~*test + + + + + +n101->n104 + + + + +n102->n74 + + + + +n102->n101 + + + + +n103 + + +~*test + + + + + +n103->n30 + + + + +n104->n103 + + + + +n110 + + +{~0} + + + + + +n105->n110 + + + + +n106 + + +{~b11} + + + + + +n106->n74 + + + + +n106->n105 + + + + +n107->n38 + + + + +n107->n40 + + + + +n107->n106 + + + + +n108 + + +{~ALL} + + + + + +n107->n108 + + + + +n109 + + +{~ALL} + + + + + +n107->n109 + + + + +n107->n114 + + + + +n108->n42 + + + + +n108->n74 + + + + +n108->n110 + + + + +n109->n36 + + + + +n109->n74 + + + + +n111 + + +{~0} + + + + + +n110->n111 + + + + +n111->n4 + + + + +n111->n36 + + + + +n112 + + +{~0} + + + + + +n112->n111 + + + + +n113 + + +{~0} + + + + + +n113->n37 + + + + +n113->n110 + + + + +n113->n112 + + + + +n114->n113 + + + + +n115 + + +{~0} + + + + + +n114->n115 + + + + +n115->n110 + + + + +n115->n112 + + + + +n116 + + +#2:~nil + + + + + +n116->n47 + + + + +n117->n47 + + + + +n118->n45 + + + + +n118->n46 + + + + +n118->n116 + + + + +n119 + + +test + + + + + +n119->n0 + + + + +n120->n119 + + + + +n121->n0 + + + + +n122->n52 + + + + +n122->n53 + + + + +n122->n54 + + + + +n122->n55 + + + + +n122->n62 + + + + +n123 + + +test + + + + + +n122->n123 + + + + +n124 + + +[]i64 + + + + + +n122->n124 + + + + +n125 + + +[]u8 + + + + + +n122->n125 + + + + +n126 + + +[]u8 + + + + + +n122->n126 + + + + +n127 + + +%SINT + + + + + +n122->n127 + + + + +n128 + + +%SFLT + + + + + +n122->n128 + + + + +n133 + + +calloc + + + + + +n122->n133 + + + + +n123->n51 + + + + +n124->n51 + + + + +n125->n51 + + + + +n126->n51 + + + + +n127->n61 + + + + +n129 + + +%SINT + + + + + +n127->n129 + + + + +n128->n60 + + + + +n130 + + +%SFLT + + + + + +n128->n130 + + + + +n132 + + +%SINT + + + + + +n129->n132 + + + + +n131 + + +%SFLT + + + + + +n130->n131 + + + + +n131->n57 + + + + +n132->n56 + + + + +n133->n51 + + + + +n134->n64 + + + + +n134->n65 + + + + +n134->n66 + + + + +n135 + + +[  ~i64, ~*test {~nil test; ... }] + + + + + +n134->n135 + + + + +n136 + + +[  ~Ctrl, MemBot, ~i64] + + + + + +n134->n136 + + + + +n137 + + +[  ~Ctrl, Ctrl] + + + + + +n134->n137 + + + + +n135->n63 + + + + +n136->n63 + + + + +n137->n63 + + + + +n138->n68 + + + + +n139 + + +$[-2] + + + + + +n138->n139 + + + + +n139->n67 + + + + +n140->n24 + + + + +n141->n24 + + + + +n142->n24 + + + + -- cgit v1.2.3