From 3090fb00b490da0a96a2c4e1076604b4a621184a Mon Sep 17 00:00:00 2001 From: Enrico Zandomeni Borba Date: Wed, 14 Aug 2024 15:25:52 +0200 Subject: [PATCH 1/2] WIP --- paper/HVM2.pdf | Bin 584462 -> 584466 bytes paper/HVM2.typst | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/HVM2.pdf b/paper/HVM2.pdf index dd6af723640afe2653962fc3eaffbd0b4f2f3065..454bff6c1b7345b9da2ce4ddc7b653886b0b6792 100644 GIT binary patch delta 5147 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 diff --git a/paper/HVM2.typst b/paper/HVM2.typst index aee0fb3d..0080dd0b 100644 --- a/paper/HVM2.typst +++ b/paper/HVM2.typst @@ -1185,7 +1185,7 @@ doesn't feature these yet. For example, a single-core C program that adds numbers from 0 to a few billions will easily outperform an HVM2 one that uses thousands of threads, given the C -version is doing no allocation, while C is allocating a tree-like recursive +version is doing no allocation, while HVM2 is allocating a tree-like recursive stack. That said, not every program can be implemented as an allocation-free, register-mutating loop. For real programs that allocate tons of short memory objects, HVM2 is expected to perform extremely well. From 4b534f86c10e5f000d1c48f73eb6411a60f2901e Mon Sep 17 00:00:00 2001 From: Enrico Zandomeni Borba Date: Thu, 15 Aug 2024 07:51:17 +0200 Subject: [PATCH 2/2] memory layout typos thanks @high-cloud (#396) --- paper/HVM2.pdf | Bin 584466 -> 584470 bytes paper/HVM2.typst | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/paper/HVM2.pdf b/paper/HVM2.pdf index 454bff6c1b7345b9da2ce4ddc7b653886b0b6792..da7df88f4ba3f88ee78376afbb3bd9191efc07d6 100644 GIT binary patch delta 4684 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 YS$TTh^t8332M!H^AbJrI)k|vs2R*uI*#H0l delta 4659 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 T)82sv*y|m{u!xHj_0;|a%2!)A diff --git a/paper/HVM2.typst b/paper/HVM2.typst index 0080dd0b..472d39c0 100644 --- a/paper/HVM2.typst +++ b/paper/HVM2.typst @@ -806,7 +806,7 @@ In HVM2's memory, it would be represented as: ``` RBAG | FST-TREE | SND-TREE ---- | -------- | -------- -0800 | CON 0001 | CON 0002 // '& (b a) ~ (x (y *))' +0800 | CON 0002 | CON 0003 // '& (b a) ~ (x (y *))' 1800 | DUP 0005 | REF 0000 // '& {x y} ~ @foo' ---- | -------- | -------- NODE | PORT-1 | PORT-2 @@ -814,7 +814,7 @@ NODE | PORT-1 | PORT-2 0001 | VAR 0000 | VAR 0001 // '(a b)' node (root) 0002 | VAR 0001 | VAR 0000 // '(b a)' node 0003 | VAR 0002 | CON 0004 // '(x (y *))' node -0004 | VAR 0003 | DUP 0000 // '(y *)' node +0004 | VAR 0003 | ERA 0000 // '(y *)' node 0005 | VAR 0003 | VAR 0002 // '{y x}' node ---- | -------- | -------- VARS | VALUE |