@@ -806,15 +806,15 @@ In HVM2's memory, it would be represented as:
806
806
```
807
807
RBAG | FST-TREE | SND-TREE
808
808
---- | -------- | --------
809
- 0800 | CON 0001 | CON 0002 // '& (b a) ~ (x (y *))'
809
+ 0800 | CON 0002 | CON 0003 // '& (b a) ~ (x (y *))'
810
810
1800 | DUP 0005 | REF 0000 // '& {x y} ~ @foo'
811
811
---- | -------- | --------
812
812
NODE | PORT-1 | PORT-2
813
813
---- | -------- | --------
814
814
0001 | VAR 0000 | VAR 0001 // '(a b)' node (root)
815
815
0002 | VAR 0001 | VAR 0000 // '(b a)' node
816
816
0003 | VAR 0002 | CON 0004 // '(x (y *))' node
817
- 0004 | VAR 0003 | DUP 0000 // '(y *)' node
817
+ 0004 | VAR 0003 | ERA 0000 // '(y *)' node
818
818
0005 | VAR 0003 | VAR 0002 // '{y x}' node
819
819
---- | -------- | --------
820
820
VARS | VALUE |
@@ -1185,7 +1185,7 @@ doesn't feature these yet.
1185
1185
1186
1186
For example, a single-core C program that adds numbers from 0 to a few billions
1187
1187
will easily outperform an HVM2 one that uses thousands of threads, given the C
1188
- version is doing no allocation, while C is allocating a tree-like recursive
1188
+ version is doing no allocation, while HVM2 is allocating a tree-like recursive
1189
1189
stack. That said, not every program can be implemented as an allocation-free,
1190
1190
register-mutating loop. For real programs that allocate tons of short memory
1191
1191
objects, HVM2 is expected to perform extremely well.
0 commit comments