about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-04-24 23:41:57 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-04-24 23:41:57 -0700
commitd61b4761a8ccbfb5e76e9407924af56eff2e0283 (patch)
treec3ae9ddc64287c6ce6b2c9cdd5c342bace153db3
parentfd41212ef655a19f5385dec38a89575a02c87d99 (diff)
downloadmu-d61b4761a8ccbfb5e76e9407924af56eff2e0283.tar.gz
1194
-rw-r--r--cpp/.traces/add1
-rw-r--r--cpp/.traces/add_literal1
-rw-r--r--cpp/.traces/and1
-rw-r--r--cpp/.traces/array_length1
-rw-r--r--cpp/.traces/brace_conversion_and_run1
-rw-r--r--cpp/.traces/buffer-append-works1
-rw-r--r--cpp/.traces/calling_recipe1
-rw-r--r--cpp/.traces/check_string_in_memory1
-rw-r--r--cpp/.traces/closure1
-rw-r--r--cpp/.traces/convert_names1
-rw-r--r--cpp/.traces/convert_names_passes_default_space1
-rw-r--r--cpp/.traces/convert_names_passes_dummy1
-rw-r--r--cpp/.traces/convert_names_passes_raw1
-rw-r--r--cpp/.traces/convert_names_transforms_container_elements1
-rw-r--r--cpp/.traces/convert_names_warns1
-rw-r--r--cpp/.traces/copy1
-rw-r--r--cpp/.traces/copy_array1
-rw-r--r--cpp/.traces/copy_array_indirect1
-rw-r--r--cpp/.traces/copy_exclusive_container1
-rw-r--r--cpp/.traces/copy_handles_nested_container_elements1
-rw-r--r--cpp/.traces/copy_indirect1
-rw-r--r--cpp/.traces/copy_literal1
-rw-r--r--cpp/.traces/copy_multiple_locations1
-rw-r--r--cpp/.traces/deref_sidesteps_default_space1
-rw-r--r--cpp/.traces/deref_sidesteps_default_space_in_get1
-rw-r--r--cpp/.traces/deref_sidesteps_default_space_in_index1
-rw-r--r--cpp/.traces/divide1
-rw-r--r--cpp/.traces/divide_literal1
-rw-r--r--cpp/.traces/divide_with_remainder1
-rw-r--r--cpp/.traces/divide_with_remainder_literal1
-rw-r--r--cpp/.traces/equal1
-rw-r--r--cpp/.traces/equal21
-rw-r--r--cpp/.traces/first_scenario_checking_trace1
-rw-r--r--cpp/.traces/first_scenario_checking_trace_negative1
-rw-r--r--cpp/.traces/first_scenario_in_mu1
-rw-r--r--cpp/.traces/get1
-rw-r--r--cpp/.traces/get_address1
-rw-r--r--cpp/.traces/get_address_indirect1
-rw-r--r--cpp/.traces/get_default_space1
-rw-r--r--cpp/.traces/get_handles_nested_container_elements1
-rw-r--r--cpp/.traces/get_indirect1
-rw-r--r--cpp/.traces/greater_or_equal1
-rw-r--r--cpp/.traces/greater_or_equal21
-rw-r--r--cpp/.traces/greater_or_equal31
-rw-r--r--cpp/.traces/greater_than1
-rw-r--r--cpp/.traces/greater_than21
-rw-r--r--cpp/.traces/include_nonderef_properties1
-rw-r--r--cpp/.traces/index1
-rw-r--r--cpp/.traces/index_address1
-rw-r--r--cpp/.traces/index_direct_offset1
-rw-r--r--cpp/.traces/index_indirect1
-rw-r--r--cpp/.traces/ingredient1
-rw-r--r--cpp/.traces/integer-to-decimal-digit-negative1
-rw-r--r--cpp/.traces/integer-to-decimal-digit-positive1
-rw-r--r--cpp/.traces/integer-to-decimal-digit-zero1
-rw-r--r--cpp/.traces/interpolate-at-end1
-rw-r--r--cpp/.traces/interpolate-at-start1
-rw-r--r--cpp/.traces/interpolate-works1
-rw-r--r--cpp/.traces/jump_backward1
-rw-r--r--cpp/.traces/jump_can_skip_instructions1
-rw-r--r--cpp/.traces/jump_if1
-rw-r--r--cpp/.traces/jump_if_fallthrough1
-rw-r--r--cpp/.traces/jump_unless1
-rw-r--r--cpp/.traces/jump_unless_fallthrough1
-rw-r--r--cpp/.traces/lesser_or_equal1
-rw-r--r--cpp/.traces/lesser_or_equal21
-rw-r--r--cpp/.traces/lesser_or_equal31
-rw-r--r--cpp/.traces/lesser_than1
-rw-r--r--cpp/.traces/lesser_than21
-rw-r--r--cpp/.traces/maybe_convert1
-rw-r--r--cpp/.traces/maybe_convert_fail1
-rw-r--r--cpp/.traces/maybe_convert_named1
-rw-r--r--cpp/.traces/multiply1
-rw-r--r--cpp/.traces/multiply_literal1
-rw-r--r--cpp/.traces/new1
-rw-r--r--cpp/.traces/new_array1
-rw-r--r--cpp/.traces/new_concurrent2
-rw-r--r--cpp/.traces/new_string1
-rw-r--r--cpp/.traces/next_ingredient1
-rw-r--r--cpp/.traces/next_ingredient_missing1
-rw-r--r--cpp/.traces/not1
-rw-r--r--cpp/.traces/or1
-rw-r--r--cpp/.traces/reply1
-rw-r--r--cpp/.traces/reply_container1
-rw-r--r--cpp/.traces/return_on_fallthrough1
-rw-r--r--cpp/.traces/rewind_ingredients1
-rw-r--r--cpp/.traces/run2
-rw-r--r--cpp/.traces/run_dummy1
-rw-r--r--cpp/.traces/run_label1
-rw-r--r--cpp/.traces/set_default_space1
-rw-r--r--cpp/.traces/store_indirect1
-rw-r--r--cpp/.traces/string-append-11
-rw-r--r--cpp/.traces/string-equal-common-lengths-but-distinct1
-rw-r--r--cpp/.traces/string-equal-distinct-lengths1
-rw-r--r--cpp/.traces/string-equal-identical1
-rw-r--r--cpp/.traces/string-equal-reflexive1
-rw-r--r--cpp/.traces/string-equal-with-empty1
-rw-r--r--cpp/.traces/subtract1
-rw-r--r--cpp/.traces/subtract_literal1
-rw-r--r--cpp/.traces/surrounding_space1
-rw-r--r--cpp/.traces/trace1
-rw-r--r--cpp/.traces/trace_in_mu1
-rw-r--r--cpp/042new.cc4
103 files changed, 107 insertions, 1 deletions
diff --git a/cpp/.traces/add b/cpp/.traces/add
index 007e9b7b..2c5b25d7 100644
--- a/cpp/.traces/add
+++ b/cpp/.traces/add
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: add ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 23
diff --git a/cpp/.traces/add_literal b/cpp/.traces/add_literal
index fc1c3f0a..514fb805 100644
--- a/cpp/.traces/add_literal
+++ b/cpp/.traces/add_literal
@@ -4,6 +4,7 @@ parse/0:   ingredient: {name: "34", value: 0, type: 0, properties: ["34": "liter
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: add ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 23
diff --git a/cpp/.traces/and b/cpp/.traces/and
index 2e5e189b..58acd4d5 100644
--- a/cpp/.traces/and
+++ b/cpp/.traces/and
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: and ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/array_length b/cpp/.traces/array_length
index 45c8cd53..1c08d765 100644
--- a/cpp/.traces/array_length
+++ b/cpp/.traces/array_length
@@ -19,6 +19,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: length ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/brace_conversion_and_run b/cpp/.traces/brace_conversion_and_run
index 4dd1a2c4..8250e7a4 100644
--- a/cpp/.traces/brace_conversion_and_run
+++ b/cpp/.traces/brace_conversion_and_run
@@ -37,6 +37,7 @@ after-brace/0: jump -5:offset
 after-brace/0: 7: {name: "", value: -5, type: , properties: ["": ]}
 after-brace/0: 7: {name: "", value: -5, type: , properties: ["": ]}
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-factorial
 run/0: instruction test-factorial/0
 run/0: ingredient 0 is 5
diff --git a/cpp/.traces/buffer-append-works b/cpp/.traces/buffer-append-works
index 99f2e90e..8f078ca0 100644
--- a/cpp/.traces/buffer-append-works
+++ b/cpp/.traces/buffer-append-works
@@ -76,6 +76,7 @@ after-brace/0: get ...
 after-brace/0: equal ...
 after-brace/0: get ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-buffer-append-works
 run/0: instruction test-buffer-append-works/0
 mem/0: array size is 30
diff --git a/cpp/.traces/calling_recipe b/cpp/.traces/calling_recipe
index 244d6806..8e00e3fd 100644
--- a/cpp/.traces/calling_recipe
+++ b/cpp/.traces/calling_recipe
@@ -7,6 +7,7 @@ after-brace/0: recipe main
 after-brace/0: f ...
 after-brace/0: recipe f
 after-brace/0: add ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/check_string_in_memory b/cpp/.traces/check_string_in_memory
index bd5a5bb9..69b0852b 100644
--- a/cpp/.traces/check_string_in_memory
+++ b/cpp/.traces/check_string_in_memory
@@ -15,6 +15,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-check_string_in_memory
 run/0: instruction test-check_string_in_memory/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/closure b/cpp/.traces/closure
index 4f0588cf..62bbbd4e 100644
--- a/cpp/.traces/closure
+++ b/cpp/.traces/closure
@@ -60,6 +60,7 @@ after-brace/0: next-ingredient ...
 after-brace/0: add ...
 after-brace/0: copy ...
 after-brace/0: reply ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 mem/0: array size is 30
diff --git a/cpp/.traces/convert_names b/cpp/.traces/convert_names
index 33f1f764..d4586867 100644
--- a/cpp/.traces/convert_names
+++ b/cpp/.traces/convert_names
@@ -4,6 +4,7 @@ parse/0:   product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]}
 name/0: assign x 1
 after-brace/0: recipe main
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/convert_names_passes_default_space b/cpp/.traces/convert_names_passes_default_space
index 243754bb..fc78640e 100644
--- a/cpp/.traces/convert_names_passes_default_space
+++ b/cpp/.traces/convert_names_passes_default_space
@@ -5,6 +5,7 @@ parse/0:   product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]}
 name/0: assign x 1
 after-brace/0: recipe main
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/convert_names_passes_dummy b/cpp/.traces/convert_names_passes_dummy
index 6b780a48..9ec0fca9 100644
--- a/cpp/.traces/convert_names_passes_dummy
+++ b/cpp/.traces/convert_names_passes_dummy
@@ -5,6 +5,7 @@ parse/0:   product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]}
 name/0: assign x 1
 after-brace/0: recipe main
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/convert_names_passes_raw b/cpp/.traces/convert_names_passes_raw
index 7f4db28a..a012d363 100644
--- a/cpp/.traces/convert_names_passes_raw
+++ b/cpp/.traces/convert_names_passes_raw
@@ -3,6 +3,7 @@ parse/0:   ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal
 parse/0:   product: {name: "x", value: 0, type: 1, properties: ["x": "integer", "raw": ]}
 after-brace/0: recipe main
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/convert_names_transforms_container_elements b/cpp/.traces/convert_names_transforms_container_elements
index 6e7f7b91..db4022f3 100644
--- a/cpp/.traces/convert_names_transforms_container_elements
+++ b/cpp/.traces/convert_names_transforms_container_elements
@@ -13,6 +13,7 @@ name/0: assign b 2
 after-brace/0: recipe main
 after-brace/0: get ...
 after-brace/0: get ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/convert_names_warns b/cpp/.traces/convert_names_warns
index 33269c70..93676ca2 100644
--- a/cpp/.traces/convert_names_warns
+++ b/cpp/.traces/convert_names_warns
@@ -6,6 +6,7 @@ warn/0: name not found: y
 name/0: assign x 1
 after-brace/0: recipe main
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is y
diff --git a/cpp/.traces/copy b/cpp/.traces/copy
index 4b1d20e7..70927741 100644
--- a/cpp/.traces/copy
+++ b/cpp/.traces/copy
@@ -7,6 +7,7 @@ parse/0:   product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]}
 after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 23
diff --git a/cpp/.traces/copy_array b/cpp/.traces/copy_array
index 2f6ab020..67d33ad7 100644
--- a/cpp/.traces/copy_array
+++ b/cpp/.traces/copy_array
@@ -19,6 +19,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/copy_array_indirect b/cpp/.traces/copy_array_indirect
index 8bc2a803..663c4068 100644
--- a/cpp/.traces/copy_array_indirect
+++ b/cpp/.traces/copy_array_indirect
@@ -23,6 +23,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/copy_exclusive_container b/cpp/.traces/copy_exclusive_container
index 9b74f45f..3b6ce08c 100644
--- a/cpp/.traces/copy_exclusive_container
+++ b/cpp/.traces/copy_exclusive_container
@@ -15,6 +15,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/copy_handles_nested_container_elements b/cpp/.traces/copy_handles_nested_container_elements
index 1136dbf1..85c31ba6 100644
--- a/cpp/.traces/copy_handles_nested_container_elements
+++ b/cpp/.traces/copy_handles_nested_container_elements
@@ -15,6 +15,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/copy_indirect b/cpp/.traces/copy_indirect
index 37cc8a85..033c5364 100644
--- a/cpp/.traces/copy_indirect
+++ b/cpp/.traces/copy_indirect
@@ -11,6 +11,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/copy_literal b/cpp/.traces/copy_literal
index da98f43c..6b553106 100644
--- a/cpp/.traces/copy_literal
+++ b/cpp/.traces/copy_literal
@@ -3,6 +3,7 @@ parse/0:   ingredient: {name: "23", value: 0, type: 0, properties: ["23": "liter
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 23
diff --git a/cpp/.traces/copy_multiple_locations b/cpp/.traces/copy_multiple_locations
index 882c274b..8e574786 100644
--- a/cpp/.traces/copy_multiple_locations
+++ b/cpp/.traces/copy_multiple_locations
@@ -11,6 +11,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/deref_sidesteps_default_space b/cpp/.traces/deref_sidesteps_default_space
index 0319ca84..dc42c84e 100644
--- a/cpp/.traces/deref_sidesteps_default_space
+++ b/cpp/.traces/deref_sidesteps_default_space
@@ -19,6 +19,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/deref_sidesteps_default_space_in_get b/cpp/.traces/deref_sidesteps_default_space_in_get
index 2bb5e940..3be4a24e 100644
--- a/cpp/.traces/deref_sidesteps_default_space_in_get
+++ b/cpp/.traces/deref_sidesteps_default_space_in_get
@@ -24,6 +24,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: get ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/deref_sidesteps_default_space_in_index b/cpp/.traces/deref_sidesteps_default_space_in_index
index cce12001..17c89cf7 100644
--- a/cpp/.traces/deref_sidesteps_default_space_in_index
+++ b/cpp/.traces/deref_sidesteps_default_space_in_index
@@ -28,6 +28,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: index ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/divide b/cpp/.traces/divide
index 8a712e42..514c94e0 100644
--- a/cpp/.traces/divide
+++ b/cpp/.traces/divide
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: divide ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 27
diff --git a/cpp/.traces/divide_literal b/cpp/.traces/divide_literal
index 964fd6ef..e42b09a6 100644
--- a/cpp/.traces/divide_literal
+++ b/cpp/.traces/divide_literal
@@ -4,6 +4,7 @@ parse/0:   ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: divide ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 8
diff --git a/cpp/.traces/divide_with_remainder b/cpp/.traces/divide_with_remainder
index e09727b7..97549ee6 100644
--- a/cpp/.traces/divide_with_remainder
+++ b/cpp/.traces/divide_with_remainder
@@ -13,6 +13,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: divide-with-remainder ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 27
diff --git a/cpp/.traces/divide_with_remainder_literal b/cpp/.traces/divide_with_remainder_literal
index 69b4451e..bd76621f 100644
--- a/cpp/.traces/divide_with_remainder_literal
+++ b/cpp/.traces/divide_with_remainder_literal
@@ -5,6 +5,7 @@ parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 parse/0:   product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]}
 after-brace/0: recipe main
 after-brace/0: divide-with-remainder ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 9
diff --git a/cpp/.traces/equal b/cpp/.traces/equal
index 440bbb42..6f561c1f 100644
--- a/cpp/.traces/equal
+++ b/cpp/.traces/equal
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/equal2 b/cpp/.traces/equal2
index f1ce2af8..2ca201bd 100644
--- a/cpp/.traces/equal2
+++ b/cpp/.traces/equal2
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/first_scenario_checking_trace b/cpp/.traces/first_scenario_checking_trace
index 85e56d11..b7922463 100644
--- a/cpp/.traces/first_scenario_checking_trace
+++ b/cpp/.traces/first_scenario_checking_trace
@@ -4,6 +4,7 @@ parse/0:   ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe test-first_scenario_checking_trace
 after-brace/0: add ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-first_scenario_checking_trace
 run/0: instruction test-first_scenario_checking_trace/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/first_scenario_checking_trace_negative b/cpp/.traces/first_scenario_checking_trace_negative
index 168a8b50..90c36f6f 100644
--- a/cpp/.traces/first_scenario_checking_trace_negative
+++ b/cpp/.traces/first_scenario_checking_trace_negative
@@ -4,6 +4,7 @@ parse/0:   ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe test-first_scenario_checking_trace_negative
 after-brace/0: add ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-first_scenario_checking_trace_negative
 run/0: instruction test-first_scenario_checking_trace_negative/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/first_scenario_in_mu b/cpp/.traces/first_scenario_in_mu
index 6f6cb1d9..1473e211 100644
--- a/cpp/.traces/first_scenario_in_mu
+++ b/cpp/.traces/first_scenario_in_mu
@@ -4,6 +4,7 @@ parse/0:   ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe test-first_scenario_in_mu
 after-brace/0: add ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-first_scenario_in_mu
 run/0: instruction test-first_scenario_in_mu/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/get b/cpp/.traces/get
index 236ce74d..fe7d3c64 100644
--- a/cpp/.traces/get
+++ b/cpp/.traces/get
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: get ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/get_address b/cpp/.traces/get_address
index 4b791ec5..4eedad6e 100644
--- a/cpp/.traces/get_address
+++ b/cpp/.traces/get_address
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: get-address ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/get_address_indirect b/cpp/.traces/get_address_indirect
index 84177a6f..32f8a46f 100644
--- a/cpp/.traces/get_address_indirect
+++ b/cpp/.traces/get_address_indirect
@@ -16,6 +16,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: get-address ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/get_default_space b/cpp/.traces/get_default_space
index 34d51fb1..3b5a9cd2 100644
--- a/cpp/.traces/get_default_space
+++ b/cpp/.traces/get_default_space
@@ -7,6 +7,7 @@ parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer",
 after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 10
diff --git a/cpp/.traces/get_handles_nested_container_elements b/cpp/.traces/get_handles_nested_container_elements
index 014083a7..6336742b 100644
--- a/cpp/.traces/get_handles_nested_container_elements
+++ b/cpp/.traces/get_handles_nested_container_elements
@@ -16,6 +16,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: get ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/get_indirect b/cpp/.traces/get_indirect
index 80acbdce..ccd0023b 100644
--- a/cpp/.traces/get_indirect
+++ b/cpp/.traces/get_indirect
@@ -16,6 +16,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: get ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/greater_or_equal b/cpp/.traces/greater_or_equal
index 08e96536..3b581053 100644
--- a/cpp/.traces/greater_or_equal
+++ b/cpp/.traces/greater_or_equal
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: greater-or-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/greater_or_equal2 b/cpp/.traces/greater_or_equal2
index 1b3da12e..8e514bb9 100644
--- a/cpp/.traces/greater_or_equal2
+++ b/cpp/.traces/greater_or_equal2
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: greater-or-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/greater_or_equal3 b/cpp/.traces/greater_or_equal3
index 4a5e4322..8a65d26b 100644
--- a/cpp/.traces/greater_or_equal3
+++ b/cpp/.traces/greater_or_equal3
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: greater-or-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/greater_than b/cpp/.traces/greater_than
index b4ce6eb1..fce3579a 100644
--- a/cpp/.traces/greater_than
+++ b/cpp/.traces/greater_than
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: greater-than ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/greater_than2 b/cpp/.traces/greater_than2
index cdb2f6d4..bcf94b01 100644
--- a/cpp/.traces/greater_than2
+++ b/cpp/.traces/greater_than2
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: greater-than ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/include_nonderef_properties b/cpp/.traces/include_nonderef_properties
index 662a8ced..97df71c8 100644
--- a/cpp/.traces/include_nonderef_properties
+++ b/cpp/.traces/include_nonderef_properties
@@ -16,6 +16,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: get ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/index b/cpp/.traces/index
index 149b5d91..94817e8a 100644
--- a/cpp/.traces/index
+++ b/cpp/.traces/index
@@ -20,6 +20,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: index ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/index_address b/cpp/.traces/index_address
index ecde8143..5d57456b 100644
--- a/cpp/.traces/index_address
+++ b/cpp/.traces/index_address
@@ -20,6 +20,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: index-address ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/index_direct_offset b/cpp/.traces/index_direct_offset
index be7307a2..40432d98 100644
--- a/cpp/.traces/index_direct_offset
+++ b/cpp/.traces/index_direct_offset
@@ -24,6 +24,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: index ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/index_indirect b/cpp/.traces/index_indirect
index 9ba78065..570e5ade 100644
--- a/cpp/.traces/index_indirect
+++ b/cpp/.traces/index_indirect
@@ -24,6 +24,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: index ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 3
diff --git a/cpp/.traces/ingredient b/cpp/.traces/ingredient
index 4214c38d..55af7c31 100644
--- a/cpp/.traces/ingredient
+++ b/cpp/.traces/ingredient
@@ -12,6 +12,7 @@ after-brace/0: f ...
 after-brace/0: recipe f
 after-brace/0: ingredient ...
 after-brace/0: next-ingredient ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/integer-to-decimal-digit-negative b/cpp/.traces/integer-to-decimal-digit-negative
index 8291eade..c7976d26 100644
--- a/cpp/.traces/integer-to-decimal-digit-negative
+++ b/cpp/.traces/integer-to-decimal-digit-negative
@@ -7,6 +7,7 @@ parse/0:   product: {name: "2", value: 0, type: 5-4, properties: ["2": "array":"
 after-brace/0: recipe test-integer-to-decimal-digit-negative
 after-brace/0: integer-to-decimal-string ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-integer-to-decimal-digit-negative
 run/0: instruction test-integer-to-decimal-digit-negative/0
 run/0: instruction integer-to-decimal-string/0
diff --git a/cpp/.traces/integer-to-decimal-digit-positive b/cpp/.traces/integer-to-decimal-digit-positive
index ae35d140..76a65c1e 100644
--- a/cpp/.traces/integer-to-decimal-digit-positive
+++ b/cpp/.traces/integer-to-decimal-digit-positive
@@ -7,6 +7,7 @@ parse/0:   product: {name: "2", value: 0, type: 5-4, properties: ["2": "array":"
 after-brace/0: recipe test-integer-to-decimal-digit-positive
 after-brace/0: integer-to-decimal-string ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-integer-to-decimal-digit-positive
 run/0: instruction test-integer-to-decimal-digit-positive/0
 run/0: instruction integer-to-decimal-string/0
diff --git a/cpp/.traces/integer-to-decimal-digit-zero b/cpp/.traces/integer-to-decimal-digit-zero
index b7645a2d..0a5c53da 100644
--- a/cpp/.traces/integer-to-decimal-digit-zero
+++ b/cpp/.traces/integer-to-decimal-digit-zero
@@ -7,6 +7,7 @@ parse/0:   product: {name: "2", value: 0, type: 5-4, properties: ["2": "array":"
 after-brace/0: recipe test-integer-to-decimal-digit-zero
 after-brace/0: integer-to-decimal-string ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-integer-to-decimal-digit-zero
 run/0: instruction test-integer-to-decimal-digit-zero/0
 run/0: instruction integer-to-decimal-string/0
diff --git a/cpp/.traces/interpolate-at-end b/cpp/.traces/interpolate-at-end
index 92eeccda..a6dcb375 100644
--- a/cpp/.traces/interpolate-at-end
+++ b/cpp/.traces/interpolate-at-end
@@ -18,6 +18,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: interpolate ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-interpolate-at-end
 run/0: instruction test-interpolate-at-end/0
 mem/0: storing 1000 in location 1
diff --git a/cpp/.traces/interpolate-at-start b/cpp/.traces/interpolate-at-start
index af045fdc..ce99463f 100644
--- a/cpp/.traces/interpolate-at-start
+++ b/cpp/.traces/interpolate-at-start
@@ -18,6 +18,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: interpolate ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-interpolate-at-start
 run/0: instruction test-interpolate-at-start/0
 mem/0: storing 1000 in location 1
diff --git a/cpp/.traces/interpolate-works b/cpp/.traces/interpolate-works
index 97edab53..a9f9b7fb 100644
--- a/cpp/.traces/interpolate-works
+++ b/cpp/.traces/interpolate-works
@@ -18,6 +18,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: interpolate ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-interpolate-works
 run/0: instruction test-interpolate-works/0
 mem/0: storing 1000 in location 1
diff --git a/cpp/.traces/jump_backward b/cpp/.traces/jump_backward
index 4753bde6..529d4f50 100644
--- a/cpp/.traces/jump_backward
+++ b/cpp/.traces/jump_backward
@@ -8,6 +8,7 @@ after-brace/0: recipe main
 after-brace/0: jump ...
 after-brace/0: jump ...
 after-brace/0: jump ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/jump_can_skip_instructions b/cpp/.traces/jump_can_skip_instructions
index 8eeb9f28..ecc70839 100644
--- a/cpp/.traces/jump_can_skip_instructions
+++ b/cpp/.traces/jump_can_skip_instructions
@@ -6,6 +6,7 @@ parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: jump ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/jump_if b/cpp/.traces/jump_if
index 1dcd490a..bcb3f09e 100644
--- a/cpp/.traces/jump_if
+++ b/cpp/.traces/jump_if
@@ -7,6 +7,7 @@ parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: jump-if ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 999
diff --git a/cpp/.traces/jump_if_fallthrough b/cpp/.traces/jump_if_fallthrough
index 58c52e3a..f638d21c 100644
--- a/cpp/.traces/jump_if_fallthrough
+++ b/cpp/.traces/jump_if_fallthrough
@@ -7,6 +7,7 @@ parse/0:   product: {name: "123", value: 0, type: 1, properties: ["123": "intege
 after-brace/0: recipe main
 after-brace/0: jump-if ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/jump_unless b/cpp/.traces/jump_unless
index bb4ab68f..0bfd970a 100644
--- a/cpp/.traces/jump_unless
+++ b/cpp/.traces/jump_unless
@@ -7,6 +7,7 @@ parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: jump-unless ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/jump_unless_fallthrough b/cpp/.traces/jump_unless_fallthrough
index 693d1b3c..2714a51b 100644
--- a/cpp/.traces/jump_unless_fallthrough
+++ b/cpp/.traces/jump_unless_fallthrough
@@ -7,6 +7,7 @@ parse/0:   product: {name: "123", value: 0, type: 1, properties: ["123": "intege
 after-brace/0: recipe main
 after-brace/0: jump-unless ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 999
diff --git a/cpp/.traces/lesser_or_equal b/cpp/.traces/lesser_or_equal
index 3672dcbe..62e3dbe4 100644
--- a/cpp/.traces/lesser_or_equal
+++ b/cpp/.traces/lesser_or_equal
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: lesser-or-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 32
diff --git a/cpp/.traces/lesser_or_equal2 b/cpp/.traces/lesser_or_equal2
index 8a9c3f7b..17f80df3 100644
--- a/cpp/.traces/lesser_or_equal2
+++ b/cpp/.traces/lesser_or_equal2
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: lesser-or-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 33
diff --git a/cpp/.traces/lesser_or_equal3 b/cpp/.traces/lesser_or_equal3
index c6667886..e9a79334 100644
--- a/cpp/.traces/lesser_or_equal3
+++ b/cpp/.traces/lesser_or_equal3
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: lesser-or-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/lesser_than b/cpp/.traces/lesser_than
index 8dca4431..470f121e 100644
--- a/cpp/.traces/lesser_than
+++ b/cpp/.traces/lesser_than
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: lesser-than ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 32
diff --git a/cpp/.traces/lesser_than2 b/cpp/.traces/lesser_than2
index a894969e..2f8fc6b3 100644
--- a/cpp/.traces/lesser_than2
+++ b/cpp/.traces/lesser_than2
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: lesser-than ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 34
diff --git a/cpp/.traces/maybe_convert b/cpp/.traces/maybe_convert
index d3713988..23458247 100644
--- a/cpp/.traces/maybe_convert
+++ b/cpp/.traces/maybe_convert
@@ -16,6 +16,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: maybe-convert ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/maybe_convert_fail b/cpp/.traces/maybe_convert_fail
index 32add5a2..8a433de3 100644
--- a/cpp/.traces/maybe_convert_fail
+++ b/cpp/.traces/maybe_convert_fail
@@ -16,6 +16,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: maybe-convert ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/maybe_convert_named b/cpp/.traces/maybe_convert_named
index 4212bee1..820ec302 100644
--- a/cpp/.traces/maybe_convert_named
+++ b/cpp/.traces/maybe_convert_named
@@ -17,6 +17,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: maybe-convert ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/multiply b/cpp/.traces/multiply
index 0fb8fcad..201445a8 100644
--- a/cpp/.traces/multiply
+++ b/cpp/.traces/multiply
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: multiply ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 4
diff --git a/cpp/.traces/multiply_literal b/cpp/.traces/multiply_literal
index cd8dab52..119f88f4 100644
--- a/cpp/.traces/multiply_literal
+++ b/cpp/.traces/multiply_literal
@@ -4,6 +4,7 @@ parse/0:   ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: multiply ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/new b/cpp/.traces/new
index 74456706..ff60abae 100644
--- a/cpp/.traces/new
+++ b/cpp/.traces/new
@@ -14,6 +14,7 @@ after-brace/0: recipe main
 after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 mem/0: new alloc: 1000
diff --git a/cpp/.traces/new_array b/cpp/.traces/new_array
index 92e3f62f..32a600fc 100644
--- a/cpp/.traces/new_array
+++ b/cpp/.traces/new_array
@@ -15,6 +15,7 @@ after-brace/0: recipe main
 after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: subtract ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 mem/0: array size is 5
diff --git a/cpp/.traces/new_concurrent b/cpp/.traces/new_concurrent
index b3622668..5e35b113 100644
--- a/cpp/.traces/new_concurrent
+++ b/cpp/.traces/new_concurrent
@@ -18,9 +18,11 @@ after-brace/0: new ...
 after-brace/0: recipe f2
 after-brace/0: new ...
 after-brace/0: equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: f1
 run/0: instruction f1/0
 run/0: ingredient 0 is f2
+new/0: routine allocated memory from 101000 to 201000
 run/0: instruction f1/1
 mem/0: new alloc: 1000
 mem/0: storing 1000 in location 1
diff --git a/cpp/.traces/new_string b/cpp/.traces/new_string
index 7cfe2807..6b6cf903 100644
--- a/cpp/.traces/new_string
+++ b/cpp/.traces/new_string
@@ -9,6 +9,7 @@ new/0: abc def -> 0
 after-brace/0: recipe main
 after-brace/0: new ...
 after-brace/0: index ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 mem/0: storing 1000 in location 1
diff --git a/cpp/.traces/next_ingredient b/cpp/.traces/next_ingredient
index bc373bc9..9efc9fdd 100644
--- a/cpp/.traces/next_ingredient
+++ b/cpp/.traces/next_ingredient
@@ -11,6 +11,7 @@ after-brace/0: f ...
 after-brace/0: recipe f
 after-brace/0: next-ingredient ...
 after-brace/0: add ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/next_ingredient_missing b/cpp/.traces/next_ingredient_missing
index f6c2c373..c8ae97d7 100644
--- a/cpp/.traces/next_ingredient_missing
+++ b/cpp/.traces/next_ingredient_missing
@@ -6,6 +6,7 @@ after-brace/0: recipe main
 after-brace/0: f ...
 after-brace/0: recipe f
 after-brace/0: next-ingredient ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/not b/cpp/.traces/not
index 102532be..bc0f45fc 100644
--- a/cpp/.traces/not
+++ b/cpp/.traces/not
@@ -7,6 +7,7 @@ parse/0:   product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]}
 after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: not ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/or b/cpp/.traces/or
index 3f1141ad..75f0ff13 100644
--- a/cpp/.traces/or
+++ b/cpp/.traces/or
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: or ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 1
diff --git a/cpp/.traces/reply b/cpp/.traces/reply
index 031ad1d9..49f62ef8 100644
--- a/cpp/.traces/reply
+++ b/cpp/.traces/reply
@@ -17,6 +17,7 @@ after-brace/0: recipe f
 after-brace/0: next-ingredient ...
 after-brace/0: add ...
 after-brace/0: reply ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/reply_container b/cpp/.traces/reply_container
index 9da05c78..677e6e02 100644
--- a/cpp/.traces/reply_container
+++ b/cpp/.traces/reply_container
@@ -14,6 +14,7 @@ after-brace/0: recipe f
 after-brace/0: next-ingredient ...
 after-brace/0: copy ...
 after-brace/0: reply ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/return_on_fallthrough b/cpp/.traces/return_on_fallthrough
index 86885f52..3a5dd1e9 100644
--- a/cpp/.traces/return_on_fallthrough
+++ b/cpp/.traces/return_on_fallthrough
@@ -22,6 +22,7 @@ after-brace/0: copy ...
 after-brace/0: recipe f
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/rewind_ingredients b/cpp/.traces/rewind_ingredients
index c3ba2764..3bca656e 100644
--- a/cpp/.traces/rewind_ingredients
+++ b/cpp/.traces/rewind_ingredients
@@ -16,6 +16,7 @@ after-brace/0: next-ingredient ...
 after-brace/0: next-ingredient ...
 after-brace/0: rewind-ingredients ...
 after-brace/0: next-ingredient ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: instruction f/0
diff --git a/cpp/.traces/run b/cpp/.traces/run
index 314de883..07e4c9c5 100644
--- a/cpp/.traces/run
+++ b/cpp/.traces/run
@@ -11,9 +11,11 @@ after-brace/0: run ...
 after-brace/0: copy ...
 after-brace/0: recipe f2
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: f1
 run/0: instruction f1/0
 run/0: ingredient 0 is f2
+new/0: routine allocated memory from 101000 to 201000
 run/0: instruction f1/1
 run/0: ingredient 0 is 3
 mem/0: storing 3 in location 1
diff --git a/cpp/.traces/run_dummy b/cpp/.traces/run_dummy
index 2d0d0ed4..49099964 100644
--- a/cpp/.traces/run_dummy
+++ b/cpp/.traces/run_dummy
@@ -3,6 +3,7 @@ parse/0:   ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal
 parse/0:   product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]}
 after-brace/0: recipe main
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 0
diff --git a/cpp/.traces/run_label b/cpp/.traces/run_label
index 2db7f731..70b6d3af 100644
--- a/cpp/.traces/run_label
+++ b/cpp/.traces/run_label
@@ -8,6 +8,7 @@ parse/0:   product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]}
 after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/1
 run/0: ingredient 0 is 23
diff --git a/cpp/.traces/set_default_space b/cpp/.traces/set_default_space
index aa54db6c..20340307 100644
--- a/cpp/.traces/set_default_space
+++ b/cpp/.traces/set_default_space
@@ -11,6 +11,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 5
diff --git a/cpp/.traces/store_indirect b/cpp/.traces/store_indirect
index f33b6b3b..a0926e80 100644
--- a/cpp/.traces/store_indirect
+++ b/cpp/.traces/store_indirect
@@ -7,6 +7,7 @@ parse/0:   product: {name: "1", value: 0, type: 2-1, properties: ["1": "address"
 after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 2
diff --git a/cpp/.traces/string-append-1 b/cpp/.traces/string-append-1
index def942ca..dbc84dcb 100644
--- a/cpp/.traces/string-append-1
+++ b/cpp/.traces/string-append-1
@@ -18,6 +18,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: string-append ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-string-append-1
 run/0: instruction test-string-append-1/0
 mem/0: storing 1000 in location 1
diff --git a/cpp/.traces/string-equal-common-lengths-but-distinct b/cpp/.traces/string-equal-common-lengths-but-distinct
index 352324c4..45605a29 100644
--- a/cpp/.traces/string-equal-common-lengths-but-distinct
+++ b/cpp/.traces/string-equal-common-lengths-but-distinct
@@ -22,6 +22,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: string-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-string-equal-common-lengths-but-distinct
 run/0: instruction test-string-equal-common-lengths-but-distinct/0
 mem/0: array size is 30
diff --git a/cpp/.traces/string-equal-distinct-lengths b/cpp/.traces/string-equal-distinct-lengths
index 8e2b6834..249f6a32 100644
--- a/cpp/.traces/string-equal-distinct-lengths
+++ b/cpp/.traces/string-equal-distinct-lengths
@@ -22,6 +22,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: string-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-string-equal-distinct-lengths
 run/0: instruction test-string-equal-distinct-lengths/0
 mem/0: array size is 30
diff --git a/cpp/.traces/string-equal-identical b/cpp/.traces/string-equal-identical
index 6e07b00a..bd621b78 100644
--- a/cpp/.traces/string-equal-identical
+++ b/cpp/.traces/string-equal-identical
@@ -22,6 +22,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: string-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-string-equal-identical
 run/0: instruction test-string-equal-identical/0
 mem/0: array size is 30
diff --git a/cpp/.traces/string-equal-reflexive b/cpp/.traces/string-equal-reflexive
index a61a0032..b0379aee 100644
--- a/cpp/.traces/string-equal-reflexive
+++ b/cpp/.traces/string-equal-reflexive
@@ -16,6 +16,7 @@ after-brace/0: recipe test-string-equal-reflexive
 after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: string-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-string-equal-reflexive
 run/0: instruction test-string-equal-reflexive/0
 mem/0: array size is 30
diff --git a/cpp/.traces/string-equal-with-empty b/cpp/.traces/string-equal-with-empty
index ab5e63e4..f7c4fb88 100644
--- a/cpp/.traces/string-equal-with-empty
+++ b/cpp/.traces/string-equal-with-empty
@@ -22,6 +22,7 @@ after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: new ...
 after-brace/0: string-equal ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-string-equal-with-empty
 run/0: instruction test-string-equal-with-empty/0
 mem/0: array size is 30
diff --git a/cpp/.traces/subtract b/cpp/.traces/subtract
index b02919f8..feb671e9 100644
--- a/cpp/.traces/subtract
+++ b/cpp/.traces/subtract
@@ -12,6 +12,7 @@ after-brace/0: recipe main
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: subtract ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 23
diff --git a/cpp/.traces/subtract_literal b/cpp/.traces/subtract_literal
index eef67a32..7e7decc0 100644
--- a/cpp/.traces/subtract_literal
+++ b/cpp/.traces/subtract_literal
@@ -4,6 +4,7 @@ parse/0:   ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal
 parse/0:   product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]}
 after-brace/0: recipe main
 after-brace/0: subtract ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 5
diff --git a/cpp/.traces/surrounding_space b/cpp/.traces/surrounding_space
index 35991e57..19cbc449 100644
--- a/cpp/.traces/surrounding_space
+++ b/cpp/.traces/surrounding_space
@@ -24,6 +24,7 @@ after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
 after-brace/0: copy ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 run/0: ingredient 0 is 5
diff --git a/cpp/.traces/trace b/cpp/.traces/trace
index 0112ed74..fa3bb91c 100644
--- a/cpp/.traces/trace
+++ b/cpp/.traces/trace
@@ -3,6 +3,7 @@ parse/0:   ingredient: {name: "foo", value: 0, type: 0, properties: ["foo": "lit
 parse/0:   ingredient: {name: "this is a trace in mu", value: 0, type: 0, properties: ["this is a trace in mu": "literal-string"]}
 after-brace/0: recipe main
 after-brace/0: trace ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: main
 run/0: instruction main/0
 foo/0: this is a trace in mu
diff --git a/cpp/.traces/trace_in_mu b/cpp/.traces/trace_in_mu
index af8557de..ff29523a 100644
--- a/cpp/.traces/trace_in_mu
+++ b/cpp/.traces/trace_in_mu
@@ -3,6 +3,7 @@ parse/0:   ingredient: {name: "foo", value: 0, type: 0, properties: ["foo": "lit
 parse/0:   ingredient: {name: "aaa", value: 0, type: 0, properties: ["aaa": "literal-string"]}
 after-brace/0: recipe test-trace_in_mu
 after-brace/0: trace ...
+new/0: routine allocated memory from 1000 to 101000
 schedule/0: test-trace_in_mu
 run/0: instruction test-trace_in_mu/0
 foo/0: aaa
diff --git a/cpp/042new.cc b/cpp/042new.cc
index 9c88f11b..c7a5cc11 100644
--- a/cpp/042new.cc
+++ b/cpp/042new.cc
@@ -17,11 +17,13 @@ size_t Initial_memory_per_routine = 100000;
 Memory_allocated_until = 1000;
 Initial_memory_per_routine = 100000;
 :(before "End routine Fields")
-size_t alloc;
+size_t alloc, alloc_max;
 :(replace{} "routine::routine(recipe_number r)")
 routine::routine(recipe_number r) :alloc(Memory_allocated_until) {
   alloc = Memory_allocated_until;
   Memory_allocated_until += Initial_memory_per_routine;
+  alloc_max = Memory_allocated_until;
+  trace("new") << "routine allocated memory from " << alloc << " to " << alloc_max;
   calls.push(call(r));
 }