diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-05-03 18:40:44 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-05-03 18:40:44 -0700 |
commit | a11d9c4a3375906bf8ae1117c6043776d2f08d17 (patch) | |
tree | 8667dc63b54aaf0853038f1e880e3ed314139fde | |
parent | 249a5672e41f603c8d705f69f2939a25a45685ff (diff) | |
download | mu-a11d9c4a3375906bf8ae1117c6043776d2f08d17.tar.gz |
1247
81 files changed, 1002 insertions, 992 deletions
diff --git a/cpp/.traces/array-from-args b/cpp/.traces/array-from-args index d033bb80..a9d4341f 100644 --- a/cpp/.traces/array-from-args +++ b/cpp/.traces/array-from-args @@ -24,7 +24,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: array-from-args run/0: instruction array-from-args/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:location <- init-array 0:literal, 1:literal, 2:literal 2:array:location <- copy 1:address:array:location/deref ", value: 0, type: 0, properties: [" @@ -45,7 +45,7 @@ after-brace/0: copy ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"location"]} <- init-array/114 {name: "0", value: 0, type: 0, properties: ["0": "literal"]}, {name: "1", value: 1, type: 0, properties: ["1": "literal"]}, {name: "2", value: 2, type: 0, properties: ["2": "literal"]} run/0: instruction init-array/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-array/1 @@ -53,7 +53,7 @@ run/0: {name: "capacity", value: 1, type: 1, properties: ["capacity": "integer"] run/0: ingredient 0 is 0 mem/0: storing 0 in location 1002 run/0: instruction init-array/3 -run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/29 +run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1003 mem/0: storing 1 in location 1004 @@ -74,7 +74,7 @@ run/0: loop/10 {name: "", value: -4, type: , properties: ["": ]} run/0: ingredient 0 is -4 run/0: jumping to instruction 3 run/0: instruction init-array/3 -run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/29 +run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1 mem/0: storing 1 in location 1003 mem/0: storing 1 in location 1004 @@ -95,7 +95,7 @@ run/0: loop/10 {name: "", value: -4, type: , properties: ["": ]} run/0: ingredient 0 is -4 run/0: jumping to instruction 3 run/0: instruction init-array/3 -run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/29 +run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: storing 2 in location 1003 mem/0: storing 1 in location 1004 @@ -116,7 +116,7 @@ run/0: loop/10 {name: "", value: -4, type: , properties: ["": ]} run/0: ingredient 0 is -4 run/0: jumping to instruction 3 run/0: instruction init-array/3 -run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/29 +run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1004 run/0: instruction init-array/4 run/0: break-unless/12 {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]}, {name: "", value: 2, type: , properties: ["": ]} @@ -125,13 +125,13 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction init-array/8 -run/0: {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 1, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 1, type: 1, properties: ["capacity": "integer"]} mem/0: location 1002 is 3 mem/0: array size is 3 mem/0: new alloc: 1031 mem/0: storing 1031 in location 1005 run/0: instruction init-array/9 -run/0: rewind-ingredients/30 +run/0: rewind-ingredients/31 run/0: instruction init-array/10 run/0: {name: "i", value: 5, type: 1, properties: ["i": "integer"]} <- copy/1 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: ingredient 0 is 0 @@ -150,7 +150,7 @@ mem/0: location 1007 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction init-array/14 -run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/29 +run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1003 mem/0: storing 1 in location 1004 @@ -159,7 +159,7 @@ run/0: assert/19 {name: "exists?", value: 3, type: 3, properties: ["exists?": "b run/0: ingredient 0 is exists? mem/0: location 1004 is 1 run/0: instruction init-array/16 -run/0: {name: "tmp", value: 7, type: 2-1, properties: ["tmp": "address":"location"]} <- index-address/26 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location", "deref": ]}, {name: "i", value: 5, type: 1, properties: ["i": "integer"]} +run/0: {name: "tmp", value: 7, type: 2-1, properties: ["tmp": "address":"location"]} <- index-address/27 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location", "deref": ]}, {name: "i", value: 5, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is result mem/0: location 1005 is 1031 run/0: ingredient 1 is {name: "i", value: 5, type: 1, properties: ["i": "integer"]} @@ -198,7 +198,7 @@ mem/0: location 1007 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction init-array/14 -run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/29 +run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1 mem/0: storing 1 in location 1003 mem/0: storing 1 in location 1004 @@ -207,7 +207,7 @@ run/0: assert/19 {name: "exists?", value: 3, type: 3, properties: ["exists?": "b run/0: ingredient 0 is exists? mem/0: location 1004 is 1 run/0: instruction init-array/16 -run/0: {name: "tmp", value: 7, type: 2-1, properties: ["tmp": "address":"location"]} <- index-address/26 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location", "deref": ]}, {name: "i", value: 5, type: 1, properties: ["i": "integer"]} +run/0: {name: "tmp", value: 7, type: 2-1, properties: ["tmp": "address":"location"]} <- index-address/27 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location", "deref": ]}, {name: "i", value: 5, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is result mem/0: location 1005 is 1031 run/0: ingredient 1 is {name: "i", value: 5, type: 1, properties: ["i": "integer"]} @@ -246,7 +246,7 @@ mem/0: location 1007 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction init-array/14 -run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/29 +run/0: {name: "curr-value", value: 2, type: 1, properties: ["curr-value": "location"]}, {name: "exists?", value: 3, type: 3, properties: ["exists?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: storing 2 in location 1003 mem/0: storing 1 in location 1004 @@ -255,7 +255,7 @@ run/0: assert/19 {name: "exists?", value: 3, type: 3, properties: ["exists?": "b run/0: ingredient 0 is exists? mem/0: location 1004 is 1 run/0: instruction init-array/16 -run/0: {name: "tmp", value: 7, type: 2-1, properties: ["tmp": "address":"location"]} <- index-address/26 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location", "deref": ]}, {name: "i", value: 5, type: 1, properties: ["i": "integer"]} +run/0: {name: "tmp", value: 7, type: 2-1, properties: ["tmp": "address":"location"]} <- index-address/27 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location", "deref": ]}, {name: "i", value: 5, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is result mem/0: location 1005 is 1031 run/0: ingredient 1 is {name: "i", value: 5, type: 1, properties: ["i": "integer"]} @@ -295,7 +295,7 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 20 run/0: instruction init-array/21 -run/0: reply/32 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location"]} +run/0: reply/33 {name: "result", value: 4, type: 2-5-1, properties: ["result": "address":"array":"location"]} mem/0: location 1005 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -312,7 +312,7 @@ mem/0: storing 0 in location 3 mem/0: storing 1 in location 4 mem/0: storing 2 in location 5 run/0: instruction array-from-args/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 3 # array length 3 <- 0 4 <- 1 diff --git a/cpp/.traces/array_length b/cpp/.traces/array_length index f78e0e12..514e67b5 100644 --- a/cpp/.traces/array_length +++ b/cpp/.traces/array_length @@ -38,5 +38,5 @@ run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- copy/1 {n run/0: ingredient 0 is 16 mem/0: storing 16 in location 4 run/0: instruction main/4 -run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- length/27 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]} +run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- length/28 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]} mem/0: storing 3 in location 5 diff --git a/cpp/.traces/buffer-append-works b/cpp/.traces/buffer-append-works index e24f3b69..1e974f80 100644 --- a/cpp/.traces/buffer-append-works +++ b/cpp/.traces/buffer-append-works @@ -116,7 +116,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: buffer-append-works run/0: instruction buffer-append-works/0 -run/0: run/42 {name: " +run/0: run/43 {name: " default-space:address:array:location <- new location:type, 30:literal x:address:buffer <- init-buffer 3:literal s1:address:array:character <- get x:address:buffer/deref, data:offset @@ -270,21 +270,21 @@ after-brace/0: equal ... after-brace/0: get ... after-brace/0: copy ... run/0: instruction run1001/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction run1001/1 run/0: {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]} <- init-buffer/101 {name: "3", value: 3, type: 0, properties: ["3": "literal"]} run/0: instruction init-buffer/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1031 run/0: instruction init-buffer/1 -run/0: {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} <- new/41 {name: "buffer", value: 9, type: 0, properties: ["buffer": "type"]} +run/0: {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} <- new/42 {name: "buffer", value: 9, type: 0, properties: ["buffer": "type"]} mem/0: new alloc: 1062 mem/0: storing 1062 in location 1033 run/0: instruction init-buffer/2 -run/0: {name: "len", value: 2, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is result mem/0: location 1033 is 1062 run/0: ingredient 1 is length @@ -297,7 +297,7 @@ run/0: ingredient 0 is 0 mem/0: location 1034 is 1062 mem/0: storing 0 in location 1062 run/0: instruction init-buffer/4 -run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character"]} <- get-address/24 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character"]} <- get-address/25 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1033 is 1062 run/0: ingredient 1 is data @@ -305,23 +305,23 @@ run/0: address to copy is 1063 run/0: product 0 is 1063 mem/0: storing 1063 in location 1035 run/0: instruction init-buffer/5 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: storing 3 in location 1036 run/0: instruction init-buffer/6 -run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character", "deref": ]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character", "deref": ]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1036 is 3 mem/0: array size is 3 mem/0: new alloc: 1064 mem/0: location 1035 is 1063 mem/0: storing 1064 in location 1063 run/0: instruction init-buffer/7 -run/0: reply/32 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} +run/0: reply/33 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} mem/0: location 1033 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1002 run/0: instruction run1001/2 -run/0: {name: "s1", value: 2, type: 2-5-4, properties: ["s1": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s1", value: 2, type: 2-5-4, properties: ["s1": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1002 is 1062 run/0: ingredient 1 is data @@ -334,30 +334,30 @@ run/0: instruction run1001/3 run/0: {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]} <- buffer-append/104 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]}, {name: "97", value: 97, type: 0, properties: ["97": "literal"]} mem/0: location 1002 is 1062 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1068 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1070 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 97 mem/0: storing 97 in location 1071 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1070 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1099 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1101 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1101 is 1062 run/0: ingredient 1 is length @@ -367,7 +367,7 @@ mem/0: location 1062 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1102 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1101 is 1062 run/0: ingredient 1 is data @@ -377,7 +377,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1103 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1103 is 1064 mem/0: storing 3 in location 1104 run/0: instruction buffer-full?/5 @@ -389,7 +389,7 @@ mem/0: location 1104 is 3 run/0: product 0 is 0 mem/0: storing 0 in location 1105 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1105 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1072 @@ -400,7 +400,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1070 is 1062 run/0: ingredient 1 is length @@ -408,7 +408,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1073 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1070 is 1062 run/0: ingredient 1 is data @@ -418,7 +418,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1074 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1074 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -443,7 +443,7 @@ run/0: product 0 is 1 mem/0: location 1073 is 1062 mem/0: storing 1 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1070 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1002 @@ -451,30 +451,30 @@ run/0: instruction run1001/4 run/0: {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]} <- buffer-append/104 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]}, {name: "98", value: 98, type: 0, properties: ["98": "literal"]} mem/0: location 1002 is 1062 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1130 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1132 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 98 mem/0: storing 98 in location 1133 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1132 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1161 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1163 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1163 is 1062 run/0: ingredient 1 is length @@ -484,7 +484,7 @@ mem/0: location 1062 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 1164 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1163 is 1062 run/0: ingredient 1 is data @@ -494,7 +494,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1165 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1165 is 1064 mem/0: storing 3 in location 1166 run/0: instruction buffer-full?/5 @@ -506,7 +506,7 @@ mem/0: location 1166 is 3 run/0: product 0 is 0 mem/0: storing 0 in location 1167 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1167 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1134 @@ -517,7 +517,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1132 is 1062 run/0: ingredient 1 is length @@ -525,7 +525,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1135 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1132 is 1062 run/0: ingredient 1 is data @@ -535,7 +535,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1136 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1136 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -560,7 +560,7 @@ run/0: product 0 is 2 mem/0: location 1135 is 1062 mem/0: storing 2 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1132 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1002 @@ -568,30 +568,30 @@ run/0: instruction run1001/5 run/0: {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]} <- buffer-append/104 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]}, {name: "99", value: 99, type: 0, properties: ["99": "literal"]} mem/0: location 1002 is 1062 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1192 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1194 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 99 mem/0: storing 99 in location 1195 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1194 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1223 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1225 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1225 is 1062 run/0: ingredient 1 is length @@ -601,7 +601,7 @@ mem/0: location 1062 is 2 run/0: product 0 is 2 mem/0: storing 2 in location 1226 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1225 is 1062 run/0: ingredient 1 is data @@ -611,7 +611,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1227 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1227 is 1064 mem/0: storing 3 in location 1228 run/0: instruction buffer-full?/5 @@ -623,7 +623,7 @@ mem/0: location 1228 is 3 run/0: product 0 is 0 mem/0: storing 0 in location 1229 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1229 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1196 @@ -634,7 +634,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1194 is 1062 run/0: ingredient 1 is length @@ -642,7 +642,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1197 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1194 is 1062 run/0: ingredient 1 is data @@ -652,7 +652,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1198 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1198 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -677,12 +677,12 @@ run/0: product 0 is 3 mem/0: location 1197 is 1062 mem/0: storing 3 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1194 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1002 run/0: instruction run1001/6 -run/0: {name: "s2", value: 3, type: 2-5-4, properties: ["s2": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s2", value: 3, type: 2-5-4, properties: ["s2": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1002 is 1062 run/0: ingredient 1 is data @@ -715,30 +715,30 @@ run/0: instruction run1001/10 run/0: {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]} <- buffer-append/104 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer"]}, {name: "100", value: 100, type: 0, properties: ["100": "literal"]} mem/0: location 1002 is 1062 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1254 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1256 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 100 mem/0: storing 100 in location 1257 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1256 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1285 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1287 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1287 is 1062 run/0: ingredient 1 is length @@ -748,7 +748,7 @@ mem/0: location 1062 is 3 run/0: product 0 is 3 mem/0: storing 3 in location 1288 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1287 is 1062 run/0: ingredient 1 is data @@ -758,7 +758,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1289 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1289 is 1064 mem/0: storing 3 in location 1290 run/0: instruction buffer-full?/5 @@ -770,7 +770,7 @@ mem/0: location 1290 is 3 run/0: product 0 is 1 mem/0: storing 1 in location 1291 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1291 is 1 run/0: result 0 is 1 mem/0: storing 1 in location 1258 @@ -783,15 +783,15 @@ run/0: instruction buffer-append/6 run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- grow-buffer/102 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1256 is 1062 run/0: instruction grow-buffer/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1316 run/0: instruction grow-buffer/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1318 run/0: instruction grow-buffer/2 -run/0: {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1318 is 1062 run/0: ingredient 1 is data @@ -799,7 +799,7 @@ run/0: address to copy is 1063 run/0: product 0 is 1063 mem/0: storing 1063 in location 1319 run/0: instruction grow-buffer/3 -run/0: {name: "oldlen", value: 3, type: 1, properties: ["oldlen": "integer"]} <- length/27 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]} +run/0: {name: "oldlen", value: 3, type: 1, properties: ["oldlen": "integer"]} <- length/28 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]} mem/0: location 1319 is 1063 mem/0: location 1063 is 1064 mem/0: storing 3 in location 1320 @@ -818,7 +818,7 @@ mem/0: location 1319 is 1063 mem/0: location 1063 is 1064 mem/0: storing 1064 in location 1322 run/0: instruction grow-buffer/6 -run/0: {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": ]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "newlen", value: 4, type: 1, properties: ["newlen": "integer"]} +run/0: {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": ]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "newlen", value: 4, type: 1, properties: ["newlen": "integer"]} mem/0: location 1321 is 6 mem/0: array size is 6 mem/0: new alloc: 1347 @@ -842,7 +842,7 @@ mem/0: location 1324 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction grow-buffer/11 -run/0: {name: "src", value: 8, type: 4, properties: ["src": "character"]} <- index/25 {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 8, type: 4, properties: ["src": "character"]} <- index/26 {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]} mem/0: location 1322 is 1064 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -853,7 +853,7 @@ mem/0: location 1065 is 97 run/0: product 0 is 97 mem/0: storing 97 in location 1325 run/0: instruction grow-buffer/12 -run/0: {name: "dest", value: 9, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "dest", value: 9, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is x mem/0: location 1319 is 1063 mem/0: location 1063 is 1347 @@ -893,7 +893,7 @@ mem/0: location 1324 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction grow-buffer/11 -run/0: {name: "src", value: 8, type: 4, properties: ["src": "character"]} <- index/25 {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 8, type: 4, properties: ["src": "character"]} <- index/26 {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]} mem/0: location 1322 is 1064 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -904,7 +904,7 @@ mem/0: location 1066 is 98 run/0: product 0 is 98 mem/0: storing 98 in location 1325 run/0: instruction grow-buffer/12 -run/0: {name: "dest", value: 9, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "dest", value: 9, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is x mem/0: location 1319 is 1063 mem/0: location 1063 is 1347 @@ -944,7 +944,7 @@ mem/0: location 1324 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction grow-buffer/11 -run/0: {name: "src", value: 8, type: 4, properties: ["src": "character"]} <- index/25 {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 8, type: 4, properties: ["src": "character"]} <- index/26 {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "olddata", value: 5, type: 2-5-4, properties: ["olddata": "address":"array":"character", "deref": ]} mem/0: location 1322 is 1064 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -955,7 +955,7 @@ mem/0: location 1067 is 99 run/0: product 0 is 99 mem/0: storing 99 in location 1325 run/0: instruction grow-buffer/12 -run/0: {name: "dest", value: 9, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "dest", value: 9, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "x", value: 2, type: 2-2-5-4, properties: ["x": "address":"address":"array":"character", "deref": , "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is x mem/0: location 1319 is 1063 mem/0: location 1063 is 1347 @@ -996,12 +996,12 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 16 run/0: instruction grow-buffer/17 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1318 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1256 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1256 is 1062 run/0: ingredient 1 is length @@ -1009,7 +1009,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1259 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1256 is 1062 run/0: ingredient 1 is data @@ -1019,7 +1019,7 @@ mem/0: location 1063 is 1347 run/0: product 0 is 1347 mem/0: storing 1347 in location 1260 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1260 is 1347 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -1044,12 +1044,12 @@ run/0: product 0 is 4 mem/0: location 1259 is 1062 mem/0: storing 4 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1256 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1002 run/0: instruction run1001/11 -run/0: {name: "s3", value: 4, type: 2-5-4, properties: ["s3": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s3", value: 4, type: 2-5-4, properties: ["s3": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1002 is 1062 run/0: ingredient 1 is data @@ -1067,7 +1067,7 @@ mem/0: location 1005 is 1347 run/0: product 0 is 0 mem/0: storing 0 in location 10 run/0: instruction run1001/13 -run/0: {name: "11", value: 11, type: 1, properties: ["11": "integer", "raw": ]} <- get/23 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "11", value: 11, type: 1, properties: ["11": "integer", "raw": ]} <- get/24 {name: "x", value: 1, type: 2-9, properties: ["x": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is x mem/0: location 1002 is 1062 run/0: ingredient 1 is length @@ -1095,7 +1095,7 @@ mem/0: storing 100 in location 16 mem/0: storing 0 in location 17 mem/0: storing 0 in location 18 run/0: instruction buffer-append-works/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " # before +buffer-filled 1 <- 1 # no change in data pointer 2 <- 3 # size of data diff --git a/cpp/.traces/channel b/cpp/.traces/channel index 59294c41..4af4241c 100644 --- a/cpp/.traces/channel +++ b/cpp/.traces/channel @@ -20,7 +20,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel run/0: instruction channel/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 3:literal/capacity 1:address:channel <- write 1:address:channel, 34:literal 2:integer, 1:address:channel <- read 1:address:channel @@ -47,15 +47,15 @@ after-brace/0: read ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "3", value: 3, type: 0, properties: ["3": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -68,7 +68,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -81,7 +81,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: storing 3 in location 1005 run/0: instruction init-channel/7 @@ -92,7 +92,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 4 mem/0: storing 4 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -100,14 +100,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 4 mem/0: array size is 4 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -115,30 +115,30 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1039 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1041 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1042 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1041 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1070 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1072 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-free @@ -158,15 +158,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1072 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1101 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1103 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1103 is 1031 run/0: ingredient 1 is data @@ -176,11 +176,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1104 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1104 is 1034 mem/0: storing 4 in location 1105 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1105 is 4 run/0: result 0 is 4 mem/0: storing 4 in location 1074 @@ -199,7 +199,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-full @@ -217,7 +217,7 @@ mem/0: location 1073 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1077 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1077 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1043 @@ -228,7 +228,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is data @@ -238,7 +238,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1045 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is first-free @@ -246,7 +246,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1046 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1045 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -271,7 +271,7 @@ run/0: product 0 is 1 mem/0: location 1046 is 1032 mem/0: storing 1 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1045 is 1034 mem/0: storing 4 in location 1048 run/0: instruction write/16 @@ -290,7 +290,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 19 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1041 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -298,26 +298,26 @@ run/0: instruction run1001/2 run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]}, {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- read/111 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction read/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1132 run/0: instruction read/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1134 run/0: instruction read/3 run/0: {name: "empty", value: 2, type: 3, properties: ["empty": "boolean"]} <- channel-empty?/112 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1134 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1163 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1165 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1165 is 1031 run/0: ingredient 1 is first-full @@ -327,7 +327,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1166 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1165 is 1031 run/0: ingredient 1 is first-free @@ -345,7 +345,7 @@ mem/0: location 1167 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1168 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1168 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1135 @@ -356,7 +356,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction read/8 -run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1134 is 1031 run/0: ingredient 1 is first-full @@ -364,7 +364,7 @@ run/0: address to copy is 1031 run/0: product 0 is 1031 mem/0: storing 1031 in location 1137 run/0: instruction read/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1134 is 1031 run/0: ingredient 1 is data @@ -374,7 +374,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1138 run/0: instruction read/10 -run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/25 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} +run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} run/0: ingredient 0 is {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1138 is 1034 run/0: ingredient 1 is {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} @@ -395,7 +395,7 @@ run/0: product 0 is 1 mem/0: location 1137 is 1031 mem/0: storing 1 in location 1031 run/0: instruction read/13 -run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1138 is 1034 mem/0: storing 4 in location 1140 run/0: instruction read/14 @@ -414,7 +414,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 17 run/0: instruction read/18 -run/0: reply/32 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1139 is 34 mem/0: location 1134 is 1031 run/0: result 0 is 34 @@ -422,7 +422,7 @@ mem/0: storing 34 in location 2 run/0: result 1 is 1031 mem/0: storing 1031 in location 1 run/0: instruction channel/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 34 ", value: 0, type: 0, properties: [" 2 <- 34 diff --git a/cpp/.traces/channel-initialization b/cpp/.traces/channel-initialization index 256d270c..87f54f41 100644 --- a/cpp/.traces/channel-initialization +++ b/cpp/.traces/channel-initialization @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-initialization run/0: instruction channel-initialization/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 3:literal/capacity 2:integer <- get 1:address:channel/deref, first-full:offset 3:integer <- get 1:address:channel/deref, first-free:offset @@ -51,15 +51,15 @@ after-brace/0: get ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "3", value: 3, type: 0, properties: ["3": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -72,7 +72,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -85,7 +85,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: storing 3 in location 1005 run/0: instruction init-channel/7 @@ -96,7 +96,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 4 mem/0: storing 4 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -104,19 +104,19 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 4 mem/0: array size is 4 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/1 -run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-full @@ -126,7 +126,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 2 run/0: instruction run1001/2 -run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-free @@ -136,7 +136,7 @@ mem/0: location 1032 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 3 run/0: instruction channel-initialization/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 0 # first-full 3 <- 0 # first-free ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/channel-new-empty-not-full b/cpp/.traces/channel-new-empty-not-full index 91ff45d3..dbf18483 100644 --- a/cpp/.traces/channel-new-empty-not-full +++ b/cpp/.traces/channel-new-empty-not-full @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-new-empty-not-full run/0: instruction channel-new-empty-not-full/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 3:literal/capacity 2:integer <- channel-empty? 1:address:channel 3:integer <- channel-full? 1:address:channel @@ -47,15 +47,15 @@ after-brace/0: channel-full? ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "3", value: 3, type: 0, properties: ["3": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -68,7 +68,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -81,7 +81,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: storing 3 in location 1005 run/0: instruction init-channel/7 @@ -92,7 +92,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 4 mem/0: storing 4 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -100,14 +100,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 4 mem/0: array size is 4 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -115,15 +115,15 @@ run/0: instruction run1001/1 run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- channel-empty?/112 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1039 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1041 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is first-full @@ -133,7 +133,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1042 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is first-free @@ -151,7 +151,7 @@ mem/0: location 1043 is 0 run/0: product 0 is 1 mem/0: storing 1 in location 1044 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1044 is 1 run/0: result 0 is 1 mem/0: storing 1 in location 2 @@ -159,15 +159,15 @@ run/0: instruction run1001/2 run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- channel-full?/110 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1070 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1072 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-free @@ -187,15 +187,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1072 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1101 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1103 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1103 is 1031 run/0: ingredient 1 is data @@ -205,11 +205,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1104 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1104 is 1034 mem/0: storing 4 in location 1105 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1105 is 4 run/0: result 0 is 4 mem/0: storing 4 in location 1074 @@ -228,7 +228,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-full @@ -246,12 +246,12 @@ mem/0: location 1073 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1077 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1077 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 3 run/0: instruction channel-new-empty-not-full/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 1 # empty? 3 <- 0 # full? ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/channel-read-increments-full b/cpp/.traces/channel-read-increments-full index 45a2a88a..9d8de61f 100644 --- a/cpp/.traces/channel-read-increments-full +++ b/cpp/.traces/channel-read-increments-full @@ -26,7 +26,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-read-increments-full run/0: instruction channel-read-increments-full/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 3:literal/capacity 1:address:channel <- write 1:address:channel, 34:literal _, 1:address:channel <- read 1:address:channel @@ -69,15 +69,15 @@ after-brace/0: get ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "3", value: 3, type: 0, properties: ["3": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -90,7 +90,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -103,7 +103,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: storing 3 in location 1005 run/0: instruction init-channel/7 @@ -114,7 +114,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 4 mem/0: storing 4 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -122,14 +122,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 4 mem/0: array size is 4 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -137,30 +137,30 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1039 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1041 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1042 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1041 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1070 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1072 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-free @@ -180,15 +180,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1072 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1101 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1103 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1103 is 1031 run/0: ingredient 1 is data @@ -198,11 +198,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1104 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1104 is 1034 mem/0: storing 4 in location 1105 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1105 is 4 run/0: result 0 is 4 mem/0: storing 4 in location 1074 @@ -221,7 +221,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-full @@ -239,7 +239,7 @@ mem/0: location 1073 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1077 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1077 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1043 @@ -250,7 +250,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is data @@ -260,7 +260,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1045 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is first-free @@ -268,7 +268,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1046 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1045 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -293,7 +293,7 @@ run/0: product 0 is 1 mem/0: location 1046 is 1032 mem/0: storing 1 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1045 is 1034 mem/0: storing 4 in location 1048 run/0: instruction write/16 @@ -312,7 +312,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 19 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1041 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -320,26 +320,26 @@ run/0: instruction run1001/2 run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- read/111 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction read/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1132 run/0: instruction read/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1134 run/0: instruction read/3 run/0: {name: "empty", value: 2, type: 3, properties: ["empty": "boolean"]} <- channel-empty?/112 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1134 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1163 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1165 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1165 is 1031 run/0: ingredient 1 is first-full @@ -349,7 +349,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1166 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1165 is 1031 run/0: ingredient 1 is first-free @@ -367,7 +367,7 @@ mem/0: location 1167 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1168 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1168 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1135 @@ -378,7 +378,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction read/8 -run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1134 is 1031 run/0: ingredient 1 is first-full @@ -386,7 +386,7 @@ run/0: address to copy is 1031 run/0: product 0 is 1031 mem/0: storing 1031 in location 1137 run/0: instruction read/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1134 is 1031 run/0: ingredient 1 is data @@ -396,7 +396,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1138 run/0: instruction read/10 -run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/25 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} +run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} run/0: ingredient 0 is {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1138 is 1034 run/0: ingredient 1 is {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} @@ -417,7 +417,7 @@ run/0: product 0 is 1 mem/0: location 1137 is 1031 mem/0: storing 1 in location 1031 run/0: instruction read/13 -run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1138 is 1034 mem/0: storing 4 in location 1140 run/0: instruction read/14 @@ -436,14 +436,14 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 17 run/0: instruction read/18 -run/0: reply/32 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1139 is 34 mem/0: location 1134 is 1031 run/0: result 0 is 34 run/0: result 1 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/3 -run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-full @@ -453,7 +453,7 @@ mem/0: location 1031 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 2 run/0: instruction run1001/4 -run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-free @@ -463,7 +463,7 @@ mem/0: location 1032 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 3 run/0: instruction channel-read-increments-full/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 1 # first-full 3 <- 1 # first-free ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/channel-read-not-full b/cpp/.traces/channel-read-not-full index 69379ea9..f17dd812 100644 --- a/cpp/.traces/channel-read-not-full +++ b/cpp/.traces/channel-read-not-full @@ -26,7 +26,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-read-not-full run/0: instruction channel-read-not-full/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 1:literal/capacity 1:address:channel <- write 1:address:channel, 34:literal _, 1:address:channel <- read 1:address:channel @@ -65,15 +65,15 @@ after-brace/0: channel-full? ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "1", value: 1, type: 0, properties: ["1": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -86,7 +86,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -99,7 +99,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 1 mem/0: storing 1 in location 1005 run/0: instruction init-channel/7 @@ -110,7 +110,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 2 mem/0: storing 2 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -118,14 +118,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 2 mem/0: array size is 2 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -133,30 +133,30 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1037 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1039 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1040 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1039 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1068 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1070 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1070 is 1031 run/0: ingredient 1 is first-free @@ -176,15 +176,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1070 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1099 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1101 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1101 is 1031 run/0: ingredient 1 is data @@ -194,11 +194,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1102 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1102 is 1034 mem/0: storing 2 in location 1103 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1103 is 2 run/0: result 0 is 2 mem/0: storing 2 in location 1072 @@ -217,7 +217,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1070 is 1031 run/0: ingredient 1 is first-full @@ -235,7 +235,7 @@ mem/0: location 1071 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1075 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1075 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1041 @@ -246,7 +246,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1039 is 1031 run/0: ingredient 1 is data @@ -256,7 +256,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1043 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1039 is 1031 run/0: ingredient 1 is first-free @@ -264,7 +264,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1044 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1043 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -289,7 +289,7 @@ run/0: product 0 is 1 mem/0: location 1044 is 1032 mem/0: storing 1 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1043 is 1034 mem/0: storing 2 in location 1046 run/0: instruction write/16 @@ -308,7 +308,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 19 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1039 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -316,26 +316,26 @@ run/0: instruction run1001/2 run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- read/111 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction read/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1130 run/0: instruction read/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1132 run/0: instruction read/3 run/0: {name: "empty", value: 2, type: 3, properties: ["empty": "boolean"]} <- channel-empty?/112 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1132 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1161 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1163 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1163 is 1031 run/0: ingredient 1 is first-full @@ -345,7 +345,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1164 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1163 is 1031 run/0: ingredient 1 is first-free @@ -363,7 +363,7 @@ mem/0: location 1165 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1166 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1166 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1133 @@ -374,7 +374,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction read/8 -run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1132 is 1031 run/0: ingredient 1 is first-full @@ -382,7 +382,7 @@ run/0: address to copy is 1031 run/0: product 0 is 1031 mem/0: storing 1031 in location 1135 run/0: instruction read/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1132 is 1031 run/0: ingredient 1 is data @@ -392,7 +392,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1136 run/0: instruction read/10 -run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/25 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} +run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} run/0: ingredient 0 is {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1136 is 1034 run/0: ingredient 1 is {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} @@ -413,7 +413,7 @@ run/0: product 0 is 1 mem/0: location 1135 is 1031 mem/0: storing 1 in location 1031 run/0: instruction read/13 -run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1136 is 1034 mem/0: storing 2 in location 1138 run/0: instruction read/14 @@ -432,7 +432,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 17 run/0: instruction read/18 -run/0: reply/32 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1137 is 34 mem/0: location 1132 is 1031 run/0: result 0 is 34 @@ -442,15 +442,15 @@ run/0: instruction run1001/3 run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- channel-empty?/112 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1192 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1194 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1194 is 1031 run/0: ingredient 1 is first-full @@ -460,7 +460,7 @@ mem/0: location 1031 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 1195 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1194 is 1031 run/0: ingredient 1 is first-free @@ -478,7 +478,7 @@ mem/0: location 1196 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 1197 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1197 is 1 run/0: result 0 is 1 mem/0: storing 1 in location 2 @@ -486,15 +486,15 @@ run/0: instruction run1001/4 run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- channel-full?/110 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1223 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1225 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1225 is 1031 run/0: ingredient 1 is first-free @@ -514,15 +514,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1225 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1254 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1256 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1256 is 1031 run/0: ingredient 1 is data @@ -532,11 +532,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1257 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1257 is 1034 mem/0: storing 2 in location 1258 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1258 is 2 run/0: result 0 is 2 mem/0: storing 2 in location 1227 @@ -558,7 +558,7 @@ run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- copy/ run/0: ingredient 0 is 0 mem/0: storing 0 in location 1226 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1225 is 1031 run/0: ingredient 1 is first-full @@ -576,12 +576,12 @@ mem/0: location 1226 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1230 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1230 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 3 run/0: instruction channel-read-not-full/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 1 # empty? 3 <- 0 # full? ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/channel-wrap b/cpp/.traces/channel-wrap index 04a7cd13..dc636db0 100644 --- a/cpp/.traces/channel-wrap +++ b/cpp/.traces/channel-wrap @@ -48,7 +48,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-wrap run/0: instruction channel-wrap/0 -run/0: run/42 {name: " +run/0: run/43 {name: " # channel with just 1 slot 1:address:channel <- init-channel 1:literal/capacity # write and read a value @@ -131,15 +131,15 @@ after-brace/0: get ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "1", value: 1, type: 0, properties: ["1": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -152,7 +152,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -165,7 +165,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 1 mem/0: storing 1 in location 1005 run/0: instruction init-channel/7 @@ -176,7 +176,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 2 mem/0: storing 2 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -184,14 +184,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 2 mem/0: array size is 2 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -199,30 +199,30 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1037 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1039 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1040 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1039 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1068 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1070 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1070 is 1031 run/0: ingredient 1 is first-free @@ -242,15 +242,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1070 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1099 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1101 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1101 is 1031 run/0: ingredient 1 is data @@ -260,11 +260,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1102 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1102 is 1034 mem/0: storing 2 in location 1103 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1103 is 2 run/0: result 0 is 2 mem/0: storing 2 in location 1072 @@ -283,7 +283,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1070 is 1031 run/0: ingredient 1 is first-full @@ -301,7 +301,7 @@ mem/0: location 1071 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1075 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1075 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1041 @@ -312,7 +312,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1039 is 1031 run/0: ingredient 1 is data @@ -322,7 +322,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1043 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1039 is 1031 run/0: ingredient 1 is first-free @@ -330,7 +330,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1044 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1043 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -355,7 +355,7 @@ run/0: product 0 is 1 mem/0: location 1044 is 1032 mem/0: storing 1 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1043 is 1034 mem/0: storing 2 in location 1046 run/0: instruction write/16 @@ -374,7 +374,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 19 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1039 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -382,26 +382,26 @@ run/0: instruction run1001/2 run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- read/111 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction read/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1130 run/0: instruction read/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1132 run/0: instruction read/3 run/0: {name: "empty", value: 2, type: 3, properties: ["empty": "boolean"]} <- channel-empty?/112 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1132 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1161 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1163 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1163 is 1031 run/0: ingredient 1 is first-full @@ -411,7 +411,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1164 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1163 is 1031 run/0: ingredient 1 is first-free @@ -429,7 +429,7 @@ mem/0: location 1165 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1166 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1166 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1133 @@ -440,7 +440,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction read/8 -run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1132 is 1031 run/0: ingredient 1 is first-full @@ -448,7 +448,7 @@ run/0: address to copy is 1031 run/0: product 0 is 1031 mem/0: storing 1031 in location 1135 run/0: instruction read/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1132 is 1031 run/0: ingredient 1 is data @@ -458,7 +458,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1136 run/0: instruction read/10 -run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/25 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} +run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} run/0: ingredient 0 is {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1136 is 1034 run/0: ingredient 1 is {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} @@ -479,7 +479,7 @@ run/0: product 0 is 1 mem/0: location 1135 is 1031 mem/0: storing 1 in location 1031 run/0: instruction read/13 -run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1136 is 1034 mem/0: storing 2 in location 1138 run/0: instruction read/14 @@ -498,14 +498,14 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 17 run/0: instruction read/18 -run/0: reply/32 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1137 is 34 mem/0: location 1132 is 1031 run/0: result 0 is 34 run/0: result 1 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/3 -run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-free @@ -515,7 +515,7 @@ mem/0: location 1032 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 2 run/0: instruction run1001/4 -run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-free @@ -528,30 +528,30 @@ run/0: instruction run1001/5 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1192 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1194 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1195 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1194 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1223 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1225 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1225 is 1031 run/0: ingredient 1 is first-free @@ -571,15 +571,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1225 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1254 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1256 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1256 is 1031 run/0: ingredient 1 is data @@ -589,11 +589,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1257 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1257 is 1034 mem/0: storing 2 in location 1258 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1258 is 2 run/0: result 0 is 2 mem/0: storing 2 in location 1227 @@ -615,7 +615,7 @@ run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- copy/ run/0: ingredient 0 is 0 mem/0: storing 0 in location 1226 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1225 is 1031 run/0: ingredient 1 is first-full @@ -633,7 +633,7 @@ mem/0: location 1226 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1230 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1230 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1196 @@ -644,7 +644,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1194 is 1031 run/0: ingredient 1 is data @@ -654,7 +654,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1198 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1194 is 1031 run/0: ingredient 1 is first-free @@ -662,7 +662,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1199 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1198 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -687,7 +687,7 @@ run/0: product 0 is 2 mem/0: location 1199 is 1032 mem/0: storing 2 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1198 is 1034 mem/0: storing 2 in location 1201 run/0: instruction write/16 @@ -710,12 +710,12 @@ run/0: ingredient 0 is 0 mem/0: location 1199 is 1032 mem/0: storing 0 in location 1032 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1194 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/6 -run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-free @@ -728,26 +728,26 @@ run/0: instruction run1001/7 run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- read/111 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction read/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1285 run/0: instruction read/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1287 run/0: instruction read/3 run/0: {name: "empty", value: 2, type: 3, properties: ["empty": "boolean"]} <- channel-empty?/112 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1287 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1316 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1318 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1318 is 1031 run/0: ingredient 1 is first-full @@ -757,7 +757,7 @@ mem/0: location 1031 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 1319 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1318 is 1031 run/0: ingredient 1 is first-free @@ -775,7 +775,7 @@ mem/0: location 1320 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1321 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1321 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1288 @@ -786,7 +786,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction read/8 -run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1287 is 1031 run/0: ingredient 1 is first-full @@ -794,7 +794,7 @@ run/0: address to copy is 1031 run/0: product 0 is 1031 mem/0: storing 1031 in location 1290 run/0: instruction read/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1287 is 1031 run/0: ingredient 1 is data @@ -804,7 +804,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1291 run/0: instruction read/10 -run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/25 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} +run/0: {name: "result", value: 6, type: 1, properties: ["result": "location"]} <- index/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} run/0: ingredient 0 is {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1291 is 1034 run/0: ingredient 1 is {name: "full", value: 4, type: 2-1, properties: ["full": "address":"integer", "deref": ]} @@ -825,7 +825,7 @@ run/0: product 0 is 2 mem/0: location 1290 is 1031 mem/0: storing 2 in location 1031 run/0: instruction read/13 -run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 7, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1291 is 1034 mem/0: storing 2 in location 1293 run/0: instruction read/14 @@ -848,14 +848,14 @@ run/0: ingredient 0 is 0 mem/0: location 1290 is 1031 mem/0: storing 0 in location 1031 run/0: instruction read/18 -run/0: reply/32 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "result", value: 6, type: 1, properties: ["result": "location"]}, {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1292 is 34 mem/0: location 1287 is 1031 run/0: result 0 is 34 run/0: result 1 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/8 -run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-full @@ -865,7 +865,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 5 run/0: instruction channel-wrap/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 1 # first-free after first write 3 <- 1 # first-full after first read 4 <- 0 # first-free after second write, wrapped diff --git a/cpp/.traces/channel-write-full b/cpp/.traces/channel-write-full index 1487727c..2f602df1 100644 --- a/cpp/.traces/channel-write-full +++ b/cpp/.traces/channel-write-full @@ -24,7 +24,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-write-full run/0: instruction channel-write-full/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 1:literal/capacity 1:address:channel <- write 1:address:channel, 34:literal 2:integer <- channel-empty? 1:address:channel @@ -56,15 +56,15 @@ after-brace/0: channel-full? ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "1", value: 1, type: 0, properties: ["1": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -77,7 +77,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -90,7 +90,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 1 mem/0: storing 1 in location 1005 run/0: instruction init-channel/7 @@ -101,7 +101,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 2 mem/0: storing 2 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -109,14 +109,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 2 mem/0: array size is 2 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -124,30 +124,30 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1037 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1039 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1040 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1039 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1068 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1070 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1070 is 1031 run/0: ingredient 1 is first-free @@ -167,15 +167,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1070 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1099 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1101 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1101 is 1031 run/0: ingredient 1 is data @@ -185,11 +185,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1102 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1102 is 1034 mem/0: storing 2 in location 1103 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1103 is 2 run/0: result 0 is 2 mem/0: storing 2 in location 1072 @@ -208,7 +208,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1070 is 1031 run/0: ingredient 1 is first-full @@ -226,7 +226,7 @@ mem/0: location 1071 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1075 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1075 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1041 @@ -237,7 +237,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1039 is 1031 run/0: ingredient 1 is data @@ -247,7 +247,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1043 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1039 is 1031 run/0: ingredient 1 is first-free @@ -255,7 +255,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1044 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1043 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -280,7 +280,7 @@ run/0: product 0 is 1 mem/0: location 1044 is 1032 mem/0: storing 1 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1043 is 1034 mem/0: storing 2 in location 1046 run/0: instruction write/16 @@ -299,7 +299,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 19 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1039 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -307,15 +307,15 @@ run/0: instruction run1001/2 run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- channel-empty?/112 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1130 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1132 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1132 is 1031 run/0: ingredient 1 is first-full @@ -325,7 +325,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1133 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1132 is 1031 run/0: ingredient 1 is first-free @@ -343,7 +343,7 @@ mem/0: location 1134 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1135 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1135 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 2 @@ -351,15 +351,15 @@ run/0: instruction run1001/3 run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- channel-full?/110 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1161 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1163 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1163 is 1031 run/0: ingredient 1 is first-free @@ -379,15 +379,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1163 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1192 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1194 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1194 is 1031 run/0: ingredient 1 is data @@ -397,11 +397,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1195 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1195 is 1034 mem/0: storing 2 in location 1196 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1196 is 2 run/0: result 0 is 2 mem/0: storing 2 in location 1165 @@ -423,7 +423,7 @@ run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- copy/ run/0: ingredient 0 is 0 mem/0: storing 0 in location 1164 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1163 is 1031 run/0: ingredient 1 is first-full @@ -441,12 +441,12 @@ mem/0: location 1164 is 0 run/0: product 0 is 1 mem/0: storing 1 in location 1168 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1168 is 1 run/0: result 0 is 1 mem/0: storing 1 in location 3 run/0: instruction channel-write-full/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 0 # empty? 3 <- 1 # full? ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/channel-write-increments-free b/cpp/.traces/channel-write-increments-free index 1f9ae970..083e3503 100644 --- a/cpp/.traces/channel-write-increments-free +++ b/cpp/.traces/channel-write-increments-free @@ -24,7 +24,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-write-increments-free run/0: instruction channel-write-increments-free/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 3:literal/capacity 1:address:channel <- write 1:address:channel, 34:literal 2:integer <- get 1:address:channel/deref, first-full:offset @@ -60,15 +60,15 @@ after-brace/0: get ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "3", value: 3, type: 0, properties: ["3": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -81,7 +81,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -94,7 +94,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: storing 3 in location 1005 run/0: instruction init-channel/7 @@ -105,7 +105,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 4 mem/0: storing 4 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -113,14 +113,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 4 mem/0: array size is 4 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -128,30 +128,30 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1039 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1041 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1042 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1041 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1070 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1072 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-free @@ -171,15 +171,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1072 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1101 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1103 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1103 is 1031 run/0: ingredient 1 is data @@ -189,11 +189,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1104 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1104 is 1034 mem/0: storing 4 in location 1105 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1105 is 4 run/0: result 0 is 4 mem/0: storing 4 in location 1074 @@ -212,7 +212,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-full @@ -230,7 +230,7 @@ mem/0: location 1073 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1077 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1077 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1043 @@ -241,7 +241,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is data @@ -251,7 +251,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1045 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is first-free @@ -259,7 +259,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1046 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1045 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -284,7 +284,7 @@ run/0: product 0 is 1 mem/0: location 1046 is 1032 mem/0: storing 1 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1045 is 1034 mem/0: storing 4 in location 1048 run/0: instruction write/16 @@ -303,12 +303,12 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 19 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1041 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/2 -run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-full @@ -318,7 +318,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 2 run/0: instruction run1001/3 -run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/23 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- get/24 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is first-free @@ -328,7 +328,7 @@ mem/0: location 1032 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 3 run/0: instruction channel-write-increments-free/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 0 # first-full 3 <- 1 # first-free ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/channel-write-not-empty b/cpp/.traces/channel-write-not-empty index e4758cd3..4ddf4687 100644 --- a/cpp/.traces/channel-write-not-empty +++ b/cpp/.traces/channel-write-not-empty @@ -24,7 +24,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: channel-write-not-empty run/0: instruction channel-write-not-empty/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:channel <- init-channel 3:literal/capacity 1:address:channel <- write 1:address:channel, 34:literal 2:integer <- channel-empty? 1:address:channel @@ -56,15 +56,15 @@ after-brace/0: channel-full? ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- init-channel/108 {name: "3", value: 3, type: 0, properties: ["3": "literal", "capacity": ]} run/0: instruction init-channel/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-channel/1 -run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/41 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} +run/0: {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} <- new/42 {name: "channel", value: 10, type: 0, properties: ["channel": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-channel/2 -run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 2-1, properties: ["full": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-full @@ -77,7 +77,7 @@ run/0: ingredient 0 is 0 mem/0: location 1003 is 1031 mem/0: storing 0 in location 1031 run/0: instruction init-channel/4 -run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is first-free @@ -90,7 +90,7 @@ run/0: ingredient 0 is 0 mem/0: location 1004 is 1032 mem/0: storing 0 in location 1032 run/0: instruction init-channel/6 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: storing 3 in location 1005 run/0: instruction init-channel/7 @@ -101,7 +101,7 @@ run/0: ingredient 1 is 1 run/0: product 0 is 4 mem/0: storing 4 in location 1005 run/0: instruction init-channel/8 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/24 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location"]} <- get-address/25 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -109,14 +109,14 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1006 run/0: instruction init-channel/9 -run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "dest", value: 5, type: 2-2-5-1, properties: ["dest": "address":"address":"array":"location", "deref": ]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1005 is 4 mem/0: array size is 4 mem/0: new alloc: 1034 mem/0: location 1006 is 1033 mem/0: storing 1034 in location 1033 run/0: instruction init-channel/10 -run/0: reply/32 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} +run/0: reply/33 {name: "result", value: 1, type: 2-10, properties: ["result": "address":"channel"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -124,30 +124,30 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} <- write/109 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]}, {name: "34", value: 34, type: 0, properties: ["34": "literal"]} mem/0: location 1 is 1031 run/0: instruction write/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1039 run/0: instruction write/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1041 run/0: instruction write/2 -run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/29 +run/0: {name: "val", value: 2, type: 1, properties: ["val": "location"]} <- next-ingredient/30 run/0: product 0 is 34 mem/0: storing 34 in location 1042 run/0: instruction write/4 run/0: {name: "full", value: 3, type: 3, properties: ["full": "boolean"]} <- channel-full?/110 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1041 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1070 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1072 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-free @@ -167,15 +167,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1072 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1101 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1103 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1103 is 1031 run/0: ingredient 1 is data @@ -185,11 +185,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1104 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1104 is 1034 mem/0: storing 4 in location 1105 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1105 is 4 run/0: result 0 is 4 mem/0: storing 4 in location 1074 @@ -208,7 +208,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1072 is 1031 run/0: ingredient 1 is first-full @@ -226,7 +226,7 @@ mem/0: location 1073 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1077 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1077 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1043 @@ -237,7 +237,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 8 run/0: instruction write/9 -run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is data @@ -247,7 +247,7 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1045 run/0: instruction write/10 -run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer"]} <- get-address/25 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1041 is 1031 run/0: ingredient 1 is first-free @@ -255,7 +255,7 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1046 run/0: instruction write/11 -run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/26 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 7, type: 2-1, properties: ["dest": "address":"location"]} <- index-address/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]}, {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} run/0: ingredient 0 is circular-buffer mem/0: location 1045 is 1034 run/0: ingredient 1 is {name: "free", value: 6, type: 2-1, properties: ["free": "address":"integer", "deref": ]} @@ -280,7 +280,7 @@ run/0: product 0 is 1 mem/0: location 1046 is 1032 mem/0: storing 1 in location 1032 run/0: instruction write/15 -run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/27 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} +run/0: {name: "len", value: 8, type: 1, properties: ["len": "integer"]} <- length/28 {name: "circular-buffer", value: 5, type: 2-5-1, properties: ["circular-buffer": "address":"array":"location", "deref": ]} mem/0: location 1045 is 1034 mem/0: storing 4 in location 1048 run/0: instruction write/16 @@ -299,7 +299,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 19 run/0: instruction write/20 -run/0: reply/32 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "same-as-ingredient": "0"]} mem/0: location 1041 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -307,15 +307,15 @@ run/0: instruction run1001/2 run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- channel-empty?/112 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-empty?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1132 run/0: instruction channel-empty?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1134 run/0: instruction channel-empty?/2 -run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 2, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1134 is 1031 run/0: ingredient 1 is first-full @@ -325,7 +325,7 @@ mem/0: location 1031 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1135 run/0: instruction channel-empty?/3 -run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "free", value: 3, type: 1, properties: ["free": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1134 is 1031 run/0: ingredient 1 is first-free @@ -343,7 +343,7 @@ mem/0: location 1136 is 1 run/0: product 0 is 0 mem/0: storing 0 in location 1137 run/0: instruction channel-empty?/5 -run/0: reply/32 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 4, type: 3, properties: ["result": "boolean"]} mem/0: location 1137 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 2 @@ -351,15 +351,15 @@ run/0: instruction run1001/3 run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- channel-full?/110 {name: "1", value: 1, type: 2-10, properties: ["1": "address":"channel"]} mem/0: location 1 is 1031 run/0: instruction channel-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1163 run/0: instruction channel-full?/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1165 run/0: instruction channel-full?/2 -run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} +run/0: {name: "tmp", value: 2, type: 1, properties: ["tmp": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-free", value: 1, type: 0, properties: ["first-free": "offset"]} run/0: ingredient 0 is chan mem/0: location 1165 is 1031 run/0: ingredient 1 is first-free @@ -379,15 +379,15 @@ run/0: instruction channel-full?/5 run/0: {name: "len", value: 3, type: 1, properties: ["len": "integer"]} <- channel-capacity/113 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} mem/0: location 1165 is 1031 run/0: instruction channel-capacity/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1194 run/0: instruction channel-capacity/1 -run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/29 +run/0: {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1196 run/0: instruction channel-capacity/2 -run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} +run/0: {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "data", value: 2, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is chan mem/0: location 1196 is 1031 run/0: ingredient 1 is data @@ -397,11 +397,11 @@ mem/0: location 1033 is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1197 run/0: instruction channel-capacity/3 -run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/27 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} +run/0: {name: "result", value: 3, type: 1, properties: ["result": "integer"]} <- length/28 {name: "q", value: 2, type: 2-5-1, properties: ["q": "address":"array":"location", "deref": ]} mem/0: location 1197 is 1034 mem/0: storing 4 in location 1198 run/0: instruction channel-capacity/4 -run/0: reply/32 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} +run/0: reply/33 {name: "result", value: 3, type: 1, properties: ["result": "integer"]} mem/0: location 1198 is 4 run/0: result 0 is 4 mem/0: storing 4 in location 1167 @@ -420,7 +420,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 9 run/0: instruction channel-full?/10 -run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/23 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} +run/0: {name: "full", value: 5, type: 1, properties: ["full": "integer"]} <- get/24 {name: "chan", value: 1, type: 2-10, properties: ["chan": "address":"channel", "deref": ]}, {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} run/0: ingredient 0 is chan mem/0: location 1165 is 1031 run/0: ingredient 1 is first-full @@ -438,12 +438,12 @@ mem/0: location 1166 is 2 run/0: product 0 is 0 mem/0: storing 0 in location 1170 run/0: instruction channel-full?/12 -run/0: reply/32 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 6, type: 3, properties: ["result": "boolean"]} mem/0: location 1170 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 3 run/0: instruction channel-write-not-empty/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 0 # empty? 3 <- 0 # full? ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/check_string_in_memory b/cpp/.traces/check_string_in_memory index bffcabc6..5ebd7a8d 100644 --- a/cpp/.traces/check_string_in_memory +++ b/cpp/.traces/check_string_in_memory @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: check_string_in_memory run/0: instruction check_string_in_memory/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- copy 3:literal 2:character <- copy 97:literal # 'a' 3:character <- copy 98:literal # 'b' @@ -67,7 +67,7 @@ run/0: {name: "4", value: 4, type: 4, properties: ["4": "character"]} <- copy/1 run/0: ingredient 0 is 99 mem/0: storing 99 in location 4 run/0: instruction check_string_in_memory/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1:string <- [abc] ", value: 0, type: 0, properties: [" 1:string <- [abc] diff --git a/cpp/.traces/check_trace b/cpp/.traces/check_trace index e6f6c360..bdea161d 100644 --- a/cpp/.traces/check_trace +++ b/cpp/.traces/check_trace @@ -16,7 +16,7 @@ after-brace/0: trace-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: check_trace run/0: instruction check_trace/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- add 2:literal, 2:literal ", value: 0, type: 0, properties: [" 1:integer <- add 2:literal, 2:literal @@ -34,7 +34,7 @@ run/0: ingredient 1 is 2 run/0: product 0 is 4 mem/0: storing 4 in location 1 run/0: instruction check_trace/1 -run/0: trace-should-contain/44 {name: " +run/0: trace-should-contain/45 {name: " mem: storing 4 in location 1 ", value: 0, type: 0, properties: [" mem: storing 4 in location 1 diff --git a/cpp/.traces/check_trace_instruction b/cpp/.traces/check_trace_instruction index ef94da20..95e712ff 100644 --- a/cpp/.traces/check_trace_instruction +++ b/cpp/.traces/check_trace_instruction @@ -16,7 +16,7 @@ after-brace/0: trace-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: check_trace_instruction run/0: instruction check_trace_instruction/0 -run/0: run/42 {name: " +run/0: run/43 {name: " trace [foo], [aaa] ", value: 0, type: 0, properties: [" trace [foo], [aaa] @@ -30,7 +30,7 @@ run/0: instruction run1001/0 run/0: trace/18 {name: "foo", value: 0, type: 0, properties: ["foo": "literal-string"]}, {name: "aaa", value: 0, type: 0, properties: ["aaa": "literal-string"]} foo/0: aaa run/0: instruction check_trace_instruction/1 -run/0: trace-should-contain/44 {name: " +run/0: trace-should-contain/45 {name: " foo: aaa ", value: 0, type: 0, properties: [" foo: aaa diff --git a/cpp/.traces/check_trace_negative b/cpp/.traces/check_trace_negative index 1912420a..ca979241 100644 --- a/cpp/.traces/check_trace_negative +++ b/cpp/.traces/check_trace_negative @@ -16,7 +16,7 @@ after-brace/0: trace-should-not-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: check_trace_negative run/0: instruction check_trace_negative/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- add 2:literal, 2:literal ", value: 0, type: 0, properties: [" 1:integer <- add 2:literal, 2:literal @@ -34,7 +34,7 @@ run/0: ingredient 1 is 2 run/0: product 0 is 4 mem/0: storing 4 in location 1 run/0: instruction check_trace_negative/1 -run/0: trace-should-not-contain/45 {name: " +run/0: trace-should-not-contain/46 {name: " mem: storing 5 in location 1 ", value: 0, type: 0, properties: [" mem: storing 5 in location 1 diff --git a/cpp/.traces/clear-line-erases-printed-characters b/cpp/.traces/clear-line-erases-printed-characters index 25eb1b97..33dbbe49 100644 --- a/cpp/.traces/clear-line-erases-printed-characters +++ b/cpp/.traces/clear-line-erases-printed-characters @@ -46,7 +46,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: clear-line-erases-printed-characters run/0: instruction clear-line-erases-printed-characters/0 -run/0: run/42 {name: " +run/0: run/43 {name: " #? $start-tracing #? 3 1:address:screen <- init-fake-screen 3:literal/width, 2:literal/height # print a character @@ -103,15 +103,15 @@ after-brace/0: copy ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]} <- init-fake-screen/115 {name: "3", value: 3, type: 0, properties: ["3": "literal", "width": ]}, {name: "2", value: 2, type: 0, properties: ["2": "literal", "height": ]} run/0: instruction init-fake-screen/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal", "capacity": ]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal", "capacity": ]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-fake-screen/1 -run/0: {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} <- new/41 {name: "screen", value: 11, type: 0, properties: ["screen": "type"]} +run/0: {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} <- new/42 {name: "screen", value: 11, type: 0, properties: ["screen": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-fake-screen/2 -run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is num-columns @@ -119,12 +119,12 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1003 run/0: instruction init-fake-screen/3 -run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer", "deref": ]} <- next-ingredient/29 +run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer", "deref": ]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: location 1003 is 1032 mem/0: storing 3 in location 1032 run/0: instruction init-fake-screen/4 -run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-rows", value: 0, type: 0, properties: ["num-rows": "offset"]} +run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-rows", value: 0, type: 0, properties: ["num-rows": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is num-rows @@ -132,12 +132,12 @@ run/0: address to copy is 1031 run/0: product 0 is 1031 mem/0: storing 1031 in location 1004 run/0: instruction init-fake-screen/5 -run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer", "deref": ]} <- next-ingredient/29 +run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer", "deref": ]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: location 1004 is 1031 mem/0: storing 2 in location 1031 run/0: instruction init-fake-screen/6 -run/0: {name: "row", value: 4, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 4, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is cursor-row @@ -150,7 +150,7 @@ run/0: ingredient 0 is 0 mem/0: location 1005 is 1033 mem/0: storing 0 in location 1033 run/0: instruction init-fake-screen/8 -run/0: {name: "column", value: 5, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 5, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is cursor-column @@ -174,7 +174,7 @@ run/0: ingredient 1 is 2 run/0: product 0 is 6 mem/0: storing 6 in location 1007 run/0: instruction init-fake-screen/11 -run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -182,7 +182,7 @@ run/0: address to copy is 1035 run/0: product 0 is 1035 mem/0: storing 1035 in location 1008 run/0: instruction init-fake-screen/12 -run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character", "deref": ]} <- new/41 {name: "character", value: 0, type: 0, properties: ["character": "literal"]}, {name: "bufsize", value: 6, type: 1, properties: ["bufsize": "integer"]} +run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character", "deref": ]} <- new/42 {name: "character", value: 0, type: 0, properties: ["character": "literal"]}, {name: "bufsize", value: 6, type: 1, properties: ["bufsize": "integer"]} mem/0: location 1007 is 6 mem/0: array size is 6 mem/0: new alloc: 1036 @@ -192,11 +192,11 @@ run/0: instruction init-fake-screen/13 run/0: clear-screen/116 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} mem/0: location 1002 is 1031 run/0: instruction clear-screen/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1043 run/0: instruction clear-screen/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1045 run/0: instruction clear-screen/3 @@ -205,7 +205,7 @@ mem/0: location 1045 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction clear-screen/4 -run/0: {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1045 is 1031 run/0: ingredient 1 is data @@ -215,7 +215,7 @@ mem/0: location 1035 is 1036 run/0: product 0 is 1036 mem/0: storing 1036 in location 1046 run/0: instruction clear-screen/5 -run/0: {name: "max", value: 3, type: 1, properties: ["max": "integer"]} <- length/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} +run/0: {name: "max", value: 3, type: 1, properties: ["max": "integer"]} <- length/28 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} mem/0: location 1046 is 1036 mem/0: storing 6 in location 1047 run/0: instruction clear-screen/6 @@ -236,7 +236,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -274,7 +274,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -312,7 +312,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -350,7 +350,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -388,7 +388,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -426,7 +426,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -465,10 +465,10 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 14 run/0: instruction clear-screen/15 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1045 is 1031 run/0: instruction init-fake-screen/14 -run/0: reply/32 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} +run/0: reply/33 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -476,15 +476,15 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]} <- print-character/117 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]}, {name: "97", value: 97, type: 0, properties: ["97": "literal"]} mem/0: location 1 is 1031 run/0: instruction print-character/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1074 run/0: instruction print-character/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1076 run/0: instruction print-character/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 97 mem/0: storing 97 in location 1077 run/0: instruction print-character/4 @@ -493,7 +493,7 @@ mem/0: location 1076 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction print-character/5 -run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is cursor-row @@ -501,7 +501,7 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1078 run/0: instruction print-character/6 -run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is cursor-column @@ -509,7 +509,7 @@ run/0: address to copy is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1079 run/0: instruction print-character/7 -run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is num-columns @@ -538,7 +538,7 @@ mem/0: location 1034 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1081 run/0: instruction print-character/10 -run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is data @@ -548,7 +548,7 @@ mem/0: location 1035 is 1036 run/0: product 0 is 1036 mem/0: storing 1036 in location 1082 run/0: instruction print-character/11 -run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/26 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} +run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/27 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} run/0: ingredient 0 is buf mem/0: location 1082 is 1036 run/0: ingredient 1 is {name: "index", value: 6, type: 1, properties: ["index": "integer"]} @@ -586,7 +586,7 @@ run/0: product 0 is 1 mem/0: location 1079 is 1034 mem/0: storing 1 in location 1034 run/0: instruction print-character/18 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1076 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -594,19 +594,19 @@ run/0: instruction run1001/2 run/0: {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]} <- move-cursor/120 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]}, {name: "0", value: 0, type: 0, properties: ["0": "literal", "row": ]}, {name: "0", value: 0, type: 0, properties: ["0": "literal", "column": ]} mem/0: location 1 is 1031 run/0: instruction move-cursor/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1105 run/0: instruction move-cursor/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1107 run/0: instruction move-cursor/2 -run/0: {name: "new-row", value: 2, type: 1, properties: ["new-row": "integer"]} <- next-ingredient/29 +run/0: {name: "new-row", value: 2, type: 1, properties: ["new-row": "integer"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1108 run/0: instruction move-cursor/3 -run/0: {name: "new-column", value: 3, type: 1, properties: ["new-column": "integer"]} <- next-ingredient/29 +run/0: {name: "new-column", value: 3, type: 1, properties: ["new-column": "integer"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1109 run/0: instruction move-cursor/5 @@ -615,7 +615,7 @@ mem/0: location 1107 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction move-cursor/6 -run/0: {name: "row", value: 4, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 4, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is x mem/0: location 1107 is 1031 run/0: ingredient 1 is cursor-row @@ -629,7 +629,7 @@ mem/0: location 1108 is 0 mem/0: location 1110 is 1033 mem/0: storing 0 in location 1033 run/0: instruction move-cursor/8 -run/0: {name: "column", value: 5, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 5, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is x mem/0: location 1107 is 1031 run/0: ingredient 1 is cursor-column @@ -643,7 +643,7 @@ mem/0: location 1109 is 0 mem/0: location 1111 is 1034 mem/0: storing 0 in location 1034 run/0: instruction move-cursor/10 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1107 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -651,11 +651,11 @@ run/0: instruction run1001/3 run/0: {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]} <- clear-line/118 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]} mem/0: location 1 is 1031 run/0: instruction clear-line/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1136 run/0: instruction clear-line/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1138 run/0: instruction clear-line/3 @@ -664,7 +664,7 @@ mem/0: location 1138 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction clear-line/4 -run/0: {name: "n", value: 2, type: 1, properties: ["n": "integer"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "n", value: 2, type: 1, properties: ["n": "integer"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is x mem/0: location 1138 is 1031 run/0: ingredient 1 is num-columns @@ -674,7 +674,7 @@ mem/0: location 1032 is 3 run/0: product 0 is 3 mem/0: storing 3 in location 1139 run/0: instruction clear-line/5 -run/0: {name: "column", value: 3, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 3, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is x mem/0: location 1138 is 1031 run/0: ingredient 1 is cursor-column @@ -705,15 +705,15 @@ run/0: instruction clear-line/10 run/0: print-character/117 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]}, {name: " ", value: 0, type: 0, properties: [" ": "literal-string"]} mem/0: location 1138 is 1031 run/0: instruction print-character/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1167 run/0: instruction print-character/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1169 run/0: instruction print-character/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1170 run/0: instruction print-character/4 @@ -722,7 +722,7 @@ mem/0: location 1169 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction print-character/5 -run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is x mem/0: location 1169 is 1031 run/0: ingredient 1 is cursor-row @@ -730,7 +730,7 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1171 run/0: instruction print-character/6 -run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is x mem/0: location 1169 is 1031 run/0: ingredient 1 is cursor-column @@ -738,7 +738,7 @@ run/0: address to copy is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1172 run/0: instruction print-character/7 -run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is x mem/0: location 1169 is 1031 run/0: ingredient 1 is num-columns @@ -767,7 +767,7 @@ mem/0: location 1034 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1174 run/0: instruction print-character/10 -run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1169 is 1031 run/0: ingredient 1 is data @@ -777,7 +777,7 @@ mem/0: location 1035 is 1036 run/0: product 0 is 1036 mem/0: storing 1036 in location 1175 run/0: instruction print-character/11 -run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/26 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} +run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/27 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} run/0: ingredient 0 is buf mem/0: location 1175 is 1036 run/0: ingredient 1 is {name: "index", value: 6, type: 1, properties: ["index": "integer"]} @@ -815,7 +815,7 @@ run/0: product 0 is 1 mem/0: location 1172 is 1034 mem/0: storing 1 in location 1034 run/0: instruction print-character/18 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1169 is 1031 run/0: instruction clear-line/11 run/0: loop/10 {name: "", value: -4, type: , properties: ["": ]} @@ -839,15 +839,15 @@ run/0: instruction clear-line/10 run/0: print-character/117 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]}, {name: " ", value: 0, type: 0, properties: [" ": "literal-string"]} mem/0: location 1138 is 1031 run/0: instruction print-character/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1198 run/0: instruction print-character/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1200 run/0: instruction print-character/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1201 run/0: instruction print-character/4 @@ -856,7 +856,7 @@ mem/0: location 1200 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction print-character/5 -run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is x mem/0: location 1200 is 1031 run/0: ingredient 1 is cursor-row @@ -864,7 +864,7 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1202 run/0: instruction print-character/6 -run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is x mem/0: location 1200 is 1031 run/0: ingredient 1 is cursor-column @@ -872,7 +872,7 @@ run/0: address to copy is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1203 run/0: instruction print-character/7 -run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is x mem/0: location 1200 is 1031 run/0: ingredient 1 is num-columns @@ -901,7 +901,7 @@ mem/0: location 1034 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 1205 run/0: instruction print-character/10 -run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1200 is 1031 run/0: ingredient 1 is data @@ -911,7 +911,7 @@ mem/0: location 1035 is 1036 run/0: product 0 is 1036 mem/0: storing 1036 in location 1206 run/0: instruction print-character/11 -run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/26 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} +run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/27 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} run/0: ingredient 0 is buf mem/0: location 1206 is 1036 run/0: ingredient 1 is {name: "index", value: 6, type: 1, properties: ["index": "integer"]} @@ -949,7 +949,7 @@ run/0: product 0 is 2 mem/0: location 1203 is 1034 mem/0: storing 2 in location 1034 run/0: instruction print-character/18 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1200 is 1031 run/0: instruction clear-line/11 run/0: loop/10 {name: "", value: -4, type: , properties: ["": ]} @@ -973,15 +973,15 @@ run/0: instruction clear-line/10 run/0: print-character/117 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]}, {name: " ", value: 0, type: 0, properties: [" ": "literal-string"]} mem/0: location 1138 is 1031 run/0: instruction print-character/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1229 run/0: instruction print-character/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1231 run/0: instruction print-character/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1232 run/0: instruction print-character/4 @@ -990,7 +990,7 @@ mem/0: location 1231 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction print-character/5 -run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is x mem/0: location 1231 is 1031 run/0: ingredient 1 is cursor-row @@ -998,7 +998,7 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1233 run/0: instruction print-character/6 -run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is x mem/0: location 1231 is 1031 run/0: ingredient 1 is cursor-column @@ -1006,7 +1006,7 @@ run/0: address to copy is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1234 run/0: instruction print-character/7 -run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is x mem/0: location 1231 is 1031 run/0: ingredient 1 is num-columns @@ -1035,7 +1035,7 @@ mem/0: location 1034 is 2 run/0: product 0 is 2 mem/0: storing 2 in location 1236 run/0: instruction print-character/10 -run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1231 is 1031 run/0: ingredient 1 is data @@ -1045,7 +1045,7 @@ mem/0: location 1035 is 1036 run/0: product 0 is 1036 mem/0: storing 1036 in location 1237 run/0: instruction print-character/11 -run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/26 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} +run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/27 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} run/0: ingredient 0 is buf mem/0: location 1237 is 1036 run/0: ingredient 1 is {name: "index", value: 6, type: 1, properties: ["index": "integer"]} @@ -1083,7 +1083,7 @@ run/0: product 0 is 3 mem/0: location 1234 is 1034 mem/0: storing 3 in location 1034 run/0: instruction print-character/18 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1231 is 1031 run/0: instruction clear-line/11 run/0: loop/10 {name: "", value: -4, type: , properties: ["": ]} @@ -1111,12 +1111,12 @@ mem/0: location 1141 is 0 mem/0: location 1140 is 1034 mem/0: storing 0 in location 1034 run/0: instruction clear-line/14 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1138 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/4 -run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character"]} <- get/23 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character"]} <- get/24 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is data @@ -1144,7 +1144,7 @@ mem/0: storing 0 in location 7 mem/0: storing 0 in location 8 mem/0: storing 0 in location 9 run/0: instruction clear-line-erases-printed-characters/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 3 <- 6 # width*height 4 <- 0 5 <- 0 diff --git a/cpp/.traces/closure b/cpp/.traces/closure index 3ee1eb17..fdec57d7 100644 --- a/cpp/.traces/closure +++ b/cpp/.traces/closure @@ -63,13 +63,13 @@ after-brace/0: reply ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction main/1 run/0: {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"location", "names": "init-counter"]} <- init-counter/1001 run/0: instruction init-counter/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1031 run/0: instruction init-counter/1 @@ -81,18 +81,18 @@ run/0: {name: "y", value: 2, type: 1, properties: ["y": "integer"]} <- copy/1 {n run/0: ingredient 0 is 3 mem/0: storing 3 in location 1034 run/0: instruction init-counter/3 -run/0: reply/32 {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} +run/0: reply/33 {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} run/0: result 0 is 1031 mem/0: storing 1031 in location 1002 run/0: instruction main/2 run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer", "raw": ]} <- increment-counter/1002 {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"location", "names": "init-counter"]} mem/0: location 1002 is 1031 run/0: instruction increment-counter/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "space", value: 0, type: 0, properties: ["space": "literal"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "space", value: 0, type: 0, properties: ["space": "literal"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1062 run/0: instruction increment-counter/1 -run/0: {name: "0", value: 0, type: 2-5-1, properties: ["0": "address":"array":"location", "names": "init-counter"]} <- next-ingredient/29 +run/0: {name: "0", value: 0, type: 2-5-1, properties: ["0": "address":"array":"location", "names": "init-counter"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1063 run/0: instruction increment-counter/2 @@ -107,7 +107,7 @@ run/0: {name: "y", value: 1, type: 1, properties: ["y": "integer"]} <- copy/1 {n run/0: ingredient 0 is 234 mem/0: storing 234 in location 1064 run/0: instruction increment-counter/4 -run/0: reply/32 {name: "y", value: 2, type: 1, properties: ["y": "integer", "space": "1"]} +run/0: reply/33 {name: "y", value: 2, type: 1, properties: ["y": "integer", "space": "1"]} mem/0: location 1034 is 4 run/0: result 0 is 4 mem/0: storing 4 in location 2 @@ -115,11 +115,11 @@ run/0: instruction main/3 run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer", "raw": ]} <- increment-counter/1002 {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"location", "names": "init-counter"]} mem/0: location 1002 is 1031 run/0: instruction increment-counter/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "space", value: 0, type: 0, properties: ["space": "literal"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "space", value: 0, type: 0, properties: ["space": "literal"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1093 run/0: instruction increment-counter/1 -run/0: {name: "0", value: 0, type: 2-5-1, properties: ["0": "address":"array":"location", "names": "init-counter"]} <- next-ingredient/29 +run/0: {name: "0", value: 0, type: 2-5-1, properties: ["0": "address":"array":"location", "names": "init-counter"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1094 run/0: instruction increment-counter/2 @@ -134,7 +134,7 @@ run/0: {name: "y", value: 1, type: 1, properties: ["y": "integer"]} <- copy/1 {n run/0: ingredient 0 is 234 mem/0: storing 234 in location 1095 run/0: instruction increment-counter/4 -run/0: reply/32 {name: "y", value: 2, type: 1, properties: ["y": "integer", "space": "1"]} +run/0: reply/33 {name: "y", value: 2, type: 1, properties: ["y": "integer", "space": "1"]} mem/0: location 1034 is 5 run/0: result 0 is 5 mem/0: storing 5 in location 3 diff --git a/cpp/.traces/convert_names_transforms_container_elements b/cpp/.traces/convert_names_transforms_container_elements index ec1ba6a8..4232571c 100644 --- a/cpp/.traces/convert_names_transforms_container_elements +++ b/cpp/.traces/convert_names_transforms_container_elements @@ -16,7 +16,7 @@ after-brace/0: get ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: {name: "a", value: 1, type: 1, properties: ["a": "integer"]} <- get/23 {name: "0", value: 0, type: 6, properties: ["0": "point"]}, {name: "y", value: 1, type: 0, properties: ["y": "offset"]} +run/0: {name: "a", value: 1, type: 1, properties: ["a": "integer"]} <- get/24 {name: "0", value: 0, type: 6, properties: ["0": "point"]}, {name: "y", value: 1, type: 0, properties: ["y": "offset"]} run/0: ingredient 0 is 0 run/0: ingredient 1 is y run/0: address to copy is 1 @@ -25,7 +25,7 @@ mem/0: location 1 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1 run/0: instruction main/1 -run/0: {name: "b", value: 2, type: 1, properties: ["b": "integer"]} <- get/23 {name: "0", value: 0, type: 6, properties: ["0": "point"]}, {name: "x", value: 0, type: 0, properties: ["x": "offset"]} +run/0: {name: "b", value: 2, type: 1, properties: ["b": "integer"]} <- get/24 {name: "0", value: 0, type: 6, properties: ["0": "point"]}, {name: "x", value: 0, type: 0, properties: ["x": "offset"]} run/0: ingredient 0 is 0 run/0: ingredient 1 is x run/0: address to copy is 0 diff --git a/cpp/.traces/deref_sidesteps_default_space_in_get b/cpp/.traces/deref_sidesteps_default_space_in_get index 3493fccd..c4349bca 100644 --- a/cpp/.traces/deref_sidesteps_default_space_in_get +++ b/cpp/.traces/deref_sidesteps_default_space_in_get @@ -46,7 +46,7 @@ run/0: {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point"]} <- run/0: ingredient 0 is 12 mem/0: storing 12 in location 1002 run/0: instruction main/5 -run/0: {name: "9", value: 9, type: 1, properties: ["9": "integer", "raw": ]} <- get/23 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": ]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} +run/0: {name: "9", value: 9, type: 1, properties: ["9": "integer", "raw": ]} <- get/24 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": ]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1002 is 12 run/0: ingredient 1 is 1 diff --git a/cpp/.traces/deref_sidesteps_default_space_in_index b/cpp/.traces/deref_sidesteps_default_space_in_index index a33f3bfe..b18fd64d 100644 --- a/cpp/.traces/deref_sidesteps_default_space_in_index +++ b/cpp/.traces/deref_sidesteps_default_space_in_index @@ -54,7 +54,7 @@ run/0: {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"i run/0: ingredient 0 is 12 mem/0: storing 12 in location 1002 run/0: instruction main/6 -run/0: {name: "9", value: 9, type: 1, properties: ["9": "integer", "raw": ]} <- index/25 {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"integer", "deref": ]}, {name: "1", value: 1, type: 0, properties: ["1": "literal"]} +run/0: {name: "9", value: 9, type: 1, properties: ["9": "integer", "raw": ]} <- index/26 {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"integer", "deref": ]}, {name: "1", value: 1, type: 0, properties: ["1": "literal"]} run/0: ingredient 0 is {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"integer", "deref": ]} mem/0: location 1002 is 12 run/0: ingredient 1 is {name: "1", value: 1, type: 0, properties: ["1": "literal"]} diff --git a/cpp/.traces/first_scenario_in_mu b/cpp/.traces/first_scenario_in_mu index 46162d13..48ac75b5 100644 --- a/cpp/.traces/first_scenario_in_mu +++ b/cpp/.traces/first_scenario_in_mu @@ -16,7 +16,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: first_scenario_in_mu run/0: instruction first_scenario_in_mu/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- add 2:literal, 2:literal ", value: 0, type: 0, properties: [" 1:integer <- add 2:literal, 2:literal @@ -34,7 +34,7 @@ run/0: ingredient 1 is 2 run/0: product 0 is 4 mem/0: storing 4 in location 1 run/0: instruction first_scenario_in_mu/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 4 ", value: 0, type: 0, properties: [" 1 <- 4 diff --git a/cpp/.traces/get b/cpp/.traces/get index c8bf9521..50aab6f2 100644 --- a/cpp/.traces/get +++ b/cpp/.traces/get @@ -23,7 +23,7 @@ run/0: {name: "13", value: 13, type: 1, properties: ["13": "integer"]} <- copy/1 run/0: ingredient 0 is 35 mem/0: storing 35 in location 13 run/0: instruction main/2 -run/0: {name: "15", value: 15, type: 1, properties: ["15": "integer"]} <- get/23 {name: "12", value: 12, type: 6, properties: ["12": "point"]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} +run/0: {name: "15", value: 15, type: 1, properties: ["15": "integer"]} <- get/24 {name: "12", value: 12, type: 6, properties: ["12": "point"]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} run/0: ingredient 0 is 12 run/0: ingredient 1 is 1 run/0: address to copy is 13 diff --git a/cpp/.traces/get_address b/cpp/.traces/get_address index 22702857..7182ed20 100644 --- a/cpp/.traces/get_address +++ b/cpp/.traces/get_address @@ -23,7 +23,7 @@ run/0: {name: "13", value: 13, type: 1, properties: ["13": "integer"]} <- copy/1 run/0: ingredient 0 is 35 mem/0: storing 35 in location 13 run/0: instruction main/2 -run/0: {name: "15", value: 15, type: 2-1, properties: ["15": "address":"integer"]} <- get-address/24 {name: "12", value: 12, type: 6, properties: ["12": "point"]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} +run/0: {name: "15", value: 15, type: 2-1, properties: ["15": "address":"integer"]} <- get-address/25 {name: "12", value: 12, type: 6, properties: ["12": "point"]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} run/0: ingredient 0 is 12 run/0: ingredient 1 is 1 run/0: address to copy is 13 diff --git a/cpp/.traces/get_address_indirect b/cpp/.traces/get_address_indirect index d986b280..e8c3c850 100644 --- a/cpp/.traces/get_address_indirect +++ b/cpp/.traces/get_address_indirect @@ -31,7 +31,7 @@ run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- copy/1 {n run/0: ingredient 0 is 35 mem/0: storing 35 in location 3 run/0: instruction main/3 -run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get-address/24 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": ]}, {name: "0", value: 0, type: 0, properties: ["0": "offset"]} +run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get-address/25 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": ]}, {name: "0", value: 0, type: 0, properties: ["0": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 2 run/0: ingredient 1 is 0 diff --git a/cpp/.traces/get_handles_nested_container_elements b/cpp/.traces/get_handles_nested_container_elements index 963b25c1..6ff45ce2 100644 --- a/cpp/.traces/get_handles_nested_container_elements +++ b/cpp/.traces/get_handles_nested_container_elements @@ -31,7 +31,7 @@ run/0: {name: "14", value: 14, type: 1, properties: ["14": "integer"]} <- copy/1 run/0: ingredient 0 is 36 mem/0: storing 36 in location 14 run/0: instruction main/3 -run/0: {name: "15", value: 15, type: 1, properties: ["15": "integer"]} <- get/23 {name: "12", value: 12, type: 7, properties: ["12": "point-integer"]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} +run/0: {name: "15", value: 15, type: 1, properties: ["15": "integer"]} <- get/24 {name: "12", value: 12, type: 7, properties: ["12": "point-integer"]}, {name: "1", value: 1, type: 0, properties: ["1": "offset"]} run/0: ingredient 0 is 12 run/0: ingredient 1 is 1 run/0: address to copy is 14 diff --git a/cpp/.traces/get_indirect b/cpp/.traces/get_indirect index 62c2cdaa..3d176c0c 100644 --- a/cpp/.traces/get_indirect +++ b/cpp/.traces/get_indirect @@ -31,7 +31,7 @@ run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- copy/1 {n run/0: ingredient 0 is 35 mem/0: storing 35 in location 3 run/0: instruction main/3 -run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get/23 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": ]}, {name: "0", value: 0, type: 0, properties: ["0": "offset"]} +run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get/24 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": ]}, {name: "0", value: 0, type: 0, properties: ["0": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 2 run/0: ingredient 1 is 0 diff --git a/cpp/.traces/include_nonderef_properties b/cpp/.traces/include_nonderef_properties index aa4d3c6b..d7eacc1a 100644 --- a/cpp/.traces/include_nonderef_properties +++ b/cpp/.traces/include_nonderef_properties @@ -31,7 +31,7 @@ run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]} <- copy/1 {n run/0: ingredient 0 is 35 mem/0: storing 35 in location 3 run/0: instruction main/3 -run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get/23 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": , "foo": ]}, {name: "0", value: 0, type: 0, properties: ["0": "offset"]} +run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- get/24 {name: "1", value: 1, type: 2-6, properties: ["1": "address":"point", "deref": , "foo": ]}, {name: "0", value: 0, type: 0, properties: ["0": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 2 run/0: ingredient 1 is 0 diff --git a/cpp/.traces/index b/cpp/.traces/index index 4ba27c97..9653e872 100644 --- a/cpp/.traces/index +++ b/cpp/.traces/index @@ -39,7 +39,7 @@ run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- copy/1 {n run/0: ingredient 0 is 16 mem/0: storing 16 in location 4 run/0: instruction main/4 -run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- index/25 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]}, {name: "0", value: 0, type: 0, properties: ["0": "literal"]} +run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- index/26 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]}, {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: ingredient 0 is {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]} run/0: ingredient 1 is {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: address to copy is 2 diff --git a/cpp/.traces/index_address b/cpp/.traces/index_address index 1aaf7fbe..c203603f 100644 --- a/cpp/.traces/index_address +++ b/cpp/.traces/index_address @@ -39,7 +39,7 @@ run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- copy/1 {n run/0: ingredient 0 is 16 mem/0: storing 16 in location 4 run/0: instruction main/4 -run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- index-address/26 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]}, {name: "0", value: 0, type: 0, properties: ["0": "literal"]} +run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- index-address/27 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]}, {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: ingredient 0 is 1 run/0: ingredient 1 is {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: address to copy is 2 diff --git a/cpp/.traces/index_direct_offset b/cpp/.traces/index_direct_offset index fa0a134a..a20a3d67 100644 --- a/cpp/.traces/index_direct_offset +++ b/cpp/.traces/index_direct_offset @@ -47,7 +47,7 @@ run/0: {name: "5", value: 5, type: 1, properties: ["5": "integer"]} <- copy/1 {n run/0: ingredient 0 is 0 mem/0: storing 0 in location 5 run/0: instruction main/5 -run/0: {name: "6", value: 6, type: 1, properties: ["6": "integer"]} <- index/25 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]}, {name: "5", value: 5, type: 1, properties: ["5": "integer"]} +run/0: {name: "6", value: 6, type: 1, properties: ["6": "integer"]} <- index/26 {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]}, {name: "5", value: 5, type: 1, properties: ["5": "integer"]} run/0: ingredient 0 is {name: "1", value: 1, type: 5-1, properties: ["1": "array":"integer"]} run/0: ingredient 1 is {name: "5", value: 5, type: 1, properties: ["5": "integer"]} mem/0: location 5 is 0 diff --git a/cpp/.traces/index_indirect b/cpp/.traces/index_indirect index e610d675..16489d15 100644 --- a/cpp/.traces/index_indirect +++ b/cpp/.traces/index_indirect @@ -47,7 +47,7 @@ run/0: {name: "5", value: 5, type: 2-5-1, properties: ["5": "address":"array":"i run/0: ingredient 0 is 1 mem/0: storing 1 in location 5 run/0: instruction main/5 -run/0: {name: "6", value: 6, type: 1, properties: ["6": "integer"]} <- index/25 {name: "5", value: 5, type: 2-5-1, properties: ["5": "address":"array":"integer", "deref": ]}, {name: "1", value: 1, type: 0, properties: ["1": "literal"]} +run/0: {name: "6", value: 6, type: 1, properties: ["6": "integer"]} <- index/26 {name: "5", value: 5, type: 2-5-1, properties: ["5": "address":"array":"integer", "deref": ]}, {name: "1", value: 1, type: 0, properties: ["1": "literal"]} run/0: ingredient 0 is {name: "5", value: 5, type: 2-5-1, properties: ["5": "address":"array":"integer", "deref": ]} mem/0: location 5 is 1 run/0: ingredient 1 is {name: "1", value: 1, type: 0, properties: ["1": "literal"]} diff --git a/cpp/.traces/ingredient b/cpp/.traces/ingredient index a2c3f5aa..e2bc1da4 100644 --- a/cpp/.traces/ingredient +++ b/cpp/.traces/ingredient @@ -17,9 +17,9 @@ schedule/0: main run/0: instruction main/0 run/0: f/1001 {name: "1", value: 1, type: 0, properties: ["1": "literal"]}, {name: "2", value: 2, type: 0, properties: ["2": "literal"]} run/0: instruction f/0 -run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- ingredient/31 {name: "1", value: 1, type: 0, properties: ["1": "literal"]} +run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- ingredient/32 {name: "1", value: 1, type: 0, properties: ["1": "literal"]} run/0: product 0 is 2 mem/0: storing 2 in location 12 run/0: instruction f/1 -run/0: {name: "13", value: 13, type: 1, properties: ["13": "integer"]}, {name: "1", value: 1, type: 3, properties: ["1": "boolean"]} <- next-ingredient/29 +run/0: {name: "13", value: 13, type: 1, properties: ["13": "integer"]}, {name: "1", value: 1, type: 3, properties: ["1": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1 diff --git a/cpp/.traces/integer-to-decimal-digit-negative b/cpp/.traces/integer-to-decimal-digit-negative index 0f3cc329..069c202f 100644 --- a/cpp/.traces/integer-to-decimal-digit-negative +++ b/cpp/.traces/integer-to-decimal-digit-negative @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: integer-to-decimal-digit-negative run/0: instruction integer-to-decimal-digit-negative/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:character/raw <- integer-to-decimal-string -1:literal 2:array:character/raw <- copy 1:address:array:character/deref/raw ", value: 0, type: 0, properties: [" @@ -41,11 +41,11 @@ after-brace/0: copy ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- integer-to-decimal-string/105 {name: "-1", value: -1, type: 0, properties: ["-1": "literal"]} run/0: instruction integer-to-decimal-string/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction integer-to-decimal-string/1 -run/0: {name: "n", value: 1, type: 1, properties: ["n": "integer"]} <- next-ingredient/29 +run/0: {name: "n", value: 1, type: 1, properties: ["n": "integer"]} <- next-ingredient/30 run/0: product 0 is -1 mem/0: storing -1 in location 1002 run/0: instruction integer-to-decimal-string/3 @@ -85,15 +85,15 @@ mem/0: storing 1 in location 1002 run/0: instruction integer-to-decimal-string/14 run/0: {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer"]} <- init-buffer/101 {name: "30", value: 30, type: 0, properties: ["30": "literal"]} run/0: instruction init-buffer/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1031 run/0: instruction init-buffer/1 -run/0: {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} <- new/41 {name: "buffer", value: 9, type: 0, properties: ["buffer": "type"]} +run/0: {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} <- new/42 {name: "buffer", value: 9, type: 0, properties: ["buffer": "type"]} mem/0: new alloc: 1062 mem/0: storing 1062 in location 1033 run/0: instruction init-buffer/2 -run/0: {name: "len", value: 2, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is result mem/0: location 1033 is 1062 run/0: ingredient 1 is length @@ -106,7 +106,7 @@ run/0: ingredient 0 is 0 mem/0: location 1034 is 1062 mem/0: storing 0 in location 1062 run/0: instruction init-buffer/4 -run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character"]} <- get-address/24 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character"]} <- get-address/25 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1033 is 1062 run/0: ingredient 1 is data @@ -114,18 +114,18 @@ run/0: address to copy is 1063 run/0: product 0 is 1063 mem/0: storing 1063 in location 1035 run/0: instruction init-buffer/5 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 30 mem/0: storing 30 in location 1036 run/0: instruction init-buffer/6 -run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character", "deref": ]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character", "deref": ]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1036 is 30 mem/0: array size is 30 mem/0: new alloc: 1064 mem/0: location 1035 is 1063 mem/0: storing 1064 in location 1063 run/0: instruction init-buffer/7 -run/0: reply/32 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} +run/0: reply/33 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} mem/0: location 1033 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1006 @@ -167,30 +167,30 @@ run/0: {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer" mem/0: location 1006 is 1062 mem/0: location 1010 is 49 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1095 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1097 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 49 mem/0: storing 49 in location 1098 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1097 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1126 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1128 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1128 is 1062 run/0: ingredient 1 is length @@ -200,7 +200,7 @@ mem/0: location 1062 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1129 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1128 is 1062 run/0: ingredient 1 is data @@ -210,7 +210,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1130 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1130 is 1064 mem/0: storing 30 in location 1131 run/0: instruction buffer-full?/5 @@ -222,7 +222,7 @@ mem/0: location 1131 is 30 run/0: product 0 is 0 mem/0: storing 0 in location 1132 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1132 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1099 @@ -233,7 +233,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1097 is 1062 run/0: ingredient 1 is length @@ -241,7 +241,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1100 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1097 is 1062 run/0: ingredient 1 is data @@ -251,7 +251,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1101 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1101 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -276,7 +276,7 @@ run/0: product 0 is 1 mem/0: location 1100 is 1062 mem/0: storing 1 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1097 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1006 @@ -306,30 +306,30 @@ run/0: instruction integer-to-decimal-string/26 run/0: {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer"]} <- buffer-append/104 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer"]}, {name: "45", value: 45, type: 0, properties: ["45": "literal"]} mem/0: location 1006 is 1062 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1157 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1159 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 45 mem/0: storing 45 in location 1160 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1159 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1188 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1190 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1190 is 1062 run/0: ingredient 1 is length @@ -339,7 +339,7 @@ mem/0: location 1062 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 1191 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1190 is 1062 run/0: ingredient 1 is data @@ -349,7 +349,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1192 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1192 is 1064 mem/0: storing 30 in location 1193 run/0: instruction buffer-full?/5 @@ -361,7 +361,7 @@ mem/0: location 1193 is 30 run/0: product 0 is 0 mem/0: storing 0 in location 1194 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1194 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1161 @@ -372,7 +372,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1159 is 1062 run/0: ingredient 1 is length @@ -380,7 +380,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1162 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1159 is 1062 run/0: ingredient 1 is data @@ -390,7 +390,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1163 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1163 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -415,12 +415,12 @@ run/0: product 0 is 2 mem/0: location 1162 is 1062 mem/0: storing 2 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1159 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1006 run/0: instruction integer-to-decimal-string/28 -run/0: {name: "len", value: 10, type: 1, properties: ["len": "integer"]} <- get/23 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 10, type: 1, properties: ["len": "integer"]} <- get/24 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is tmp mem/0: location 1006 is 1062 run/0: ingredient 1 is length @@ -430,7 +430,7 @@ mem/0: location 1062 is 2 run/0: product 0 is 2 mem/0: storing 2 in location 1011 run/0: instruction integer-to-decimal-string/29 -run/0: {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is tmp mem/0: location 1006 is 1062 run/0: ingredient 1 is data @@ -440,7 +440,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1012 run/0: instruction integer-to-decimal-string/30 -run/0: {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "len", value: 10, type: 1, properties: ["len": "integer"]} +run/0: {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "len", value: 10, type: 1, properties: ["len": "integer"]} mem/0: location 1011 is 2 mem/0: array size is 2 mem/0: new alloc: 1219 @@ -469,7 +469,7 @@ mem/0: location 1008 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction integer-to-decimal-string/36 -run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/25 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/26 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1064 run/0: ingredient 1 is {name: "i", value: 12, type: 1, properties: ["i": "integer"]} @@ -480,7 +480,7 @@ mem/0: location 1066 is 45 run/0: product 0 is 45 mem/0: storing 45 in location 1015 run/0: instruction integer-to-decimal-string/37 -run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} +run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is result mem/0: location 1003 is 1219 run/0: ingredient 1 is {name: "j", value: 13, type: 1, properties: ["j": "integer"]} @@ -525,7 +525,7 @@ mem/0: location 1008 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction integer-to-decimal-string/36 -run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/25 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/26 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1064 run/0: ingredient 1 is {name: "i", value: 12, type: 1, properties: ["i": "integer"]} @@ -536,7 +536,7 @@ mem/0: location 1065 is 49 run/0: product 0 is 49 mem/0: storing 49 in location 1015 run/0: instruction integer-to-decimal-string/37 -run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} +run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is result mem/0: location 1003 is 1219 run/0: ingredient 1 is {name: "j", value: 13, type: 1, properties: ["j": "integer"]} @@ -582,7 +582,7 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 42 run/0: instruction integer-to-decimal-string/43 -run/0: reply/32 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} +run/0: reply/33 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} mem/0: location 1003 is 1219 run/0: result 0 is 1219 mem/0: storing 1219 in location 1 @@ -597,7 +597,7 @@ mem/0: storing 2 in location 2 mem/0: storing 45 in location 3 mem/0: storing 49 in location 4 run/0: instruction integer-to-decimal-digit-negative/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2 <- 2 3 <- 45 # '-' 4 <- 49 # '1' diff --git a/cpp/.traces/integer-to-decimal-digit-positive b/cpp/.traces/integer-to-decimal-digit-positive index a09aa37a..2c711967 100644 --- a/cpp/.traces/integer-to-decimal-digit-positive +++ b/cpp/.traces/integer-to-decimal-digit-positive @@ -18,7 +18,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: integer-to-decimal-digit-positive run/0: instruction integer-to-decimal-digit-positive/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:character/raw <- integer-to-decimal-string 234:literal 2:array:character/raw <- copy 1:address:array:character/deref/raw ", value: 0, type: 0, properties: [" @@ -37,11 +37,11 @@ after-brace/0: copy ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- integer-to-decimal-string/105 {name: "234", value: 234, type: 0, properties: ["234": "literal"]} run/0: instruction integer-to-decimal-string/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction integer-to-decimal-string/1 -run/0: {name: "n", value: 1, type: 1, properties: ["n": "integer"]} <- next-ingredient/29 +run/0: {name: "n", value: 1, type: 1, properties: ["n": "integer"]} <- next-ingredient/30 run/0: product 0 is 234 mem/0: storing 234 in location 1002 run/0: instruction integer-to-decimal-string/3 @@ -70,15 +70,15 @@ run/0: jumping to instruction 13 run/0: instruction integer-to-decimal-string/14 run/0: {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer"]} <- init-buffer/101 {name: "30", value: 30, type: 0, properties: ["30": "literal"]} run/0: instruction init-buffer/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1031 run/0: instruction init-buffer/1 -run/0: {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} <- new/41 {name: "buffer", value: 9, type: 0, properties: ["buffer": "type"]} +run/0: {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} <- new/42 {name: "buffer", value: 9, type: 0, properties: ["buffer": "type"]} mem/0: new alloc: 1062 mem/0: storing 1062 in location 1033 run/0: instruction init-buffer/2 -run/0: {name: "len", value: 2, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is result mem/0: location 1033 is 1062 run/0: ingredient 1 is length @@ -91,7 +91,7 @@ run/0: ingredient 0 is 0 mem/0: location 1034 is 1062 mem/0: storing 0 in location 1062 run/0: instruction init-buffer/4 -run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character"]} <- get-address/24 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character"]} <- get-address/25 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1033 is 1062 run/0: ingredient 1 is data @@ -99,18 +99,18 @@ run/0: address to copy is 1063 run/0: product 0 is 1063 mem/0: storing 1063 in location 1035 run/0: instruction init-buffer/5 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/29 +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- next-ingredient/30 run/0: product 0 is 30 mem/0: storing 30 in location 1036 run/0: instruction init-buffer/6 -run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character", "deref": ]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} +run/0: {name: "s", value: 3, type: 2-2-5-4, properties: ["s": "address":"address":"array":"character", "deref": ]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} mem/0: location 1036 is 30 mem/0: array size is 30 mem/0: new alloc: 1064 mem/0: location 1035 is 1063 mem/0: storing 1064 in location 1063 run/0: instruction init-buffer/7 -run/0: reply/32 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} +run/0: reply/33 {name: "result", value: 1, type: 2-9, properties: ["result": "address":"buffer"]} mem/0: location 1033 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1006 @@ -152,30 +152,30 @@ run/0: {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer" mem/0: location 1006 is 1062 mem/0: location 1010 is 52 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1095 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1097 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 52 mem/0: storing 52 in location 1098 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1097 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1126 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1128 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1128 is 1062 run/0: ingredient 1 is length @@ -185,7 +185,7 @@ mem/0: location 1062 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1129 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1128 is 1062 run/0: ingredient 1 is data @@ -195,7 +195,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1130 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1130 is 1064 mem/0: storing 30 in location 1131 run/0: instruction buffer-full?/5 @@ -207,7 +207,7 @@ mem/0: location 1131 is 30 run/0: product 0 is 0 mem/0: storing 0 in location 1132 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1132 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1099 @@ -218,7 +218,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1097 is 1062 run/0: ingredient 1 is length @@ -226,7 +226,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1100 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1097 is 1062 run/0: ingredient 1 is data @@ -236,7 +236,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1101 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1101 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -261,7 +261,7 @@ run/0: product 0 is 1 mem/0: location 1100 is 1062 mem/0: storing 1 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1097 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1006 @@ -303,30 +303,30 @@ run/0: {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer" mem/0: location 1006 is 1062 mem/0: location 1010 is 51 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1157 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1159 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 51 mem/0: storing 51 in location 1160 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1159 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1188 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1190 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1190 is 1062 run/0: ingredient 1 is length @@ -336,7 +336,7 @@ mem/0: location 1062 is 1 run/0: product 0 is 1 mem/0: storing 1 in location 1191 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1190 is 1062 run/0: ingredient 1 is data @@ -346,7 +346,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1192 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1192 is 1064 mem/0: storing 30 in location 1193 run/0: instruction buffer-full?/5 @@ -358,7 +358,7 @@ mem/0: location 1193 is 30 run/0: product 0 is 0 mem/0: storing 0 in location 1194 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1194 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1161 @@ -369,7 +369,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1159 is 1062 run/0: ingredient 1 is length @@ -377,7 +377,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1162 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1159 is 1062 run/0: ingredient 1 is data @@ -387,7 +387,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1163 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1163 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -412,7 +412,7 @@ run/0: product 0 is 2 mem/0: location 1162 is 1062 mem/0: storing 2 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1159 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1006 @@ -454,30 +454,30 @@ run/0: {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer" mem/0: location 1006 is 1062 mem/0: location 1010 is 50 run/0: instruction buffer-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1219 run/0: instruction buffer-append/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1221 run/0: instruction buffer-append/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 50 mem/0: storing 50 in location 1222 run/0: instruction buffer-append/4 run/0: {name: "full?", value: 3, type: 3, properties: ["full?": "boolean"]} <- buffer-full?/103 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} mem/0: location 1221 is 1062 run/0: instruction buffer-full?/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1250 run/0: instruction buffer-full?/1 -run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/29 +run/0: {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer"]} <- next-ingredient/30 run/0: product 0 is 1062 mem/0: storing 1062 in location 1252 run/0: instruction buffer-full?/2 -run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 2, type: 1, properties: ["len": "integer"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1252 is 1062 run/0: ingredient 1 is length @@ -487,7 +487,7 @@ mem/0: location 1062 is 2 run/0: product 0 is 2 mem/0: storing 2 in location 1253 run/0: instruction buffer-full?/3 -run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1252 is 1062 run/0: ingredient 1 is data @@ -497,7 +497,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1254 run/0: instruction buffer-full?/4 -run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/27 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} +run/0: {name: "capacity", value: 4, type: 1, properties: ["capacity": "integer"]} <- length/28 {name: "s", value: 3, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]} mem/0: location 1254 is 1064 mem/0: storing 30 in location 1255 run/0: instruction buffer-full?/5 @@ -509,7 +509,7 @@ mem/0: location 1255 is 30 run/0: product 0 is 0 mem/0: storing 0 in location 1256 run/0: instruction buffer-full?/6 -run/0: reply/32 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} +run/0: reply/33 {name: "result", value: 5, type: 3, properties: ["result": "boolean"]} mem/0: location 1256 is 0 run/0: result 0 is 0 mem/0: storing 0 in location 1223 @@ -520,7 +520,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 7 run/0: instruction buffer-append/8 -run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer"]} <- get-address/25 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is in mem/0: location 1221 is 1062 run/0: ingredient 1 is length @@ -528,7 +528,7 @@ run/0: address to copy is 1062 run/0: product 0 is 1062 mem/0: storing 1062 in location 1224 run/0: instruction buffer-append/9 -run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/23 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character"]} <- get/24 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is in mem/0: location 1221 is 1062 run/0: ingredient 1 is data @@ -538,7 +538,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1225 run/0: instruction buffer-append/10 -run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} +run/0: {name: "dest", value: 6, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "s", value: 5, type: 2-5-4, properties: ["s": "address":"array":"character", "deref": ]}, {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} run/0: ingredient 0 is s mem/0: location 1225 is 1064 run/0: ingredient 1 is {name: "len", value: 4, type: 2-1, properties: ["len": "address":"integer", "deref": ]} @@ -563,7 +563,7 @@ run/0: product 0 is 3 mem/0: location 1224 is 1062 mem/0: storing 3 in location 1062 run/0: instruction buffer-append/13 -run/0: reply/32 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "in", value: 1, type: 2-9, properties: ["in": "address":"buffer", "same-as-ingredient": "0"]} mem/0: location 1221 is 1062 run/0: result 0 is 1062 mem/0: storing 1062 in location 1006 @@ -591,7 +591,7 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 27 run/0: instruction integer-to-decimal-string/28 -run/0: {name: "len", value: 10, type: 1, properties: ["len": "integer"]} <- get/23 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} +run/0: {name: "len", value: 10, type: 1, properties: ["len": "integer"]} <- get/24 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "length", value: 0, type: 0, properties: ["length": "offset"]} run/0: ingredient 0 is tmp mem/0: location 1006 is 1062 run/0: ingredient 1 is length @@ -601,7 +601,7 @@ mem/0: location 1062 is 3 run/0: product 0 is 3 mem/0: storing 3 in location 1011 run/0: instruction integer-to-decimal-string/29 -run/0: {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "tmp", value: 5, type: 2-9, properties: ["tmp": "address":"buffer", "deref": ]}, {name: "data", value: 1, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is tmp mem/0: location 1006 is 1062 run/0: ingredient 1 is data @@ -611,7 +611,7 @@ mem/0: location 1063 is 1064 run/0: product 0 is 1064 mem/0: storing 1064 in location 1012 run/0: instruction integer-to-decimal-string/30 -run/0: {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "len", value: 10, type: 1, properties: ["len": "integer"]} +run/0: {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "len", value: 10, type: 1, properties: ["len": "integer"]} mem/0: location 1011 is 3 mem/0: array size is 3 mem/0: new alloc: 1281 @@ -640,7 +640,7 @@ mem/0: location 1008 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction integer-to-decimal-string/36 -run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/25 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/26 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1064 run/0: ingredient 1 is {name: "i", value: 12, type: 1, properties: ["i": "integer"]} @@ -651,7 +651,7 @@ mem/0: location 1067 is 50 run/0: product 0 is 50 mem/0: storing 50 in location 1015 run/0: instruction integer-to-decimal-string/37 -run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} +run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is result mem/0: location 1003 is 1281 run/0: ingredient 1 is {name: "j", value: 13, type: 1, properties: ["j": "integer"]} @@ -696,7 +696,7 @@ mem/0: location 1008 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction integer-to-decimal-string/36 -run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/25 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/26 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1064 run/0: ingredient 1 is {name: "i", value: 12, type: 1, properties: ["i": "integer"]} @@ -707,7 +707,7 @@ mem/0: location 1066 is 51 run/0: product 0 is 51 mem/0: storing 51 in location 1015 run/0: instruction integer-to-decimal-string/37 -run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} +run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is result mem/0: location 1003 is 1281 run/0: ingredient 1 is {name: "j", value: 13, type: 1, properties: ["j": "integer"]} @@ -752,7 +752,7 @@ mem/0: location 1008 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction integer-to-decimal-string/36 -run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/25 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} +run/0: {name: "src", value: 14, type: 4, properties: ["src": "character"]} <- index/26 {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 12, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "buf", value: 11, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1064 run/0: ingredient 1 is {name: "i", value: 12, type: 1, properties: ["i": "integer"]} @@ -763,7 +763,7 @@ mem/0: location 1065 is 52 run/0: product 0 is 52 mem/0: storing 52 in location 1015 run/0: instruction integer-to-decimal-string/37 -run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/26 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} +run/0: {name: "dest", value: 15, type: 2-4, properties: ["dest": "address":"character"]} <- index-address/27 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "j", value: 13, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is result mem/0: location 1003 is 1281 run/0: ingredient 1 is {name: "j", value: 13, type: 1, properties: ["j": "integer"]} @@ -809,7 +809,7 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 42 run/0: instruction integer-to-decimal-string/43 -run/0: reply/32 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} +run/0: reply/33 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} mem/0: location 1003 is 1281 run/0: result 0 is 1281 mem/0: storing 1281 in location 1 @@ -826,7 +826,7 @@ mem/0: storing 50 in location 3 mem/0: storing 51 in location 4 mem/0: storing 52 in location 5 run/0: instruction integer-to-decimal-digit-positive/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2:string <- [234] ", value: 0, type: 0, properties: [" 2:string <- [234] diff --git a/cpp/.traces/integer-to-decimal-digit-zero b/cpp/.traces/integer-to-decimal-digit-zero index 64d5b93d..210d1e48 100644 --- a/cpp/.traces/integer-to-decimal-digit-zero +++ b/cpp/.traces/integer-to-decimal-digit-zero @@ -18,7 +18,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: integer-to-decimal-digit-zero run/0: instruction integer-to-decimal-digit-zero/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:character/raw <- integer-to-decimal-string 0:literal 2:array:character/raw <- copy 1:address:array:character/deref/raw ", value: 0, type: 0, properties: [" @@ -37,11 +37,11 @@ after-brace/0: copy ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- integer-to-decimal-string/105 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: instruction integer-to-decimal-string/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction integer-to-decimal-string/1 -run/0: {name: "n", value: 1, type: 1, properties: ["n": "integer"]} <- next-ingredient/29 +run/0: {name: "n", value: 1, type: 1, properties: ["n": "integer"]} <- next-ingredient/30 run/0: product 0 is 0 mem/0: storing 0 in location 1002 run/0: instruction integer-to-decimal-string/3 @@ -50,10 +50,10 @@ mem/0: location 1002 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction integer-to-decimal-string/4 -run/0: {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/41 {name: "0", value: 0, type: 0, properties: ["0": "literal-string"]} +run/0: {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/42 {name: "0", value: 0, type: 0, properties: ["0": "literal-string"]} mem/0: storing 1031 in location 1003 run/0: instruction integer-to-decimal-string/5 -run/0: reply/32 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} +run/0: reply/33 {name: "result", value: 2, type: 2-5-4, properties: ["result": "address":"array":"character"]} mem/0: location 1003 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -66,7 +66,7 @@ mem/0: location 1032 is 48 mem/0: storing 1 in location 2 mem/0: storing 48 in location 3 run/0: instruction integer-to-decimal-digit-zero/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 2:string <- [0] ", value: 0, type: 0, properties: [" 2:string <- [0] diff --git a/cpp/.traces/interpolate-at-end b/cpp/.traces/interpolate-at-end index 08c9aa86..8b432ef7 100644 --- a/cpp/.traces/interpolate-at-end +++ b/cpp/.traces/interpolate-at-end @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: interpolate-at-end run/0: instruction interpolate-at-end/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:character/raw <- new [hello, _] 2:address:array:character/raw <- new [abc] 3:address:array:character/raw <- interpolate 1:address:array:character/raw, 2:address:array:character/raw @@ -54,25 +54,25 @@ after-brace/0: new ... after-brace/0: interpolate ... after-brace/0: copy ... run/0: instruction run1001/0 -run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/41 {name: "hello, _", value: 0, type: 0, properties: ["hello, _": "literal-string"]} +run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/42 {name: "hello, _", value: 0, type: 0, properties: ["hello, _": "literal-string"]} mem/0: storing 1000 in location 1 run/0: instruction run1001/1 -run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/41 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/42 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1009 in location 2 run/0: instruction run1001/2 run/0: {name: "3", value: 3, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} <- interpolate/107 {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]}, {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} mem/0: location 1 is 1000 mem/0: location 2 is 1009 run/0: instruction interpolate/0 -run/0: {name: "default-space", value: 0, type: 5-2-1, properties: ["default-space": "array":"address":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "60", value: 60, type: 0, properties: ["60": "literal"]} +run/0: {name: "default-space", value: 0, type: 5-2-1, properties: ["default-space": "array":"address":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "60", value: 60, type: 0, properties: ["60": "literal"]} mem/0: array size is 60 mem/0: new alloc: 1013 run/0: instruction interpolate/1 -run/0: {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1000 mem/0: storing 1000 in location 1015 run/0: instruction interpolate/2 -run/0: {name: "tem-len", value: 2, type: 1, properties: ["tem-len": "integer"]} <- length/27 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} +run/0: {name: "tem-len", value: 2, type: 1, properties: ["tem-len": "integer"]} <- length/28 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 mem/0: storing 8 in location 1016 run/0: instruction interpolate/3 @@ -81,7 +81,7 @@ run/0: ingredient 0 is tem-len mem/0: location 1016 is 8 mem/0: storing 8 in location 1017 run/0: instruction interpolate/5 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1009 mem/0: storing 1009 in location 1018 mem/0: storing 1 in location 1019 @@ -91,7 +91,7 @@ mem/0: location 1019 is 1 run/0: ingredient 0 is 1 run/0: jump-unless fell through run/0: instruction interpolate/7 -run/0: {name: "a-len", value: 6, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 6, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1018 is 1009 mem/0: storing 3 in location 1020 run/0: instruction interpolate/8 @@ -114,7 +114,7 @@ run/0: loop/10 {name: "", value: -6, type: , properties: ["": ]} run/0: ingredient 0 is -6 run/0: jumping to instruction 5 run/0: instruction interpolate/5 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1019 run/0: instruction interpolate/6 run/0: break-unless/12 {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]}, {name: "", value: 4, type: , properties: ["": ]} @@ -123,12 +123,12 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 11 run/0: instruction interpolate/12 -run/0: rewind-ingredients/30 +run/0: rewind-ingredients/31 run/0: instruction interpolate/13 -run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} <- next-ingredient/29 +run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} <- next-ingredient/30 run/0: product 0 is 1000 run/0: instruction interpolate/14 -run/0: {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 3, type: 1, properties: ["result-len": "integer"]} +run/0: {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 3, type: 1, properties: ["result-len": "integer"]} mem/0: location 1017 is 10 mem/0: array size is 10 mem/0: new alloc: 1074 @@ -142,7 +142,7 @@ run/0: {name: "i", value: 9, type: 1, properties: ["i": "integer"]} <- copy/1 {n run/0: ingredient 0 is 0 mem/0: storing 0 in location 1023 run/0: instruction interpolate/18 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1009 mem/0: storing 1009 in location 1018 mem/0: storing 1 in location 1019 @@ -165,7 +165,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -188,7 +188,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -234,7 +234,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -257,7 +257,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -303,7 +303,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -326,7 +326,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -372,7 +372,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -395,7 +395,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -441,7 +441,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -464,7 +464,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -510,7 +510,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -533,7 +533,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -579,7 +579,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -602,7 +602,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -648,7 +648,7 @@ mem/0: location 1024 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -689,7 +689,7 @@ mem/0: location 1029 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1018 is 1009 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -700,7 +700,7 @@ mem/0: location 1010 is 97 run/0: product 0 is 97 mem/0: storing 97 in location 1025 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -746,7 +746,7 @@ mem/0: location 1029 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1018 is 1009 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -757,7 +757,7 @@ mem/0: location 1011 is 98 run/0: product 0 is 98 mem/0: storing 98 in location 1025 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -803,7 +803,7 @@ mem/0: location 1029 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1018 is 1009 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -814,7 +814,7 @@ mem/0: location 1012 is 99 run/0: product 0 is 99 mem/0: storing 99 in location 1025 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1021 is 1074 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -872,7 +872,7 @@ run/0: loop/10 {name: "", value: -27, type: , properties: ["": ]} run/0: ingredient 0 is -27 run/0: jumping to instruction 18 run/0: instruction interpolate/18 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1019 run/0: instruction interpolate/19 run/0: break-unless/12 {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]}, {name: "", value: 25, type: , properties: ["": ]} @@ -895,7 +895,7 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 55 run/0: instruction interpolate/56 -run/0: reply/32 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} +run/0: reply/33 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} mem/0: location 1021 is 1074 run/0: result 0 is 1074 mem/0: storing 1074 in location 3 @@ -926,7 +926,7 @@ mem/0: storing 97 in location 12 mem/0: storing 98 in location 13 mem/0: storing 99 in location 14 run/0: instruction interpolate-at-end/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 4:string <- [hello, abc] ", value: 0, type: 0, properties: [" 4:string <- [hello, abc] diff --git a/cpp/.traces/interpolate-at-start b/cpp/.traces/interpolate-at-start index faaacb97..f1208a13 100644 --- a/cpp/.traces/interpolate-at-start +++ b/cpp/.traces/interpolate-at-start @@ -24,7 +24,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: interpolate-at-start run/0: instruction interpolate-at-start/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:character/raw <- new [_, hello!] 2:address:array:character/raw <- new [abc] 3:address:array:character/raw <- interpolate 1:address:array:character/raw, 2:address:array:character/raw @@ -56,25 +56,25 @@ after-brace/0: new ... after-brace/0: interpolate ... after-brace/0: copy ... run/0: instruction run1001/0 -run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/41 {name: "_, hello!", value: 0, type: 0, properties: ["_, hello!": "literal-string"]} +run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/42 {name: "_, hello!", value: 0, type: 0, properties: ["_, hello!": "literal-string"]} mem/0: storing 1000 in location 1 run/0: instruction run1001/1 -run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/41 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/42 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1010 in location 2 run/0: instruction run1001/2 run/0: {name: "3", value: 3, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} <- interpolate/107 {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]}, {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} mem/0: location 1 is 1000 mem/0: location 2 is 1010 run/0: instruction interpolate/0 -run/0: {name: "default-space", value: 0, type: 5-2-1, properties: ["default-space": "array":"address":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "60", value: 60, type: 0, properties: ["60": "literal"]} +run/0: {name: "default-space", value: 0, type: 5-2-1, properties: ["default-space": "array":"address":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "60", value: 60, type: 0, properties: ["60": "literal"]} mem/0: array size is 60 mem/0: new alloc: 1014 run/0: instruction interpolate/1 -run/0: {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1000 mem/0: storing 1000 in location 1016 run/0: instruction interpolate/2 -run/0: {name: "tem-len", value: 2, type: 1, properties: ["tem-len": "integer"]} <- length/27 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} +run/0: {name: "tem-len", value: 2, type: 1, properties: ["tem-len": "integer"]} <- length/28 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 mem/0: storing 9 in location 1017 run/0: instruction interpolate/3 @@ -83,7 +83,7 @@ run/0: ingredient 0 is tem-len mem/0: location 1017 is 9 mem/0: storing 9 in location 1018 run/0: instruction interpolate/5 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1010 mem/0: storing 1010 in location 1019 mem/0: storing 1 in location 1020 @@ -93,7 +93,7 @@ mem/0: location 1020 is 1 run/0: ingredient 0 is 1 run/0: jump-unless fell through run/0: instruction interpolate/7 -run/0: {name: "a-len", value: 6, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 6, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1010 mem/0: storing 3 in location 1021 run/0: instruction interpolate/8 @@ -116,7 +116,7 @@ run/0: loop/10 {name: "", value: -6, type: , properties: ["": ]} run/0: ingredient 0 is -6 run/0: jumping to instruction 5 run/0: instruction interpolate/5 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1020 run/0: instruction interpolate/6 run/0: break-unless/12 {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]}, {name: "", value: 4, type: , properties: ["": ]} @@ -125,12 +125,12 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 11 run/0: instruction interpolate/12 -run/0: rewind-ingredients/30 +run/0: rewind-ingredients/31 run/0: instruction interpolate/13 -run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} <- next-ingredient/29 +run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} <- next-ingredient/30 run/0: product 0 is 1000 run/0: instruction interpolate/14 -run/0: {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 3, type: 1, properties: ["result-len": "integer"]} +run/0: {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 3, type: 1, properties: ["result-len": "integer"]} mem/0: location 1018 is 11 mem/0: array size is 11 mem/0: new alloc: 1075 @@ -144,7 +144,7 @@ run/0: {name: "i", value: 9, type: 1, properties: ["i": "integer"]} <- copy/1 {n run/0: ingredient 0 is 0 mem/0: storing 0 in location 1024 run/0: instruction interpolate/18 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1010 mem/0: storing 1010 in location 1019 mem/0: storing 1 in location 1020 @@ -167,7 +167,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -208,7 +208,7 @@ mem/0: location 1030 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1010 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -219,7 +219,7 @@ mem/0: location 1011 is 97 run/0: product 0 is 97 mem/0: storing 97 in location 1026 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -265,7 +265,7 @@ mem/0: location 1030 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1010 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -276,7 +276,7 @@ mem/0: location 1012 is 98 run/0: product 0 is 98 mem/0: storing 98 in location 1026 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -322,7 +322,7 @@ mem/0: location 1030 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1010 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -333,7 +333,7 @@ mem/0: location 1013 is 99 run/0: product 0 is 99 mem/0: storing 99 in location 1026 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -391,7 +391,7 @@ run/0: loop/10 {name: "", value: -27, type: , properties: ["": ]} run/0: ingredient 0 is -27 run/0: jumping to instruction 18 run/0: instruction interpolate/18 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1020 run/0: instruction interpolate/19 run/0: break-unless/12 {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]}, {name: "", value: 25, type: , properties: ["": ]} @@ -413,7 +413,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -424,7 +424,7 @@ mem/0: location 1002 is 44 run/0: product 0 is 44 mem/0: storing 44 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -470,7 +470,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -481,7 +481,7 @@ mem/0: location 1003 is 32 run/0: product 0 is 32 mem/0: storing 32 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -527,7 +527,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -538,7 +538,7 @@ mem/0: location 1004 is 104 run/0: product 0 is 104 mem/0: storing 104 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -584,7 +584,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -595,7 +595,7 @@ mem/0: location 1005 is 101 run/0: product 0 is 101 mem/0: storing 101 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -641,7 +641,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -652,7 +652,7 @@ mem/0: location 1006 is 108 run/0: product 0 is 108 mem/0: storing 108 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -698,7 +698,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -709,7 +709,7 @@ mem/0: location 1007 is 108 run/0: product 0 is 108 mem/0: storing 108 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -755,7 +755,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -766,7 +766,7 @@ mem/0: location 1008 is 111 run/0: product 0 is 111 mem/0: storing 111 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -812,7 +812,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/49 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1016 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -823,7 +823,7 @@ mem/0: location 1009 is 33 run/0: product 0 is 33 mem/0: storing 33 in location 1026 run/0: instruction interpolate/50 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1075 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -870,7 +870,7 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 55 run/0: instruction interpolate/56 -run/0: reply/32 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} +run/0: reply/33 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} mem/0: location 1022 is 1075 run/0: result 0 is 1075 mem/0: storing 1075 in location 3 @@ -903,7 +903,7 @@ mem/0: storing 108 in location 13 mem/0: storing 111 in location 14 mem/0: storing 33 in location 15 run/0: instruction interpolate-at-start/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 4:string <- [abc, hello!] 16 <- 0 # out of bounds ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/interpolate-works b/cpp/.traces/interpolate-works index a9251adc..5e99215f 100644 --- a/cpp/.traces/interpolate-works +++ b/cpp/.traces/interpolate-works @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: interpolate-works run/0: instruction interpolate-works/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:character/raw <- new [abc _] 2:address:array:character/raw <- new [def] 3:address:array:character/raw <- interpolate 1:address:array:character/raw, 2:address:array:character/raw @@ -54,25 +54,25 @@ after-brace/0: new ... after-brace/0: interpolate ... after-brace/0: copy ... run/0: instruction run1001/0 -run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/41 {name: "abc _", value: 0, type: 0, properties: ["abc _": "literal-string"]} +run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/42 {name: "abc _", value: 0, type: 0, properties: ["abc _": "literal-string"]} mem/0: storing 1000 in location 1 run/0: instruction run1001/1 -run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/41 {name: "def", value: 0, type: 0, properties: ["def": "literal-string"]} +run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/42 {name: "def", value: 0, type: 0, properties: ["def": "literal-string"]} mem/0: storing 1006 in location 2 run/0: instruction run1001/2 run/0: {name: "3", value: 3, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} <- interpolate/107 {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]}, {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} mem/0: location 1 is 1000 mem/0: location 2 is 1006 run/0: instruction interpolate/0 -run/0: {name: "default-space", value: 0, type: 5-2-1, properties: ["default-space": "array":"address":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "60", value: 60, type: 0, properties: ["60": "literal"]} +run/0: {name: "default-space", value: 0, type: 5-2-1, properties: ["default-space": "array":"address":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "60", value: 60, type: 0, properties: ["60": "literal"]} mem/0: array size is 60 mem/0: new alloc: 1010 run/0: instruction interpolate/1 -run/0: {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1000 mem/0: storing 1000 in location 1012 run/0: instruction interpolate/2 -run/0: {name: "tem-len", value: 2, type: 1, properties: ["tem-len": "integer"]} <- length/27 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} +run/0: {name: "tem-len", value: 2, type: 1, properties: ["tem-len": "integer"]} <- length/28 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1000 mem/0: storing 5 in location 1013 run/0: instruction interpolate/3 @@ -81,7 +81,7 @@ run/0: ingredient 0 is tem-len mem/0: location 1013 is 5 mem/0: storing 5 in location 1014 run/0: instruction interpolate/5 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1006 mem/0: storing 1006 in location 1015 mem/0: storing 1 in location 1016 @@ -91,7 +91,7 @@ mem/0: location 1016 is 1 run/0: ingredient 0 is 1 run/0: jump-unless fell through run/0: instruction interpolate/7 -run/0: {name: "a-len", value: 6, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 6, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1006 mem/0: storing 3 in location 1017 run/0: instruction interpolate/8 @@ -114,7 +114,7 @@ run/0: loop/10 {name: "", value: -6, type: , properties: ["": ]} run/0: ingredient 0 is -6 run/0: jumping to instruction 5 run/0: instruction interpolate/5 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1016 run/0: instruction interpolate/6 run/0: break-unless/12 {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]}, {name: "", value: 4, type: , properties: ["": ]} @@ -123,12 +123,12 @@ run/0: ingredient 0 is 0 run/0: ingredient 1 is run/0: jumping to instruction 11 run/0: instruction interpolate/12 -run/0: rewind-ingredients/30 +run/0: rewind-ingredients/31 run/0: instruction interpolate/13 -run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} <- next-ingredient/29 +run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} <- next-ingredient/30 run/0: product 0 is 1000 run/0: instruction interpolate/14 -run/0: {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 3, type: 1, properties: ["result-len": "integer"]} +run/0: {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 3, type: 1, properties: ["result-len": "integer"]} mem/0: location 1014 is 7 mem/0: array size is 7 mem/0: new alloc: 1071 @@ -142,7 +142,7 @@ run/0: {name: "i", value: 9, type: 1, properties: ["i": "integer"]} <- copy/1 {n run/0: ingredient 0 is 0 mem/0: storing 0 in location 1020 run/0: instruction interpolate/18 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 run/0: product 0 is 1006 mem/0: storing 1006 in location 1015 mem/0: storing 1 in location 1016 @@ -165,7 +165,7 @@ mem/0: location 1021 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -188,7 +188,7 @@ mem/0: location 1023 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1018 is 1071 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -234,7 +234,7 @@ mem/0: location 1021 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -257,7 +257,7 @@ mem/0: location 1023 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1018 is 1071 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -303,7 +303,7 @@ mem/0: location 1021 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -326,7 +326,7 @@ mem/0: location 1023 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1018 is 1071 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -372,7 +372,7 @@ mem/0: location 1021 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -395,7 +395,7 @@ mem/0: location 1023 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/26 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1018 is 1071 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -441,7 +441,7 @@ mem/0: location 1021 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/23 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]}, {name: "i", value: 9, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "template", value: 1, type: 2-5-4, properties: ["template": "address":"array":"character", "deref": ]} mem/0: location 1012 is 1000 run/0: ingredient 1 is {name: "i", value: 9, type: 1, properties: ["i": "integer"]} @@ -482,7 +482,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1006 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -493,7 +493,7 @@ mem/0: location 1007 is 100 run/0: product 0 is 100 mem/0: storing 100 in location 1022 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1018 is 1071 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -539,7 +539,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1006 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -550,7 +550,7 @@ mem/0: location 1008 is 101 run/0: product 0 is 101 mem/0: storing 101 in location 1022 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1018 is 1071 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -596,7 +596,7 @@ mem/0: location 1026 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction interpolate/36 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "j", value: 14, type: 1, properties: ["j": "integer"]} run/0: ingredient 0 is {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1015 is 1006 run/0: ingredient 1 is {name: "j", value: 14, type: 1, properties: ["j": "integer"]} @@ -607,7 +607,7 @@ mem/0: location 1009 is 102 run/0: product 0 is 102 mem/0: storing 102 in location 1022 run/0: instruction interpolate/37 -run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 13, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1018 is 1071 run/0: ingredient 1 is {name: "result-idx", value: 8, type: 1, properties: ["result-idx": "integer"]} @@ -665,7 +665,7 @@ run/0: loop/10 {name: "", value: -27, type: , properties: ["": ]} run/0: ingredient 0 is -27 run/0: jumping to instruction 18 run/0: instruction interpolate/18 -run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/29 +run/0: {name: "a", value: 4, type: 2-5-4, properties: ["a": "address":"array":"character"]}, {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1016 run/0: instruction interpolate/19 run/0: break-unless/12 {name: "arg-received?", value: 5, type: 3, properties: ["arg-received?": "boolean"]}, {name: "", value: 25, type: , properties: ["": ]} @@ -688,7 +688,7 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 55 run/0: instruction interpolate/56 -run/0: reply/32 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} +run/0: reply/33 {name: "result", value: 7, type: 2-5-4, properties: ["result": "address":"array":"character"]} mem/0: location 1018 is 1071 run/0: result 0 is 1071 mem/0: storing 1071 in location 3 @@ -713,7 +713,7 @@ mem/0: storing 100 in location 9 mem/0: storing 101 in location 10 mem/0: storing 102 in location 11 run/0: instruction interpolate-works/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 4:string <- [abc def] ", value: 0, type: 0, properties: [" 4:string <- [abc def] diff --git a/cpp/.traces/maybe_convert b/cpp/.traces/maybe_convert index 0c26557b..5a90d04c 100644 --- a/cpp/.traces/maybe_convert +++ b/cpp/.traces/maybe_convert @@ -31,7 +31,7 @@ run/0: {name: "14", value: 14, type: 1, properties: ["14": "integer"]} <- copy/1 run/0: ingredient 0 is 36 mem/0: storing 36 in location 14 run/0: instruction main/3 -run/0: {name: "20", value: 20, type: 2-6, properties: ["20": "address":"point"]} <- maybe-convert/28 {name: "12", value: 12, type: 8, properties: ["12": "integer-or-point"]}, {name: "1", value: 1, type: 0, properties: ["1": "variant"]} +run/0: {name: "20", value: 20, type: 2-6, properties: ["20": "address":"point"]} <- maybe-convert/29 {name: "12", value: 12, type: 8, properties: ["12": "integer-or-point"]}, {name: "1", value: 1, type: 0, properties: ["1": "variant"]} run/0: ingredient 0 is 12 run/0: ingredient 1 is 1 mem/0: storing 13 in location 20 diff --git a/cpp/.traces/maybe_convert_fail b/cpp/.traces/maybe_convert_fail index c28c17b3..e925f76c 100644 --- a/cpp/.traces/maybe_convert_fail +++ b/cpp/.traces/maybe_convert_fail @@ -31,7 +31,7 @@ run/0: {name: "14", value: 14, type: 1, properties: ["14": "integer"]} <- copy/1 run/0: ingredient 0 is 36 mem/0: storing 36 in location 14 run/0: instruction main/3 -run/0: {name: "20", value: 20, type: 2-6, properties: ["20": "address":"point"]} <- maybe-convert/28 {name: "12", value: 12, type: 8, properties: ["12": "integer-or-point"]}, {name: "0", value: 0, type: 0, properties: ["0": "variant"]} +run/0: {name: "20", value: 20, type: 2-6, properties: ["20": "address":"point"]} <- maybe-convert/29 {name: "12", value: 12, type: 8, properties: ["12": "integer-or-point"]}, {name: "0", value: 0, type: 0, properties: ["0": "variant"]} run/0: ingredient 0 is 12 run/0: ingredient 1 is 0 mem/0: storing 0 in location 20 diff --git a/cpp/.traces/maybe_convert_named b/cpp/.traces/maybe_convert_named index 96a6528e..aea23061 100644 --- a/cpp/.traces/maybe_convert_named +++ b/cpp/.traces/maybe_convert_named @@ -32,7 +32,7 @@ run/0: {name: "14", value: 14, type: 1, properties: ["14": "integer"]} <- copy/1 run/0: ingredient 0 is 36 mem/0: storing 36 in location 14 run/0: instruction main/3 -run/0: {name: "20", value: 20, type: 2-6, properties: ["20": "address":"point"]} <- maybe-convert/28 {name: "12", value: 12, type: 8, properties: ["12": "integer-or-point"]}, {name: "p", value: 1, type: 0, properties: ["p": "variant"]} +run/0: {name: "20", value: 20, type: 2-6, properties: ["20": "address":"point"]} <- maybe-convert/29 {name: "12", value: 12, type: 8, properties: ["12": "integer-or-point"]}, {name: "p", value: 1, type: 0, properties: ["p": "variant"]} run/0: ingredient 0 is 12 run/0: ingredient 1 is p mem/0: storing 13 in location 20 diff --git a/cpp/.traces/memory_check b/cpp/.traces/memory_check index 8f112824..5af724c2 100644 --- a/cpp/.traces/memory_check +++ b/cpp/.traces/memory_check @@ -9,7 +9,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 13 ", value: 0, type: 0, properties: [" 1 <- 13 diff --git a/cpp/.traces/memory_check_multiple b/cpp/.traces/memory_check_multiple index a90f062b..cc3b17d6 100644 --- a/cpp/.traces/memory_check_multiple +++ b/cpp/.traces/memory_check_multiple @@ -11,7 +11,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 0 1 <- 0 ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/memory_check_string b/cpp/.traces/memory_check_string index 4d878131..dfa06bdd 100644 --- a/cpp/.traces/memory_check_string +++ b/cpp/.traces/memory_check_string @@ -41,7 +41,7 @@ run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- copy/1 {n run/0: ingredient 0 is 99 mem/0: storing 99 in location 4 run/0: instruction main/4 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1:string <- [abc] ", value: 0, type: 0, properties: [" 1:string <- [abc] diff --git a/cpp/.traces/memory_check_string_length b/cpp/.traces/memory_check_string_length index 2d9759cd..ffcdac6b 100644 --- a/cpp/.traces/memory_check_string_length +++ b/cpp/.traces/memory_check_string_length @@ -41,7 +41,7 @@ run/0: {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- copy/1 {n run/0: ingredient 0 is 99 mem/0: storing 99 in location 4 run/0: instruction main/4 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1:string <- [ab] ", value: 0, type: 0, properties: [" 1:string <- [ab] diff --git a/cpp/.traces/new b/cpp/.traces/new index fddad2e9..cf7869b3 100644 --- a/cpp/.traces/new +++ b/cpp/.traces/new @@ -17,11 +17,11 @@ after-brace/0: equal ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer", "raw": ]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} +run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer", "raw": ]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 1000 mem/0: storing 1000 in location 1 run/0: instruction main/1 -run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer", "raw": ]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} +run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer", "raw": ]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 1001 mem/0: storing 1001 in location 2 run/0: instruction main/2 diff --git a/cpp/.traces/new_array b/cpp/.traces/new_array index 44369804..b54be5a0 100644 --- a/cpp/.traces/new_array +++ b/cpp/.traces/new_array @@ -18,12 +18,12 @@ after-brace/0: subtract ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"integer", "raw": ]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]}, {name: "5", value: 5, type: 0, properties: ["5": "literal"]} +run/0: {name: "1", value: 1, type: 2-5-1, properties: ["1": "address":"array":"integer", "raw": ]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]}, {name: "5", value: 5, type: 0, properties: ["5": "literal"]} mem/0: array size is 5 mem/0: new alloc: 1000 mem/0: storing 1000 in location 1 run/0: instruction main/1 -run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer", "raw": ]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} +run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer", "raw": ]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 1006 mem/0: storing 1006 in location 2 run/0: instruction main/2 diff --git a/cpp/.traces/new_concurrent b/cpp/.traces/new_concurrent index cf9c8dba..be0d15a9 100644 --- a/cpp/.traces/new_concurrent +++ b/cpp/.traces/new_concurrent @@ -21,16 +21,16 @@ after-brace/0: equal ... new/0: routine allocated memory from 1000 to 101000 schedule/0: f1 run/0: instruction f1/0 -run/0: start-running/33 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} +run/0: start-running/34 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} run/0: ingredient 0 is f2 new/0: routine allocated memory from 101000 to 201000 run/0: instruction f1/1 -run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer", "raw": ]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} +run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer", "raw": ]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 1000 mem/0: storing 1000 in location 1 schedule/0: f2 run/0: instruction f2/0 -run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer", "raw": ]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} +run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer", "raw": ]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 101000 mem/0: storing 101000 in location 2 run/0: instruction f2/1 diff --git a/cpp/.traces/new_overflow b/cpp/.traces/new_overflow index 91203b0e..d620bc27 100644 --- a/cpp/.traces/new_overflow +++ b/cpp/.traces/new_overflow @@ -12,11 +12,11 @@ after-brace/0: new ... new/0: routine allocated memory from 1000 to 1002 schedule/0: main run/0: instruction main/0 -run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer", "raw": ]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} +run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer", "raw": ]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 1000 mem/0: storing 1000 in location 1 run/0: instruction main/1 -run/0: {name: "2", value: 2, type: 2-6, properties: ["2": "address":"point", "raw": ]} <- new/41 {name: "point", value: 6, type: 0, properties: ["point": "type"]} +run/0: {name: "2", value: 2, type: 2-6, properties: ["2": "address":"point", "raw": ]} <- new/42 {name: "point", value: 6, type: 0, properties: ["point": "type"]} new/0: routine allocated memory from 1002 to 1004 mem/0: new alloc: 1002 mem/0: storing 1002 in location 2 diff --git a/cpp/.traces/new_string b/cpp/.traces/new_string index 75357567..b6c939ba 100644 --- a/cpp/.traces/new_string +++ b/cpp/.traces/new_string @@ -12,10 +12,10 @@ after-brace/0: index ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character"]} <- new/41 {name: "abc def", value: 0, type: 0, properties: ["abc def": "literal-string"]} +run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character"]} <- new/42 {name: "abc def", value: 0, type: 0, properties: ["abc def": "literal-string"]} mem/0: storing 1000 in location 1 run/0: instruction main/1 -run/0: {name: "2", value: 2, type: 4, properties: ["2": "character"]} <- index/25 {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "deref": ]}, {name: "5", value: 5, type: 0, properties: ["5": "literal"]} +run/0: {name: "2", value: 2, type: 4, properties: ["2": "character"]} <- index/26 {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "deref": ]}, {name: "5", value: 5, type: 0, properties: ["5": "literal"]} run/0: ingredient 0 is {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "deref": ]} mem/0: location 1 is 1000 run/0: ingredient 1 is {name: "5", value: 5, type: 0, properties: ["5": "literal"]} diff --git a/cpp/.traces/next_ingredient b/cpp/.traces/next_ingredient index 814f9298..34175e45 100644 --- a/cpp/.traces/next_ingredient +++ b/cpp/.traces/next_ingredient @@ -16,7 +16,7 @@ schedule/0: main run/0: instruction main/0 run/0: f/1001 {name: "2", value: 2, type: 0, properties: ["2": "literal"]} run/0: instruction f/0 -run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/29 +run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: storing 2 in location 12 run/0: instruction f/1 diff --git a/cpp/.traces/next_ingredient_missing b/cpp/.traces/next_ingredient_missing index f67ee2c5..8d120e20 100644 --- a/cpp/.traces/next_ingredient_missing +++ b/cpp/.traces/next_ingredient_missing @@ -11,5 +11,5 @@ schedule/0: main run/0: instruction main/0 run/0: f/1001 run/0: instruction f/0 -run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/29 +run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/30 mem/0: storing 0 in location 12 diff --git a/cpp/.traces/print-character-at-top-left b/cpp/.traces/print-character-at-top-left index 4358d624..83aec2dd 100644 --- a/cpp/.traces/print-character-at-top-left +++ b/cpp/.traces/print-character-at-top-left @@ -28,7 +28,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: print-character-at-top-left run/0: instruction print-character-at-top-left/0 -run/0: run/42 {name: " +run/0: run/43 {name: " #? $start-tracing #? 3 1:address:screen <- init-fake-screen 3:literal/width, 2:literal/height 1:address:screen <- print-character 1:address:screen, 97:literal # 'a' @@ -65,15 +65,15 @@ after-brace/0: copy ... run/0: instruction run1001/0 run/0: {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]} <- init-fake-screen/115 {name: "3", value: 3, type: 0, properties: ["3": "literal", "width": ]}, {name: "2", value: 2, type: 0, properties: ["2": "literal", "height": ]} run/0: instruction init-fake-screen/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal", "capacity": ]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal", "capacity": ]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction init-fake-screen/1 -run/0: {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} <- new/41 {name: "screen", value: 11, type: 0, properties: ["screen": "type"]} +run/0: {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} <- new/42 {name: "screen", value: 11, type: 0, properties: ["screen": "type"]} mem/0: new alloc: 1031 mem/0: storing 1031 in location 1002 run/0: instruction init-fake-screen/2 -run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is num-columns @@ -81,12 +81,12 @@ run/0: address to copy is 1032 run/0: product 0 is 1032 mem/0: storing 1032 in location 1003 run/0: instruction init-fake-screen/3 -run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer", "deref": ]} <- next-ingredient/29 +run/0: {name: "width", value: 2, type: 2-1, properties: ["width": "address":"integer", "deref": ]} <- next-ingredient/30 run/0: product 0 is 3 mem/0: location 1003 is 1032 mem/0: storing 3 in location 1032 run/0: instruction init-fake-screen/4 -run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-rows", value: 0, type: 0, properties: ["num-rows": "offset"]} +run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "num-rows", value: 0, type: 0, properties: ["num-rows": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is num-rows @@ -94,12 +94,12 @@ run/0: address to copy is 1031 run/0: product 0 is 1031 mem/0: storing 1031 in location 1004 run/0: instruction init-fake-screen/5 -run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer", "deref": ]} <- next-ingredient/29 +run/0: {name: "height", value: 3, type: 2-1, properties: ["height": "address":"integer", "deref": ]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: location 1004 is 1031 mem/0: storing 2 in location 1031 run/0: instruction init-fake-screen/6 -run/0: {name: "row", value: 4, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 4, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is cursor-row @@ -112,7 +112,7 @@ run/0: ingredient 0 is 0 mem/0: location 1005 is 1033 mem/0: storing 0 in location 1033 run/0: instruction init-fake-screen/8 -run/0: {name: "column", value: 5, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 5, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is cursor-column @@ -136,7 +136,7 @@ run/0: ingredient 1 is 2 run/0: product 0 is 6 mem/0: storing 6 in location 1007 run/0: instruction init-fake-screen/11 -run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character"]} <- get-address/24 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character"]} <- get-address/25 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is result mem/0: location 1002 is 1031 run/0: ingredient 1 is data @@ -144,7 +144,7 @@ run/0: address to copy is 1035 run/0: product 0 is 1035 mem/0: storing 1035 in location 1008 run/0: instruction init-fake-screen/12 -run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character", "deref": ]} <- new/41 {name: "character", value: 0, type: 0, properties: ["character": "literal"]}, {name: "bufsize", value: 6, type: 1, properties: ["bufsize": "integer"]} +run/0: {name: "buf", value: 7, type: 2-2-5-4, properties: ["buf": "address":"address":"array":"character", "deref": ]} <- new/42 {name: "character", value: 0, type: 0, properties: ["character": "literal"]}, {name: "bufsize", value: 6, type: 1, properties: ["bufsize": "integer"]} mem/0: location 1007 is 6 mem/0: array size is 6 mem/0: new alloc: 1036 @@ -154,11 +154,11 @@ run/0: instruction init-fake-screen/13 run/0: clear-screen/116 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} mem/0: location 1002 is 1031 run/0: instruction clear-screen/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1043 run/0: instruction clear-screen/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1045 run/0: instruction clear-screen/3 @@ -167,7 +167,7 @@ mem/0: location 1045 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction clear-screen/4 -run/0: {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1045 is 1031 run/0: ingredient 1 is data @@ -177,7 +177,7 @@ mem/0: location 1035 is 1036 run/0: product 0 is 1036 mem/0: storing 1036 in location 1046 run/0: instruction clear-screen/5 -run/0: {name: "max", value: 3, type: 1, properties: ["max": "integer"]} <- length/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} +run/0: {name: "max", value: 3, type: 1, properties: ["max": "integer"]} <- length/28 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]} mem/0: location 1046 is 1036 mem/0: storing 6 in location 1047 run/0: instruction clear-screen/6 @@ -198,7 +198,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -236,7 +236,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -274,7 +274,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -312,7 +312,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -350,7 +350,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -388,7 +388,7 @@ mem/0: location 1049 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction clear-screen/10 -run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/26 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} +run/0: {name: "c", value: 6, type: 2-4, properties: ["c": "address":"character"]} <- index-address/27 {name: "buf", value: 2, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "i", value: 4, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is buf mem/0: location 1046 is 1036 run/0: ingredient 1 is {name: "i", value: 4, type: 1, properties: ["i": "integer"]} @@ -427,10 +427,10 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 14 run/0: instruction clear-screen/15 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1045 is 1031 run/0: instruction init-fake-screen/14 -run/0: reply/32 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} +run/0: reply/33 {name: "result", value: 1, type: 2-11, properties: ["result": "address":"screen"]} mem/0: location 1002 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 @@ -438,15 +438,15 @@ run/0: instruction run1001/1 run/0: {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]} <- print-character/117 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen"]}, {name: "97", value: 97, type: 0, properties: ["97": "literal"]} mem/0: location 1 is 1031 run/0: instruction print-character/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1074 run/0: instruction print-character/1 -run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/29 +run/0: {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1076 run/0: instruction print-character/2 -run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/29 +run/0: {name: "c", value: 2, type: 4, properties: ["c": "character"]} <- next-ingredient/30 run/0: product 0 is 97 mem/0: storing 97 in location 1077 run/0: instruction print-character/4 @@ -455,7 +455,7 @@ mem/0: location 1076 is 1031 run/0: ingredient 0 is 1031 run/0: jump-unless fell through run/0: instruction print-character/5 -run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} +run/0: {name: "row", value: 3, type: 2-1, properties: ["row": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-row", value: 2, type: 0, properties: ["cursor-row": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is cursor-row @@ -463,7 +463,7 @@ run/0: address to copy is 1033 run/0: product 0 is 1033 mem/0: storing 1033 in location 1078 run/0: instruction print-character/6 -run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} +run/0: {name: "column", value: 4, type: 2-1, properties: ["column": "address":"integer"]} <- get-address/25 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "cursor-column", value: 3, type: 0, properties: ["cursor-column": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is cursor-column @@ -471,7 +471,7 @@ run/0: address to copy is 1034 run/0: product 0 is 1034 mem/0: storing 1034 in location 1079 run/0: instruction print-character/7 -run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} +run/0: {name: "width", value: 5, type: 1, properties: ["width": "integer"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "num-columns", value: 1, type: 0, properties: ["num-columns": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is num-columns @@ -500,7 +500,7 @@ mem/0: location 1034 is 0 run/0: product 0 is 0 mem/0: storing 0 in location 1081 run/0: instruction print-character/10 -run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/23 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character"]} <- get/24 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is x mem/0: location 1076 is 1031 run/0: ingredient 1 is data @@ -510,7 +510,7 @@ mem/0: location 1035 is 1036 run/0: product 0 is 1036 mem/0: storing 1036 in location 1082 run/0: instruction print-character/11 -run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/26 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} +run/0: {name: "cursor", value: 8, type: 2-4, properties: ["cursor": "address":"character"]} <- index-address/27 {name: "buf", value: 7, type: 2-5-4, properties: ["buf": "address":"array":"character", "deref": ]}, {name: "index", value: 6, type: 1, properties: ["index": "integer"]} run/0: ingredient 0 is buf mem/0: location 1082 is 1036 run/0: ingredient 1 is {name: "index", value: 6, type: 1, properties: ["index": "integer"]} @@ -548,12 +548,12 @@ run/0: product 0 is 1 mem/0: location 1079 is 1034 mem/0: storing 1 in location 1034 run/0: instruction print-character/18 -run/0: reply/32 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "x", value: 1, type: 2-11, properties: ["x": "address":"screen", "same-as-ingredient": "0"]} mem/0: location 1076 is 1031 run/0: result 0 is 1031 mem/0: storing 1031 in location 1 run/0: instruction run1001/2 -run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character"]} <- get/23 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} +run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character"]} <- get/24 {name: "1", value: 1, type: 2-11, properties: ["1": "address":"screen", "deref": ]}, {name: "data", value: 4, type: 0, properties: ["data": "offset"]} run/0: ingredient 0 is 1 mem/0: location 1 is 1031 run/0: ingredient 1 is data @@ -581,7 +581,7 @@ mem/0: storing 0 in location 7 mem/0: storing 0 in location 8 mem/0: storing 0 in location 9 run/0: instruction print-character-at-top-left/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 3 <- 6 # width*height 4 <- 97 # 'a' 5 <- 0 diff --git a/cpp/.traces/reply b/cpp/.traces/reply index 5a7c9e81..6ac4c162 100644 --- a/cpp/.traces/reply +++ b/cpp/.traces/reply @@ -22,7 +22,7 @@ schedule/0: main run/0: instruction main/0 run/0: {name: "3", value: 3, type: 1, properties: ["3": "integer"]}, {name: "4", value: 4, type: 1, properties: ["4": "integer"]} <- f/1001 {name: "2", value: 2, type: 0, properties: ["2": "literal"]} run/0: instruction f/0 -run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/29 +run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: storing 2 in location 12 run/0: instruction f/1 @@ -33,7 +33,7 @@ mem/0: location 12 is 2 run/0: product 0 is 3 mem/0: storing 3 in location 13 run/0: instruction f/2 -run/0: reply/32 {name: "12", value: 12, type: 1, properties: ["12": "integer"]}, {name: "13", value: 13, type: 1, properties: ["13": "integer"]} +run/0: reply/33 {name: "12", value: 12, type: 1, properties: ["12": "integer"]}, {name: "13", value: 13, type: 1, properties: ["13": "integer"]} mem/0: location 12 is 2 mem/0: location 13 is 3 run/0: result 0 is 2 diff --git a/cpp/.traces/reply_container b/cpp/.traces/reply_container index beaaab68..693f984d 100644 --- a/cpp/.traces/reply_container +++ b/cpp/.traces/reply_container @@ -19,7 +19,7 @@ schedule/0: main run/0: instruction main/0 run/0: {name: "3", value: 3, type: 6, properties: ["3": "point"]} <- f/1001 {name: "2", value: 2, type: 0, properties: ["2": "literal"]} run/0: instruction f/0 -run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/29 +run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: storing 2 in location 12 run/0: instruction f/1 @@ -27,7 +27,7 @@ run/0: {name: "13", value: 13, type: 1, properties: ["13": "integer"]} <- copy/1 run/0: ingredient 0 is 35 mem/0: storing 35 in location 13 run/0: instruction f/2 -run/0: reply/32 {name: "12", value: 12, type: 6, properties: ["12": "point"]} +run/0: reply/33 {name: "12", value: 12, type: 6, properties: ["12": "point"]} mem/0: location 12 is 2 mem/0: location 13 is 35 run/0: result 0 is [2, 35] diff --git a/cpp/.traces/reply_same_as_ingredient b/cpp/.traces/reply_same_as_ingredient index 6c030bd3..7a2c81bd 100644 --- a/cpp/.traces/reply_same_as_ingredient +++ b/cpp/.traces/reply_same_as_ingredient @@ -18,18 +18,18 @@ after-brace/0: reply ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer"]} <- new/41 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} +run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer"]} <- new/42 {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 1000 mem/0: storing 1000 in location 1 run/0: instruction main/1 run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer"]} <- test1/1001 {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer"]} mem/0: location 1 is 1000 run/0: instruction test1/0 -run/0: {name: "10", value: 10, type: 2-1, properties: ["10": "address":"integer"]} <- next-ingredient/29 +run/0: {name: "10", value: 10, type: 2-1, properties: ["10": "address":"integer"]} <- next-ingredient/30 run/0: product 0 is 1000 mem/0: storing 1000 in location 10 run/0: instruction test1/1 -run/0: reply/32 {name: "10", value: 10, type: 2-1, properties: ["10": "address":"integer", "same-as-ingredient": "0"]} +run/0: reply/33 {name: "10", value: 10, type: 2-1, properties: ["10": "address":"integer", "same-as-ingredient": "0"]} mem/0: location 10 is 1000 run/0: result 0 is 1000 warn/0: 'same-as-ingredient' result 2 must be location 1 diff --git a/cpp/.traces/rewind_ingredients b/cpp/.traces/rewind_ingredients index 7e01e4f3..4c7b4159 100644 --- a/cpp/.traces/rewind_ingredients +++ b/cpp/.traces/rewind_ingredients @@ -21,16 +21,16 @@ schedule/0: main run/0: instruction main/0 run/0: f/1001 {name: "2", value: 2, type: 0, properties: ["2": "literal"]} run/0: instruction f/0 -run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/29 +run/0: {name: "12", value: 12, type: 1, properties: ["12": "integer"]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: storing 2 in location 12 run/0: instruction f/1 -run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "1", value: 1, type: 3, properties: ["1": "boolean"]} <- next-ingredient/29 +run/0: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}, {name: "1", value: 1, type: 3, properties: ["1": "boolean"]} <- next-ingredient/30 mem/0: storing 0 in location 1 run/0: instruction f/2 -run/0: rewind-ingredients/30 +run/0: rewind-ingredients/31 run/0: instruction f/3 -run/0: {name: "13", value: 13, type: 1, properties: ["13": "integer"]}, {name: "2", value: 2, type: 3, properties: ["2": "boolean"]} <- next-ingredient/29 +run/0: {name: "13", value: 13, type: 1, properties: ["13": "integer"]}, {name: "2", value: 2, type: 3, properties: ["2": "boolean"]} <- next-ingredient/30 run/0: product 0 is 2 mem/0: storing 2 in location 13 mem/0: storing 1 in location 2 diff --git a/cpp/.traces/run b/cpp/.traces/run index f8480ccb..aa5d941a 100644 --- a/cpp/.traces/run +++ b/cpp/.traces/run @@ -9,7 +9,7 @@ after-brace/0: run ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- copy 13:literal ", value: 0, type: 0, properties: [" 1:integer <- copy 13:literal diff --git a/cpp/.traces/run_multiple b/cpp/.traces/run_multiple index 6d11353c..ca2e9a0e 100644 --- a/cpp/.traces/run_multiple +++ b/cpp/.traces/run_multiple @@ -16,7 +16,7 @@ after-brace/0: run ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- copy 13:literal ", value: 0, type: 0, properties: [" 1:integer <- copy 13:literal @@ -31,7 +31,7 @@ run/0: {name: "1", value: 1, type: 1, properties: ["1": "integer"]} <- copy/1 {n run/0: ingredient 0 is 13 mem/0: storing 13 in location 1 run/0: instruction main/1 -run/0: run/42 {name: " +run/0: run/43 {name: " 2:integer <- copy 13:literal ", value: 0, type: 0, properties: [" 2:integer <- copy 13:literal diff --git a/cpp/.traces/scenario_block b/cpp/.traces/scenario_block index b57ef92d..270bb7a3 100644 --- a/cpp/.traces/scenario_block +++ b/cpp/.traces/scenario_block @@ -16,7 +16,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: foo run/0: instruction foo/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- copy 13:literal ", value: 0, type: 0, properties: [" 1:integer <- copy 13:literal @@ -31,7 +31,7 @@ run/0: {name: "1", value: 1, type: 1, properties: ["1": "integer"]} <- copy/1 {n run/0: ingredient 0 is 13 mem/0: storing 13 in location 1 run/0: instruction foo/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 13 ", value: 0, type: 0, properties: [" 1 <- 13 diff --git a/cpp/.traces/scenario_check_memory_and_trace b/cpp/.traces/scenario_check_memory_and_trace index 8eceb1a5..4f14246f 100644 --- a/cpp/.traces/scenario_check_memory_and_trace +++ b/cpp/.traces/scenario_check_memory_and_trace @@ -32,7 +32,7 @@ after-brace/0: trace-should-not-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: foo run/0: instruction foo/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- copy 13:literal trace [a], [a b c] ", value: 0, type: 0, properties: [" @@ -56,20 +56,20 @@ run/0: instruction run1001/1 run/0: trace/18 {name: "a", value: 0, type: 0, properties: ["a": "literal-string"]}, {name: "a b c", value: 0, type: 0, properties: ["a b c": "literal-string"]} a/0: a b c run/0: instruction foo/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 13 ", value: 0, type: 0, properties: [" 1 <- 13 ": "literal-string"]} run/0: checking location 1 run/0: instruction foo/2 -run/0: trace-should-contain/44 {name: " +run/0: trace-should-contain/45 {name: " a: a b c ", value: 0, type: 0, properties: [" a: a b c ": "literal-string"]} run/0: instruction foo/3 -run/0: trace-should-not-contain/45 {name: " +run/0: trace-should-not-contain/46 {name: " a: x y z ", value: 0, type: 0, properties: [" a: x y z diff --git a/cpp/.traces/scenario_multiple_blocks b/cpp/.traces/scenario_multiple_blocks index e627fdb7..ff26c7d9 100644 --- a/cpp/.traces/scenario_multiple_blocks +++ b/cpp/.traces/scenario_multiple_blocks @@ -32,7 +32,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: foo run/0: instruction foo/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:integer <- copy 13:literal ", value: 0, type: 0, properties: [" 1:integer <- copy 13:literal @@ -47,14 +47,14 @@ run/0: {name: "1", value: 1, type: 1, properties: ["1": "integer"]} <- copy/1 {n run/0: ingredient 0 is 13 mem/0: storing 13 in location 1 run/0: instruction foo/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 13 ", value: 0, type: 0, properties: [" 1 <- 13 ": "literal-string"]} run/0: checking location 1 run/0: instruction foo/2 -run/0: run/42 {name: " +run/0: run/43 {name: " 2:integer <- copy 13:literal ", value: 0, type: 0, properties: [" 2:integer <- copy 13:literal @@ -69,7 +69,7 @@ run/0: {name: "2", value: 2, type: 1, properties: ["2": "integer"]} <- copy/1 {n run/0: ingredient 0 is 13 mem/0: storing 13 in location 2 run/0: instruction foo/3 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 13 2 <- 13 ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/scenario_with_comment_in_mu b/cpp/.traces/scenario_with_comment_in_mu index 57fe0aae..7d8aed06 100644 --- a/cpp/.traces/scenario_with_comment_in_mu +++ b/cpp/.traces/scenario_with_comment_in_mu @@ -18,7 +18,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: scenario_with_comment_in_mu run/0: instruction scenario_with_comment_in_mu/0 -run/0: run/42 {name: " +run/0: run/43 {name: " # comment 1:integer <- add 2:literal, 2:literal ", value: 0, type: 0, properties: [" @@ -38,7 +38,7 @@ run/0: ingredient 1 is 2 run/0: product 0 is 4 mem/0: storing 4 in location 1 run/0: instruction scenario_with_comment_in_mu/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 4 ", value: 0, type: 0, properties: [" 1 <- 4 diff --git a/cpp/.traces/scenario_with_multiple_comments_in_mu b/cpp/.traces/scenario_with_multiple_comments_in_mu index 55079205..21207ace 100644 --- a/cpp/.traces/scenario_with_multiple_comments_in_mu +++ b/cpp/.traces/scenario_with_multiple_comments_in_mu @@ -20,7 +20,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: scenario_with_multiple_comments_in_mu run/0: instruction scenario_with_multiple_comments_in_mu/0 -run/0: run/42 {name: " +run/0: run/43 {name: " # comment1 # comment2 1:integer <- add 2:literal, 2:literal @@ -42,7 +42,7 @@ run/0: ingredient 1 is 2 run/0: product 0 is 4 mem/0: storing 4 in location 1 run/0: instruction scenario_with_multiple_comments_in_mu/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 1 <- 4 ", value: 0, type: 0, properties: [" 1 <- 4 diff --git a/cpp/.traces/scheduler b/cpp/.traces/scheduler index ea78689e..4f1f0a31 100644 --- a/cpp/.traces/scheduler +++ b/cpp/.traces/scheduler @@ -14,7 +14,7 @@ after-brace/0: copy ... new/0: routine allocated memory from 1000 to 101000 schedule/0: f1 run/0: instruction f1/0 -run/0: start-running/33 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} +run/0: start-running/34 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} run/0: ingredient 0 is f2 new/0: routine allocated memory from 101000 to 201000 run/0: instruction f1/1 diff --git a/cpp/.traces/scheduler_interleaves_routines b/cpp/.traces/scheduler_interleaves_routines index 152ef18f..a9d4a4fb 100644 --- a/cpp/.traces/scheduler_interleaves_routines +++ b/cpp/.traces/scheduler_interleaves_routines @@ -22,7 +22,7 @@ after-brace/0: copy ... new/0: routine allocated memory from 1000 to 101000 schedule/0: f1 run/0: instruction f1/0 -run/0: start-running/33 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} +run/0: start-running/34 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} run/0: ingredient 0 is f2 new/0: routine allocated memory from 101000 to 201000 schedule/0: f2 diff --git a/cpp/.traces/string-append-1 b/cpp/.traces/string-append-1 index 8b514403..97dec546 100644 --- a/cpp/.traces/string-append-1 +++ b/cpp/.traces/string-append-1 @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: string-append-1 run/0: instruction string-append-1/0 -run/0: run/42 {name: " +run/0: run/43 {name: " 1:address:array:character/raw <- new [hello,] 2:address:array:character/raw <- new [ world!] 3:address:array:character/raw <- string-append 1:address:array:character/raw, 2:address:array:character/raw @@ -54,33 +54,33 @@ after-brace/0: new ... after-brace/0: string-append ... after-brace/0: copy ... run/0: instruction run1001/0 -run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/41 {name: "hello,", value: 0, type: 0, properties: ["hello,": "literal-string"]} +run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new/42 {name: "hello,", value: 0, type: 0, properties: ["hello,": "literal-string"]} mem/0: storing 1000 in location 1 run/0: instruction run1001/1 -run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/41 {name: " world!", value: 0, type: 0, properties: [" world!": "literal-string"]} +run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new/42 {name: " world!", value: 0, type: 0, properties: [" world!": "literal-string"]} mem/0: storing 1007 in location 2 run/0: instruction run1001/2 run/0: {name: "3", value: 3, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} <- string-append/106 {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]}, {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} mem/0: location 1 is 1000 mem/0: location 2 is 1007 run/0: instruction string-append/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1015 run/0: instruction string-append/1 -run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1000 mem/0: storing 1000 in location 1017 run/0: instruction string-append/2 -run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1017 is 1000 mem/0: storing 6 in location 1018 run/0: instruction string-append/3 -run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1007 mem/0: storing 1007 in location 1019 run/0: instruction string-append/4 -run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/27 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} +run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/28 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 mem/0: storing 7 in location 1020 run/0: instruction string-append/5 @@ -92,7 +92,7 @@ mem/0: location 1020 is 7 run/0: product 0 is 13 mem/0: storing 13 in location 1021 run/0: instruction string-append/6 -run/0: {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/41 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 5, type: 1, properties: ["result-len": "integer"]} +run/0: {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character"]} <- new/42 {name: "character", value: 4, type: 0, properties: ["character": "type"]}, {name: "result-len", value: 5, type: 1, properties: ["result-len": "integer"]} mem/0: location 1021 is 13 mem/0: array size is 13 mem/0: new alloc: 1046 @@ -119,7 +119,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/12 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -128,7 +128,7 @@ run/0: address to copy is 1047 run/0: product 0 is 1047 mem/0: storing 1047 in location 1026 run/0: instruction string-append/13 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1017 is 1000 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -176,7 +176,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/12 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -185,7 +185,7 @@ run/0: address to copy is 1048 run/0: product 0 is 1048 mem/0: storing 1048 in location 1026 run/0: instruction string-append/13 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1017 is 1000 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -233,7 +233,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/12 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -242,7 +242,7 @@ run/0: address to copy is 1049 run/0: product 0 is 1049 mem/0: storing 1049 in location 1026 run/0: instruction string-append/13 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1017 is 1000 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -290,7 +290,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/12 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -299,7 +299,7 @@ run/0: address to copy is 1050 run/0: product 0 is 1050 mem/0: storing 1050 in location 1026 run/0: instruction string-append/13 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1017 is 1000 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -347,7 +347,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/12 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -356,7 +356,7 @@ run/0: address to copy is 1051 run/0: product 0 is 1051 mem/0: storing 1051 in location 1026 run/0: instruction string-append/13 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1017 is 1000 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -404,7 +404,7 @@ mem/0: location 1025 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/12 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -413,7 +413,7 @@ run/0: address to copy is 1052 run/0: product 0 is 1052 mem/0: storing 1052 in location 1026 run/0: instruction string-append/13 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1017 is 1000 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -479,7 +479,7 @@ mem/0: location 1028 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/23 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -488,7 +488,7 @@ run/0: address to copy is 1053 run/0: product 0 is 1053 mem/0: storing 1053 in location 1026 run/0: instruction string-append/24 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -536,7 +536,7 @@ mem/0: location 1028 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/23 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -545,7 +545,7 @@ run/0: address to copy is 1054 run/0: product 0 is 1054 mem/0: storing 1054 in location 1026 run/0: instruction string-append/24 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -593,7 +593,7 @@ mem/0: location 1028 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/23 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -602,7 +602,7 @@ run/0: address to copy is 1055 run/0: product 0 is 1055 mem/0: storing 1055 in location 1026 run/0: instruction string-append/24 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -650,7 +650,7 @@ mem/0: location 1028 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/23 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -659,7 +659,7 @@ run/0: address to copy is 1056 run/0: product 0 is 1056 mem/0: storing 1056 in location 1026 run/0: instruction string-append/24 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -707,7 +707,7 @@ mem/0: location 1028 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/23 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -716,7 +716,7 @@ run/0: address to copy is 1057 run/0: product 0 is 1057 mem/0: storing 1057 in location 1026 run/0: instruction string-append/24 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -764,7 +764,7 @@ mem/0: location 1028 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/23 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -773,7 +773,7 @@ run/0: address to copy is 1058 run/0: product 0 is 1058 mem/0: storing 1058 in location 1026 run/0: instruction string-append/24 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -821,7 +821,7 @@ mem/0: location 1028 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-append/23 -run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/26 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} +run/0: {name: "out", value: 10, type: 2-4, properties: ["out": "address":"character"]} <- index-address/27 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character", "deref": ]}, {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} run/0: ingredient 0 is result mem/0: location 1022 is 1046 run/0: ingredient 1 is {name: "result-idx", value: 7, type: 1, properties: ["result-idx": "integer"]} @@ -830,7 +830,7 @@ run/0: address to copy is 1059 run/0: product 0 is 1059 mem/0: storing 1059 in location 1026 run/0: instruction string-append/24 -run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} +run/0: {name: "in", value: 11, type: 4, properties: ["in": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 8, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1019 is 1007 run/0: ingredient 1 is {name: "i", value: 8, type: 1, properties: ["i": "integer"]} @@ -879,7 +879,7 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 29 run/0: instruction string-append/30 -run/0: reply/32 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character"]} +run/0: reply/33 {name: "result", value: 6, type: 2-5-4, properties: ["result": "address":"array":"character"]} mem/0: location 1022 is 1046 run/0: result 0 is 1046 mem/0: storing 1046 in location 3 @@ -916,7 +916,7 @@ mem/0: storing 108 in location 15 mem/0: storing 100 in location 16 mem/0: storing 33 in location 17 run/0: instruction string-append-1/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 4:string <- [hello, world!] ", value: 0, type: 0, properties: [" 4:string <- [hello, world!] diff --git a/cpp/.traces/string-equal-common-lengths-but-distinct b/cpp/.traces/string-equal-common-lengths-but-distinct index de6e94aa..164277bf 100644 --- a/cpp/.traces/string-equal-common-lengths-but-distinct +++ b/cpp/.traces/string-equal-common-lengths-but-distinct @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: string-equal-common-lengths-but-distinct run/0: instruction string-equal-common-lengths-but-distinct/0 -run/0: run/42 {name: " +run/0: run/43 {name: " default-space:address:array:location <- new location:type, 30:literal x:address:array:character <- new [abc] y:address:array:character <- new [abd] @@ -58,37 +58,37 @@ after-brace/0: new ... after-brace/0: new ... after-brace/0: string-equal ... run/0: instruction run1001/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction run1001/1 -run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/41 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/42 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1031 in location 1002 run/0: instruction run1001/2 -run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/41 {name: "abd", value: 0, type: 0, properties: ["abd": "literal-string"]} +run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/42 {name: "abd", value: 0, type: 0, properties: ["abd": "literal-string"]} mem/0: storing 1035 in location 1003 run/0: instruction run1001/3 run/0: {name: "3", value: 3, type: 3, properties: ["3": "boolean", "raw": ]} <- string-equal/100 {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]}, {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} mem/0: location 1002 is 1031 mem/0: location 1003 is 1035 run/0: instruction string-equal/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1039 run/0: instruction string-equal/1 -run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1041 run/0: instruction string-equal/2 -run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 mem/0: storing 3 in location 1042 run/0: instruction string-equal/3 -run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1035 mem/0: storing 1035 in location 1043 run/0: instruction string-equal/4 -run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/27 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} +run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/28 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 mem/0: storing 3 in location 1044 run/0: instruction string-equal/6 @@ -129,7 +129,7 @@ mem/0: location 1047 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -140,7 +140,7 @@ mem/0: location 1032 is 97 run/0: product 0 is 97 mem/0: storing 97 in location 1048 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -189,7 +189,7 @@ mem/0: location 1047 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -200,7 +200,7 @@ mem/0: location 1033 is 98 run/0: product 0 is 98 mem/0: storing 98 in location 1048 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -249,7 +249,7 @@ mem/0: location 1047 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -260,7 +260,7 @@ mem/0: location 1034 is 99 run/0: product 0 is 99 mem/0: storing 99 in location 1048 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -284,11 +284,11 @@ mem/0: location 1050 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/21 -run/0: reply/32 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} +run/0: reply/33 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: result 0 is 0 mem/0: storing 0 in location 3 run/0: instruction string-equal-common-lengths-but-distinct/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 3 <- 0 # abc != abd ", value: 0, type: 0, properties: [" 3 <- 0 # abc != abd diff --git a/cpp/.traces/string-equal-distinct-lengths b/cpp/.traces/string-equal-distinct-lengths index 72b419f9..7a8ac7c6 100644 --- a/cpp/.traces/string-equal-distinct-lengths +++ b/cpp/.traces/string-equal-distinct-lengths @@ -36,7 +36,7 @@ after-brace/0: trace-should-not-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: string-equal-distinct-lengths run/0: instruction string-equal-distinct-lengths/0 -run/0: run/42 {name: " +run/0: run/43 {name: " default-space:address:array:location <- new location:type, 30:literal x:address:array:character <- new [abc] y:address:array:character <- new [abcd] @@ -72,37 +72,37 @@ after-brace/0: new ... after-brace/0: new ... after-brace/0: string-equal ... run/0: instruction run1001/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction run1001/1 -run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/41 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/42 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1031 in location 1002 run/0: instruction run1001/2 -run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/41 {name: "abcd", value: 0, type: 0, properties: ["abcd": "literal-string"]} +run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/42 {name: "abcd", value: 0, type: 0, properties: ["abcd": "literal-string"]} mem/0: storing 1035 in location 1003 run/0: instruction run1001/3 run/0: {name: "3", value: 3, type: 3, properties: ["3": "boolean", "raw": ]} <- string-equal/100 {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]}, {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} mem/0: location 1002 is 1031 mem/0: location 1003 is 1035 run/0: instruction string-equal/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1040 run/0: instruction string-equal/1 -run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1042 run/0: instruction string-equal/2 -run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1042 is 1031 mem/0: storing 3 in location 1043 run/0: instruction string-equal/3 -run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1035 mem/0: storing 1035 in location 1044 run/0: instruction string-equal/4 -run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/27 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} +run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/28 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1044 is 1035 mem/0: storing 4 in location 1045 run/0: instruction string-equal/6 @@ -122,24 +122,24 @@ mem/0: location 1046 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/9 -run/0: reply/32 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} +run/0: reply/33 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: result 0 is 0 mem/0: storing 0 in location 3 run/0: instruction string-equal-distinct-lengths/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 3 <- 0 # abc != abcd ", value: 0, type: 0, properties: [" 3 <- 0 # abc != abcd ": "literal-string"]} run/0: checking location 3 run/0: instruction string-equal-distinct-lengths/2 -run/0: trace-should-contain/44 {name: " +run/0: trace-should-contain/45 {name: " string-equal: comparing lengths ", value: 0, type: 0, properties: [" string-equal: comparing lengths ": "literal-string"]} run/0: instruction string-equal-distinct-lengths/3 -run/0: trace-should-not-contain/45 {name: " +run/0: trace-should-not-contain/46 {name: " string-equal: comparing characters ", value: 0, type: 0, properties: [" string-equal: comparing characters diff --git a/cpp/.traces/string-equal-identical b/cpp/.traces/string-equal-identical index 254f7617..1bd96899 100644 --- a/cpp/.traces/string-equal-identical +++ b/cpp/.traces/string-equal-identical @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: string-equal-identical run/0: instruction string-equal-identical/0 -run/0: run/42 {name: " +run/0: run/43 {name: " default-space:address:array:location <- new location:type, 30:literal x:address:array:character <- new [abc] y:address:array:character <- new [abc] @@ -58,37 +58,37 @@ after-brace/0: new ... after-brace/0: new ... after-brace/0: string-equal ... run/0: instruction run1001/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction run1001/1 -run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/41 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/42 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1031 in location 1002 run/0: instruction run1001/2 -run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/41 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/42 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1035 in location 1003 run/0: instruction run1001/3 run/0: {name: "3", value: 3, type: 3, properties: ["3": "boolean", "raw": ]} <- string-equal/100 {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]}, {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} mem/0: location 1002 is 1031 mem/0: location 1003 is 1035 run/0: instruction string-equal/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1039 run/0: instruction string-equal/1 -run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1041 run/0: instruction string-equal/2 -run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 mem/0: storing 3 in location 1042 run/0: instruction string-equal/3 -run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1035 mem/0: storing 1035 in location 1043 run/0: instruction string-equal/4 -run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/27 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} +run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/28 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 mem/0: storing 3 in location 1044 run/0: instruction string-equal/6 @@ -129,7 +129,7 @@ mem/0: location 1047 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -140,7 +140,7 @@ mem/0: location 1032 is 97 run/0: product 0 is 97 mem/0: storing 97 in location 1048 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -189,7 +189,7 @@ mem/0: location 1047 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -200,7 +200,7 @@ mem/0: location 1033 is 98 run/0: product 0 is 98 mem/0: storing 98 in location 1048 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -249,7 +249,7 @@ mem/0: location 1047 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -260,7 +260,7 @@ mem/0: location 1034 is 99 run/0: product 0 is 99 mem/0: storing 99 in location 1048 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1043 is 1035 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -310,11 +310,11 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 25 run/0: instruction string-equal/26 -run/0: reply/32 {name: "1", value: 1, type: 0, properties: ["1": "literal"]} +run/0: reply/33 {name: "1", value: 1, type: 0, properties: ["1": "literal"]} run/0: result 0 is 1 mem/0: storing 1 in location 3 run/0: instruction string-equal-identical/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 3 <- 1 # abc == abc ", value: 0, type: 0, properties: [" 3 <- 1 # abc == abc diff --git a/cpp/.traces/string-equal-reflexive b/cpp/.traces/string-equal-reflexive index b8e8a7c3..4b440cfe 100644 --- a/cpp/.traces/string-equal-reflexive +++ b/cpp/.traces/string-equal-reflexive @@ -20,7 +20,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: string-equal-reflexive run/0: instruction string-equal-reflexive/0 -run/0: run/42 {name: " +run/0: run/43 {name: " default-space:address:array:location <- new location:type, 30:literal x:address:array:character <- new [abc] 3:boolean/raw <- string-equal x:address:array:character, x:address:array:character @@ -48,34 +48,34 @@ after-brace/0: new ... after-brace/0: new ... after-brace/0: string-equal ... run/0: instruction run1001/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction run1001/1 -run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/41 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/42 {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1031 in location 1002 run/0: instruction run1001/2 run/0: {name: "3", value: 3, type: 3, properties: ["3": "boolean", "raw": ]} <- string-equal/100 {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]}, {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} mem/0: location 1002 is 1031 mem/0: location 1002 is 1031 run/0: instruction string-equal/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1035 run/0: instruction string-equal/1 -run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1037 run/0: instruction string-equal/2 -run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1037 is 1031 mem/0: storing 3 in location 1038 run/0: instruction string-equal/3 -run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1039 run/0: instruction string-equal/4 -run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/27 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} +run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/28 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1039 is 1031 mem/0: storing 3 in location 1040 run/0: instruction string-equal/6 @@ -116,7 +116,7 @@ mem/0: location 1043 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1037 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -127,7 +127,7 @@ mem/0: location 1032 is 97 run/0: product 0 is 97 mem/0: storing 97 in location 1044 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1039 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -176,7 +176,7 @@ mem/0: location 1043 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1037 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -187,7 +187,7 @@ mem/0: location 1033 is 98 run/0: product 0 is 98 mem/0: storing 98 in location 1044 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1039 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -236,7 +236,7 @@ mem/0: location 1043 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/16 -run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/25 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "a2", value: 8, type: 4, properties: ["a2": "character"]} <- index/26 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1037 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -247,7 +247,7 @@ mem/0: location 1034 is 99 run/0: product 0 is 99 mem/0: storing 99 in location 1044 run/0: instruction string-equal/17 -run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/25 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} +run/0: {name: "b2", value: 9, type: 4, properties: ["b2": "character"]} <- index/26 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]}, {name: "i", value: 6, type: 1, properties: ["i": "integer"]} run/0: ingredient 0 is {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1039 is 1031 run/0: ingredient 1 is {name: "i", value: 6, type: 1, properties: ["i": "integer"]} @@ -297,11 +297,11 @@ run/0: ingredient 0 is 1 run/0: ingredient 1 is run/0: jumping to instruction 25 run/0: instruction string-equal/26 -run/0: reply/32 {name: "1", value: 1, type: 0, properties: ["1": "literal"]} +run/0: reply/33 {name: "1", value: 1, type: 0, properties: ["1": "literal"]} run/0: result 0 is 1 mem/0: storing 1 in location 3 run/0: instruction string-equal-reflexive/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 3 <- 1 # x == x for all x ", value: 0, type: 0, properties: [" 3 <- 1 # x == x for all x diff --git a/cpp/.traces/string-equal-with-empty b/cpp/.traces/string-equal-with-empty index c103c72f..3a924504 100644 --- a/cpp/.traces/string-equal-with-empty +++ b/cpp/.traces/string-equal-with-empty @@ -22,7 +22,7 @@ after-brace/0: memory-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: string-equal-with-empty run/0: instruction string-equal-with-empty/0 -run/0: run/42 {name: " +run/0: run/43 {name: " default-space:address:array:location <- new location:type, 30:literal x:address:array:character <- new [] y:address:array:character <- new [abcd] @@ -58,37 +58,37 @@ after-brace/0: new ... after-brace/0: new ... after-brace/0: string-equal ... run/0: instruction run1001/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1000 run/0: instruction run1001/1 -run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/41 {name: "", value: 0, type: 0, properties: ["": "literal-string"]} +run/0: {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]} <- new/42 {name: "", value: 0, type: 0, properties: ["": "literal-string"]} mem/0: storing 1031 in location 1002 run/0: instruction run1001/2 -run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/41 {name: "abcd", value: 0, type: 0, properties: ["abcd": "literal-string"]} +run/0: {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} <- new/42 {name: "abcd", value: 0, type: 0, properties: ["abcd": "literal-string"]} mem/0: storing 1032 in location 1003 run/0: instruction run1001/3 run/0: {name: "3", value: 3, type: 3, properties: ["3": "boolean", "raw": ]} <- string-equal/100 {name: "x", value: 1, type: 2-5-4, properties: ["x": "address":"array":"character"]}, {name: "y", value: 2, type: 2-5-4, properties: ["y": "address":"array":"character"]} mem/0: location 1002 is 1031 mem/0: location 1003 is 1032 run/0: instruction string-equal/0 -run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/41 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} +run/0: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} <- new/42 {name: "location", value: 1, type: 0, properties: ["location": "type"]}, {name: "30", value: 30, type: 0, properties: ["30": "literal"]} mem/0: array size is 30 mem/0: new alloc: 1037 run/0: instruction string-equal/1 -run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1031 mem/0: storing 1031 in location 1039 run/0: instruction string-equal/2 -run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/27 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} +run/0: {name: "a-len", value: 2, type: 1, properties: ["a-len": "integer"]} <- length/28 {name: "a", value: 1, type: 2-5-4, properties: ["a": "address":"array":"character", "deref": ]} mem/0: location 1039 is 1031 mem/0: storing 0 in location 1040 run/0: instruction string-equal/3 -run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/29 +run/0: {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character"]} <- next-ingredient/30 run/0: product 0 is 1032 mem/0: storing 1032 in location 1041 run/0: instruction string-equal/4 -run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/27 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} +run/0: {name: "b-len", value: 4, type: 1, properties: ["b-len": "integer"]} <- length/28 {name: "b", value: 3, type: 2-5-4, properties: ["b": "address":"array":"character", "deref": ]} mem/0: location 1041 is 1032 mem/0: storing 4 in location 1042 run/0: instruction string-equal/6 @@ -108,11 +108,11 @@ mem/0: location 1043 is 0 run/0: ingredient 0 is 0 run/0: jump-if fell through run/0: instruction string-equal/9 -run/0: reply/32 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} +run/0: reply/33 {name: "0", value: 0, type: 0, properties: ["0": "literal"]} run/0: result 0 is 0 mem/0: storing 0 in location 3 run/0: instruction string-equal-with-empty/1 -run/0: memory-should-contain/43 {name: " +run/0: memory-should-contain/44 {name: " 3 <- 0 # "" != abcd ", value: 0, type: 0, properties: [" 3 <- 0 # "" != abcd diff --git a/cpp/.traces/trace_check_passes_silently b/cpp/.traces/trace_check_passes_silently index 3ee8d037..687c853e 100644 --- a/cpp/.traces/trace_check_passes_silently +++ b/cpp/.traces/trace_check_passes_silently @@ -16,7 +16,7 @@ after-brace/0: trace-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: run/42 {name: " +run/0: run/43 {name: " trace [a], [b] ", value: 0, type: 0, properties: [" trace [a], [b] @@ -30,7 +30,7 @@ run/0: instruction run1001/0 run/0: trace/18 {name: "a", value: 0, type: 0, properties: ["a": "literal-string"]}, {name: "b", value: 0, type: 0, properties: ["b": "literal-string"]} a/0: b run/0: instruction main/1 -run/0: trace-should-contain/44 {name: " +run/0: trace-should-contain/45 {name: " a: b ", value: 0, type: 0, properties: [" a: b diff --git a/cpp/.traces/trace_check_warns_on_failure b/cpp/.traces/trace_check_warns_on_failure index 244dd582..121235af 100644 --- a/cpp/.traces/trace_check_warns_on_failure +++ b/cpp/.traces/trace_check_warns_on_failure @@ -11,7 +11,7 @@ after-brace/0: trace-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: trace-should-contain/44 {name: " +run/0: trace-should-contain/45 {name: " a: b a: d ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/trace_check_warns_on_failure_in_later_line b/cpp/.traces/trace_check_warns_on_failure_in_later_line index edb485eb..35e575e2 100644 --- a/cpp/.traces/trace_check_warns_on_failure_in_later_line +++ b/cpp/.traces/trace_check_warns_on_failure_in_later_line @@ -18,7 +18,7 @@ after-brace/0: trace-should-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: run/42 {name: " +run/0: run/43 {name: " trace [a], [b] ", value: 0, type: 0, properties: [" trace [a], [b] @@ -32,7 +32,7 @@ run/0: instruction run1001/0 run/0: trace/18 {name: "a", value: 0, type: 0, properties: ["a": "literal-string"]}, {name: "b", value: 0, type: 0, properties: ["b": "literal-string"]} a/0: b run/0: instruction main/1 -run/0: trace-should-contain/44 {name: " +run/0: trace-should-contain/45 {name: " a: b a: d ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/trace_negative_check_passes_silently b/cpp/.traces/trace_negative_check_passes_silently index 11d92333..fd380182 100644 --- a/cpp/.traces/trace_negative_check_passes_silently +++ b/cpp/.traces/trace_negative_check_passes_silently @@ -9,7 +9,7 @@ after-brace/0: trace-should-not-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: trace-should-not-contain/45 {name: " +run/0: trace-should-not-contain/46 {name: " a: b ", value: 0, type: 0, properties: [" a: b diff --git a/cpp/.traces/trace_negative_check_warns_on_any_unexpected_line b/cpp/.traces/trace_negative_check_warns_on_any_unexpected_line index 372180e4..b753bfbc 100644 --- a/cpp/.traces/trace_negative_check_warns_on_any_unexpected_line +++ b/cpp/.traces/trace_negative_check_warns_on_any_unexpected_line @@ -18,7 +18,7 @@ after-brace/0: trace-should-not-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: run/42 {name: " +run/0: run/43 {name: " trace [a], [d] ", value: 0, type: 0, properties: [" trace [a], [d] @@ -32,7 +32,7 @@ run/0: instruction run1001/0 run/0: trace/18 {name: "a", value: 0, type: 0, properties: ["a": "literal-string"]}, {name: "d", value: 0, type: 0, properties: ["d": "literal-string"]} a/0: d run/0: instruction main/1 -run/0: trace-should-not-contain/45 {name: " +run/0: trace-should-not-contain/46 {name: " a: b a: d ", value: 0, type: 0, properties: [" diff --git a/cpp/.traces/trace_negative_check_warns_on_failure b/cpp/.traces/trace_negative_check_warns_on_failure index 0a8b1ed5..66f5baed 100644 --- a/cpp/.traces/trace_negative_check_warns_on_failure +++ b/cpp/.traces/trace_negative_check_warns_on_failure @@ -16,7 +16,7 @@ after-brace/0: trace-should-not-contain ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 -run/0: run/42 {name: " +run/0: run/43 {name: " trace [a], [b] ", value: 0, type: 0, properties: [" trace [a], [b] @@ -30,7 +30,7 @@ run/0: instruction run1001/0 run/0: trace/18 {name: "a", value: 0, type: 0, properties: ["a": "literal-string"]}, {name: "b", value: 0, type: 0, properties: ["b": "literal-string"]} a/0: b run/0: instruction main/1 -run/0: trace-should-not-contain/45 {name: " +run/0: trace-should-not-contain/46 {name: " a: b ", value: 0, type: 0, properties: [" a: b diff --git a/cpp/.traces/wait_for_location b/cpp/.traces/wait_for_location index a1409536..44b627c0 100644 --- a/cpp/.traces/wait_for_location +++ b/cpp/.traces/wait_for_location @@ -25,11 +25,11 @@ run/0: {name: "1", value: 1, type: 1, properties: ["1": "integer"]} <- copy/1 {n run/0: ingredient 0 is 0 mem/0: storing 0 in location 1 run/0: instruction f1/1 -run/0: start-running/33 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} +run/0: start-running/34 {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} run/0: ingredient 0 is f2 new/0: routine allocated memory from 101000 to 201000 run/0: instruction f1/2 -run/0: wait-for-location/34 {name: "1", value: 1, type: 1, properties: ["1": "integer"]} +run/0: wait-for-location/35 {name: "1", value: 1, type: 1, properties: ["1": "integer"]} run/0: waiting for 1 to change from 0 schedule/0: f2 run/0: instruction f2/0 diff --git a/cpp/027debug.cc b/cpp/027debug.cc index 90ef9e49..d5de1072 100644 --- a/cpp/027debug.cc +++ b/cpp/027debug.cc @@ -40,3 +40,13 @@ case _STOP_TRACING: { Trace_stream->dump_layer = ""; break; } + +:(before "End Primitive Recipe Declarations") +_EXIT, +:(before "End Primitive Recipe Numbers") +Recipe_number["$exit"] = _EXIT; +:(before "End Primitive Recipe Implementations") +case _EXIT: { + exit(0); + break; +} |