c{0: 0 (((1 string-address)) <- ((new)) hello, _, _, and _!) -- nil
c{0: 1 (((2 string-address)) <- ((new)) abc) -- nil
c{0: 2 (((3 string-address)) <- ((new)) def) -- nil
c{0: 3 (((4 string-address)) <- ((new)) ghi) -- nil
c{0: 4 (((5 string-address)) <- ((interpolate)) ((1 string-address)) ((2 string-address)) ((3 string-address)) ((4 string-address))) -- nil
c{1: 0 ✓ (((1 string-address)) <- ((new)) hello, _, _, and _!)
c{1: 1 ✓ (((2 string-address)) <- ((new)) abc)
c{1: 2 ✓ (((3 string-address)) <- ((new)) def)
c{1: 3 ✓ (((4 string-address)) <- ((new)) ghi)
c{1: 4 ✓ (((5 string-address)) <- ((interpolate)) ((1 string-address)) ((2 string-address)) ((3 string-address)) ((4 string-address)))
cn0: convert-names in main
cn0: (((1 string-address)) <- ((new)) hello, _, _, and _!) nil nil
cn0: checking arg hello, _, _, and _!
cn0: checking oarg ((1 string-address))
maybe-add: ((1 string-address))
cn0: (((2 string-address)) <- ((new)) abc) nil nil
cn0: checking arg abc
cn0: checking oarg ((2 string-address))
maybe-add: ((2 string-address))
cn0: (((3 string-address)) <- ((new)) def) nil nil
cn0: checking arg def
cn0: checking oarg ((3 string-address))
maybe-add: ((3 string-address))
cn0: (((4 string-address)) <- ((new)) ghi) nil nil
cn0: checking arg ghi
cn0: checking oarg ((4 string-address))
maybe-add: ((4 string-address))
cn0: (((5 string-address)) <- ((interpolate)) ((1 string-address)) ((2 string-address)) ((3 string-address)) ((4 string-address))) nil nil
cn0: checking arg ((1 string-address))
maybe-add: ((1 string-address))
cn0: checking arg ((2 string-address))
maybe-add: ((2 string-address))
cn0: checking arg ((3 string-address))
maybe-add: ((3 string-address))
cn0: checking arg ((4 string-address))
maybe-add: ((4 string-address))
cn0: checking oarg ((5 string-address))
maybe-add: ((5 string-address))
cn1: (((1 string-address)) <- ((new)) hello, _, _, and _!)
cn1: (((2 string-address)) <- ((new)) abc)
cn1: (((3 string-address)) <- ((new)) def)
cn1: (((4 string-address)) <- ((new)) ghi)
cn1: (((5 string-address)) <- ((interpolate)) ((1 string-address)) ((2 string-address)) ((3 string-address)) ((4 string-address)))
schedule: main
run: main 0: (((1 string-address)) <- ((new)) hello, _, _, and _!)
run: main 0: 1000 => ((1 string-address))
mem: ((1 string-address)): 1 <= 1000
run: main 1: (((2 string-address)) <- ((new)) abc)
run: main 1: 1020 => ((2 string-address))
mem: ((2 string-address)): 2 <= 1020
run: main 2: (((3 string-address)) <- ((new)) def)
run: main 2: 1024 => ((3 string-address))
mem: ((3 string-address)): 3 <= 1024
run: main 3: (((4 string-address)) <- ((new)) ghi)
run: main 3: 1028 => ((4 string-address))
mem: ((4 string-address)): 4 <= 1028
run: main 4: (((5 string-address)) <- ((interpolate)) ((1 string-address)) ((2 string-address)) ((3 string-address)) ((4 string-address)))
mem: ((1 string-address)) => 1000
mem: ((2 string-address)) => 1020
mem: ((3 string-address)) => 1024
mem: ((4 string-address)) => 1028
run: interpolate/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((60 literal)))
run: interpolate/main 0: 1032 => ((default-space space-address))
run: interpolate/main 1: (((1 string-address)) <- ((next-input)))
arg: nil 0 (1000 1020 1024 1028)
run: interpolate/main 1: 1000 => ((1 string-address))
mem: ((1 string-address)): 1034 <= 1000
run: interpolate/main 2: (((2 integer)) <- ((length)) ((1 string-address) (deref)))
array-len: ((1 string-address) (deref))
mem: ((1000 integer) (raw)) => 19
run: interpolate/main 2: 19 => ((2 integer))
mem: ((2 integer)): 1035 <= 19
run: interpolate/main 3: (((3 integer)) <- ((copy)) ((2 integer)))
mem: ((2 integer)) => 19
run: interpolate/main 3: 19 => ((3 integer))
mem: ((3 integer)): 1036 <= 19
run: interpolate/main 4: (((4 string-address)) ((5 boolean)) <- ((next-input)))
arg: nil 1 (1000 1020 1024 1028)
run: interpolate/main 4: 1020 => ((4 string-address))
mem: ((4 string-address)): 1037 <= 1020
run: interpolate/main 4: t => ((5 boolean))
mem: ((5 boolean)): 1038 <= t
run: interpolate/main 5: (((jump-unless)) ((5 boolean)) ((4 offset)))
mem: ((5 boolean)) => t
run: interpolate/main 6: (((6 integer)) <- ((length)) ((4 string-address) (deref)))
array-len: ((4 string-address) (deref))
mem: ((1020 integer) (raw)) => 3
run: interpolate/main 6: 3 => ((6 integer))
mem: ((6 integer)): 1039 <= 3
run: interpolate/main 7: (((3 integer)) <- ((add)) ((3 integer)) ((6 integer)))
mem: ((3 integer)) => 19
mem: ((6 integer)) => 3
run: interpolate/main 7: 22 => ((3 integer))
mem: ((3 integer)): 1036 <= 22
run: interpolate/main 8: (((3 integer)) <- ((subtract)) ((3 integer)) ((1 literal)))
mem: ((3 integer)) => 22
run: interpolate/main 8: 21 => ((3 integer))
mem: ((3 integer)): 1036 <= 21
run: interpolate/main 9: (((jump)) ((-6 offset)))
run: interpolate/main 4: (((4 string-address)) ((5 boolean)) <- ((next-input)))
arg: nil 2 (1000 1020 1024 1028)
run: interpolate/main 4: 1024 => ((4 string-address))
mem: ((4 string-address)): 1037 <= 1024
run: interpolate/main 4: t => ((5 boolean))
mem: ((5 boolean)): 1038 <= t
run: interpolate/main 5: (((jump-unless)) ((5 boolean)) ((4 offset)))
mem: ((5 boolean)) => t
run: interpolate/main 6: (((6 integer)) <- ((length)) ((4 string-address) (deref)))
array-len: ((4 string-address) (deref))
mem: ((1024 integer) (raw)) => 3
run: interpolate/main 6: 3 => ((6 integer))
mem: ((6 integer)): 1039 <= 3
run: interpolate/main 7: (((3 integer)) <- ((add)) ((3 integer)) ((6 integer)))
mem: ((3 integer)) => 21
mem: ((6 integer)) => 3
run: interpolate/main 7: 24 => ((3 integer))
mem: ((3 integer)): 1036 <= 24
run: interpolate/main 8: (((3 integer)) <- ((subtract)) ((3 integer)) ((1 literal)))
mem: ((3 integer)) => 24
run: interpolate/main 8: 23 => ((3 integer))
mem: ((3 integer)): 1036 <= 23
run: interpolate/main 9: (((jump)) ((-6 offset)))
run: interpolate/main 4: (((4 string-address)) ((5 boolean)) <- ((next-input)))
arg: nil 3 (1000 1020 1024 1028)
run: interpolate/main 4: 1028 => ((4 string-address))
mem: ((4 string-address)): 1037 <= 1028
run: interpolate/main 4: t => ((5 boolean))
mem: ((5 boolean)): 1038 <= t
run: interpolate/main 5: (((jump-unless)) ((5 boolean)) ((4 offset)))
mem: ((5 boolean)) => t
run: interpolate/main 6: (((6 integer)) <- ((length)) ((4 string-address) (deref)))
array-len: ((4 string-address) (deref))
mem: ((1028 integer) (raw)) => 3
run: interpolate/main 6: 3 => ((6 integer))
mem: ((6 integer)): 1039 <= 3
run: interpolate/main 7: (((3 integer)) <- ((add)) ((3 integer)) ((6 integer)))
mem: ((3 integer)) => 23
mem: ((6 integer)) => 3
run: interpolate/main 7: 26 => ((3 integer))
mem: ((3 integer)): 1036 <= 26
run: interpolate/main 8: (((3 integer)) <- ((subtract)) ((3 integer)) ((1 literal)))
mem: ((3 integer)) => 26
run: interpolate/main 8: 25 => ((3 integer))
mem: ((3 integer)): 1036 <= 25
run: interpolate/main 9: (((jump)) ((-6 offset)))
run: interpolate/main 4: (((4 string-address)) ((5 boolean)) <- ((next-input)))
arg: nil 4 (1000 1020 1024 1028)
run: interpolate/main 4: nil => ((4 string-address))
mem: ((4 string-address)): 1037 <= nil
run: interpolate/main 4: nil => ((5 boolean))
mem: ((5 boolean)): 1038 <= nil
run: interpolate/main 5: (((jump-unless)) ((5 boolean)) ((4 offset)))
mem: ((5 boolean)) => nil
run: interpolate/main 10: (_ <- ((input)) ((0 literal)))
arg: (((0 literal))) 0 (1000 1020 1024 1028)
run: interpolate/main 11: (((7 string-address)) <- ((new)) ((string literal)) ((3 integer)))
mem: ((3 integer)) => 25
run: interpolate/main 11: 1093 => ((7 string-address))
mem: ((7 string-address)): 1040 <= 1093
run: interpolate/main 12: (((8 integer)) <- ((copy)) ((0 literal)))
run: interpolate/main 12: 0 => ((8 integer))
mem: ((8 integer)): 1041 <= 0
run: interpolate/main 13: (((9 integer)) <- ((copy)) ((0 literal)))
run: interpolate/main 13: 0 => ((9 integer))
mem: ((9 integer)): 1042 <= 0
run: interpolate/main 14: (((4 string-address)) ((5 boolean)) <- ((next-input)))
arg: nil 1 (1000 1020 1024 1028)
run: interpolate/main 14: 1020 => ((4 string-address))
mem: ((4 string-address)): 1037 <= 1020
run: interpolate/main 14: t => ((5 boolean))
mem: ((5 boolean)): 1038 <= t
run: interpolate/main 15: (((jump-unless)) ((5 boolean)) ((21 offset)))
mem: ((5 boolean)) => t
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 0
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 0
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1001 byte) (raw)) => h
run: interpolate/main 18: #\h => ((11 byte))
mem: ((11 byte)): 1044 <= #\h
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => h
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 0
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1094 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1094
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => h
run: interpolate/main 22: #\h => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1094 <= #\h
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 0
run: interpolate/main 23: 1 => ((9 integer))
mem: ((9 integer)): 1042 <= 1
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 0
run: interpolate/main 24: 1 => ((8 integer))
mem: ((8 integer)): 1041 <= 1
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 1
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 1
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1002 byte) (raw)) => e
run: interpolate/main 18: #\e => ((11 byte))
mem: ((11 byte)): 1044 <= #\e
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => e
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 1
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1095 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1095
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => e
run: interpolate/main 22: #\e => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1095 <= #\e
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 1
run: interpolate/main 23: 2 => ((9 integer))
mem: ((9 integer)): 1042 <= 2
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 1
run: interpolate/main 24: 2 => ((8 integer))
mem: ((8 integer)): 1041 <= 2
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) /
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include <stdlib.h>
#include "plugins/disco.h"
void
returns_empty_list_when_none(void** state)
{
disco_close();
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 0);
g_list_free(features);
disco_close();
}
void
returns_added_feature(void** state)
{
disco_close();
disco_add_feature("my_plugin", "some:feature:example");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
char* feature = features->data;
assert_string_equal(feature, "some:feature:example");
g_list_free(features);
disco_close();
}
void
resets_features_on_close(void** state)
{
disco_close();
disco_add_feature("my_plugin", "some:feature:example");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
features = disco_get_features();
assert_int_equal(g_list_length(features), 0);
g_list_free(features);
disco_close();
}
void
returns_all_added_features(void** state)
{
disco_close();
disco_add_feature("first_plugin", "first:feature");
disco_add_feature("first_plugin", "second:feature");
disco_add_feature("second_plugin", "third:feature");
disco_add_feature("third_plugin", "fourth:feature");
disco_add_feature("third_plugin", "fifth:feature");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 5);
assert_true(g_list_find_custom(features, "first:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "second:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "third:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "fourth:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "fifth:feature", (GCompareFunc)g_strcmp0));
g_list_free(features);
disco_close();
}
void
does_not_add_duplicate_feature(void** state)
{
disco_close();
disco_add_feature("my_plugin", "my:feature");
disco_add_feature("some_other_plugin", "my:feature");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
}
void
removes_plugin_features(void** state)
{
disco_close();
disco_add_feature("plugin1", "plugin1:feature1");
disco_add_feature("plugin1", "plugin1:feature2");
disco_add_feature("plugin2", "plugin2:feature1");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 3);
g_list_free(features);
disco_remove_features("plugin1");
features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
}
void
does_not_remove_feature_when_more_than_one_reference(void** state)
{
disco_close();
disco_add_feature("plugin1", "feature1");
disco_add_feature("plugin1", "feature2");
disco_add_feature("plugin2", "feature1");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 2);
g_list_free(features);
disco_remove_features("plugin1");
features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
}
te/main 22: #\space => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1105 <= #\space
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 9
run: interpolate/main 23: 10 => ((9 integer))
mem: ((9 integer)): 1042 <= 10
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 11
run: interpolate/main 24: 12 => ((8 integer))
mem: ((8 integer)): 1041 <= 12
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 10
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 10
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1011 byte) (raw)) => _
run: interpolate/main 18: #\_ => ((11 byte))
mem: ((11 byte)): 1044 <= #\_
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => _
run: interpolate/main 19: t => ((12 boolean))
mem: ((12 boolean)): 1045 <= t
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => t
run: interpolate/main 26: (((14 integer)) <- ((copy)) ((0 literal)))
run: interpolate/main 26: 0 => ((14 integer))
mem: ((14 integer)): 1047 <= 0
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 0
mem: ((6 integer)) => 3
run: interpolate/main 27: nil => ((15 boolean))
mem: ((15 boolean)): 1048 <= nil
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => nil
run: interpolate/main 29: (((11 byte)) <- ((index)) ((4 string-address) (deref)) ((14 integer)))
mem: ((14 integer)) => 0
array-len: ((1024 string) (raw))
mem: ((1024 integer) (raw)) => 3
mem: ((1025 byte) (raw)) => d
run: interpolate/main 29: #\d => ((11 byte))
mem: ((11 byte)): 1044 <= #\d
run: interpolate/main 30: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 12
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 30: 1106 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1106
run: interpolate/main 31: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => d
run: interpolate/main 31: #\d => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1106 <= #\d
run: interpolate/main 32: (((14 integer)) <- ((add)) ((14 integer)) ((1 literal)))
mem: ((14 integer)) => 0
run: interpolate/main 32: 1 => ((14 integer))
mem: ((14 integer)): 1047 <= 1
run: interpolate/main 33: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 12
run: interpolate/main 33: 13 => ((8 integer))
mem: ((8 integer)): 1041 <= 13
run: interpolate/main 34: (((jump)) ((-8 offset)))
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 1
mem: ((6 integer)) => 3
run: interpolate/main 27: nil => ((15 boolean))
mem: ((15 boolean)): 1048 <= nil
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => nil
run: interpolate/main 29: (((11 byte)) <- ((index)) ((4 string-address) (deref)) ((14 integer)))
mem: ((14 integer)) => 1
array-len: ((1024 string) (raw))
mem: ((1024 integer) (raw)) => 3
mem: ((1026 byte) (raw)) => e
run: interpolate/main 29: #\e => ((11 byte))
mem: ((11 byte)): 1044 <= #\e
run: interpolate/main 30: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 13
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 30: 1107 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1107
run: interpolate/main 31: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => e
run: interpolate/main 31: #\e => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1107 <= #\e
run: interpolate/main 32: (((14 integer)) <- ((add)) ((14 integer)) ((1 literal)))
mem: ((14 integer)) => 1
run: interpolate/main 32: 2 => ((14 integer))
mem: ((14 integer)): 1047 <= 2
run: interpolate/main 33: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 13
run: interpolate/main 33: 14 => ((8 integer))
mem: ((8 integer)): 1041 <= 14
run: interpolate/main 34: (((jump)) ((-8 offset)))
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 2
mem: ((6 integer)) => 3
run: interpolate/main 27: nil => ((15 boolean))
mem: ((15 boolean)): 1048 <= nil
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => nil
run: interpolate/main 29: (((11 byte)) <- ((index)) ((4 string-address) (deref)) ((14 integer)))
mem: ((14 integer)) => 2
array-len: ((1024 string) (raw))
mem: ((1024 integer) (raw)) => 3
mem: ((1027 byte) (raw)) => f
run: interpolate/main 29: #\f => ((11 byte))
mem: ((11 byte)): 1044 <= #\f
run: interpolate/main 30: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 14
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 30: 1108 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1108
run: interpolate/main 31: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => f
run: interpolate/main 31: #\f => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1108 <= #\f
run: interpolate/main 32: (((14 integer)) <- ((add)) ((14 integer)) ((1 literal)))
mem: ((14 integer)) => 2
run: interpolate/main 32: 3 => ((14 integer))
mem: ((14 integer)): 1047 <= 3
run: interpolate/main 33: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 14
run: interpolate/main 33: 15 => ((8 integer))
mem: ((8 integer)): 1041 <= 15
run: interpolate/main 34: (((jump)) ((-8 offset)))
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 3
mem: ((6 integer)) => 3
run: interpolate/main 27: t => ((15 boolean))
mem: ((15 boolean)): 1048 <= t
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => t
run: interpolate/main 35: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 10
run: interpolate/main 35: 11 => ((9 integer))
mem: ((9 integer)): 1042 <= 11
run: interpolate/main 36: (((jump)) ((-23 offset)))
run: interpolate/main 14: (((4 string-address)) ((5 boolean)) <- ((next-input)))
arg: nil 3 (1000 1020 1024 1028)
run: interpolate/main 14: 1028 => ((4 string-address))
mem: ((4 string-address)): 1037 <= 1028
run: interpolate/main 14: t => ((5 boolean))
mem: ((5 boolean)): 1038 <= t
run: interpolate/main 15: (((jump-unless)) ((5 boolean)) ((21 offset)))
mem: ((5 boolean)) => t
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 11
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 11
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1012 byte) (raw)) => ,
run: interpolate/main 18: #\, => ((11 byte))
mem: ((11 byte)): 1044 <= #\,
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => ,
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 15
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1109 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1109
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => ,
run: interpolate/main 22: #\, => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1109 <= #\,
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 11
run: interpolate/main 23: 12 => ((9 integer))
mem: ((9 integer)): 1042 <= 12
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 15
run: interpolate/main 24: 16 => ((8 integer))
mem: ((8 integer)): 1041 <= 16
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 12
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 12
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1013 byte) (raw)) =>
run: interpolate/main 18: #\space => ((11 byte))
mem: ((11 byte)): 1044 <= #\space
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) =>
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 16
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1110 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1110
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) =>
run: interpolate/main 22: #\space => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1110 <= #\space
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 12
run: interpolate/main 23: 13 => ((9 integer))
mem: ((9 integer)): 1042 <= 13
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 16
run: interpolate/main 24: 17 => ((8 integer))
mem: ((8 integer)): 1041 <= 17
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 13
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 13
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1014 byte) (raw)) => a
run: interpolate/main 18: #\a => ((11 byte))
mem: ((11 byte)): 1044 <= #\a
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => a
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 17
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1111 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1111
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => a
run: interpolate/main 22: #\a => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1111 <= #\a
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 13
run: interpolate/main 23: 14 => ((9 integer))
mem: ((9 integer)): 1042 <= 14
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 17
run: interpolate/main 24: 18 => ((8 integer))
mem: ((8 integer)): 1041 <= 18
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 14
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 14
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1015 byte) (raw)) => n
run: interpolate/main 18: #\n => ((11 byte))
mem: ((11 byte)): 1044 <= #\n
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => n
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 18
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1112 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1112
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => n
run: interpolate/main 22: #\n => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1112 <= #\n
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 14
run: interpolate/main 23: 15 => ((9 integer))
mem: ((9 integer)): 1042 <= 15
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 18
run: interpolate/main 24: 19 => ((8 integer))
mem: ((8 integer)): 1041 <= 19
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 15
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 15
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1016 byte) (raw)) => d
run: interpolate/main 18: #\d => ((11 byte))
mem: ((11 byte)): 1044 <= #\d
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => d
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 19
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1113 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1113
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => d
run: interpolate/main 22: #\d => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1113 <= #\d
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 15
run: interpolate/main 23: 16 => ((9 integer))
mem: ((9 integer)): 1042 <= 16
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 19
run: interpolate/main 24: 20 => ((8 integer))
mem: ((8 integer)): 1041 <= 20
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 16
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 16
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1017 byte) (raw)) =>
run: interpolate/main 18: #\space => ((11 byte))
mem: ((11 byte)): 1044 <= #\space
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) =>
run: interpolate/main 19: nil => ((12 boolean))
mem: ((12 boolean)): 1045 <= nil
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => nil
run: interpolate/main 21: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 20
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 21: 1114 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1114
run: interpolate/main 22: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) =>
run: interpolate/main 22: #\space => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1114 <= #\space
run: interpolate/main 23: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 16
run: interpolate/main 23: 17 => ((9 integer))
mem: ((9 integer)): 1042 <= 17
run: interpolate/main 24: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 20
run: interpolate/main 24: 21 => ((8 integer))
mem: ((8 integer)): 1041 <= 21
run: interpolate/main 25: (((jump)) ((-10 offset)))
run: interpolate/main 16: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 17
mem: ((2 integer)) => 19
run: interpolate/main 16: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 17: (((jump-if)) ((10 boolean)) ((19 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 18: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 17
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1018 byte) (raw)) => _
run: interpolate/main 18: #\_ => ((11 byte))
mem: ((11 byte)): 1044 <= #\_
run: interpolate/main 19: (((12 boolean)) <- ((equal)) ((11 byte)) ((_ literal)))
mem: ((11 byte)) => _
run: interpolate/main 19: t => ((12 boolean))
mem: ((12 boolean)): 1045 <= t
run: interpolate/main 20: (((jump-if)) ((12 boolean)) ((5 offset)))
mem: ((12 boolean)) => t
run: interpolate/main 26: (((14 integer)) <- ((copy)) ((0 literal)))
run: interpolate/main 26: 0 => ((14 integer))
mem: ((14 integer)): 1047 <= 0
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 0
mem: ((6 integer)) => 3
run: interpolate/main 27: nil => ((15 boolean))
mem: ((15 boolean)): 1048 <= nil
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => nil
run: interpolate/main 29: (((11 byte)) <- ((index)) ((4 string-address) (deref)) ((14 integer)))
mem: ((14 integer)) => 0
array-len: ((1028 string) (raw))
mem: ((1028 integer) (raw)) => 3
mem: ((1029 byte) (raw)) => g
run: interpolate/main 29: #\g => ((11 byte))
mem: ((11 byte)): 1044 <= #\g
run: interpolate/main 30: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 21
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 30: 1115 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1115
run: interpolate/main 31: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => g
run: interpolate/main 31: #\g => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1115 <= #\g
run: interpolate/main 32: (((14 integer)) <- ((add)) ((14 integer)) ((1 literal)))
mem: ((14 integer)) => 0
run: interpolate/main 32: 1 => ((14 integer))
mem: ((14 integer)): 1047 <= 1
run: interpolate/main 33: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 21
run: interpolate/main 33: 22 => ((8 integer))
mem: ((8 integer)): 1041 <= 22
run: interpolate/main 34: (((jump)) ((-8 offset)))
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 1
mem: ((6 integer)) => 3
run: interpolate/main 27: nil => ((15 boolean))
mem: ((15 boolean)): 1048 <= nil
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => nil
run: interpolate/main 29: (((11 byte)) <- ((index)) ((4 string-address) (deref)) ((14 integer)))
mem: ((14 integer)) => 1
array-len: ((1028 string) (raw))
mem: ((1028 integer) (raw)) => 3
mem: ((1030 byte) (raw)) => h
run: interpolate/main 29: #\h => ((11 byte))
mem: ((11 byte)): 1044 <= #\h
run: interpolate/main 30: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 22
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 30: 1116 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1116
run: interpolate/main 31: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => h
run: interpolate/main 31: #\h => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1116 <= #\h
run: interpolate/main 32: (((14 integer)) <- ((add)) ((14 integer)) ((1 literal)))
mem: ((14 integer)) => 1
run: interpolate/main 32: 2 => ((14 integer))
mem: ((14 integer)): 1047 <= 2
run: interpolate/main 33: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 22
run: interpolate/main 33: 23 => ((8 integer))
mem: ((8 integer)): 1041 <= 23
run: interpolate/main 34: (((jump)) ((-8 offset)))
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 2
mem: ((6 integer)) => 3
run: interpolate/main 27: nil => ((15 boolean))
mem: ((15 boolean)): 1048 <= nil
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => nil
run: interpolate/main 29: (((11 byte)) <- ((index)) ((4 string-address) (deref)) ((14 integer)))
mem: ((14 integer)) => 2
array-len: ((1028 string) (raw))
mem: ((1028 integer) (raw)) => 3
mem: ((1031 byte) (raw)) => i
run: interpolate/main 29: #\i => ((11 byte))
mem: ((11 byte)): 1044 <= #\i
run: interpolate/main 30: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 23
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 30: 1117 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1117
run: interpolate/main 31: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => i
run: interpolate/main 31: #\i => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1117 <= #\i
run: interpolate/main 32: (((14 integer)) <- ((add)) ((14 integer)) ((1 literal)))
mem: ((14 integer)) => 2
run: interpolate/main 32: 3 => ((14 integer))
mem: ((14 integer)): 1047 <= 3
run: interpolate/main 33: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 23
run: interpolate/main 33: 24 => ((8 integer))
mem: ((8 integer)): 1041 <= 24
run: interpolate/main 34: (((jump)) ((-8 offset)))
run: interpolate/main 27: (((15 boolean)) <- ((greater-or-equal)) ((14 integer)) ((6 integer)))
mem: ((14 integer)) => 3
mem: ((6 integer)) => 3
run: interpolate/main 27: t => ((15 boolean))
mem: ((15 boolean)): 1048 <= t
run: interpolate/main 28: (((jump-if)) ((15 boolean)) ((6 offset)))
mem: ((15 boolean)) => t
run: interpolate/main 35: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 17
run: interpolate/main 35: 18 => ((9 integer))
mem: ((9 integer)): 1042 <= 18
run: interpolate/main 36: (((jump)) ((-23 offset)))
run: interpolate/main 14: (((4 string-address)) ((5 boolean)) <- ((next-input)))
arg: nil 4 (1000 1020 1024 1028)
run: interpolate/main 14: nil => ((4 string-address))
mem: ((4 string-address)): 1037 <= nil
run: interpolate/main 14: nil => ((5 boolean))
mem: ((5 boolean)): 1038 <= nil
run: interpolate/main 15: (((jump-unless)) ((5 boolean)) ((21 offset)))
mem: ((5 boolean)) => nil
run: interpolate/main 37: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 18
mem: ((2 integer)) => 19
run: interpolate/main 37: nil => ((10 boolean))
mem: ((10 boolean)): 1043 <= nil
run: interpolate/main 38: (((jump-if)) ((10 boolean)) ((6 offset)))
mem: ((10 boolean)) => nil
run: interpolate/main 39: (((11 byte)) <- ((index)) ((1 string-address) (deref)) ((9 integer)))
mem: ((9 integer)) => 18
array-len: ((1000 string) (raw))
mem: ((1000 integer) (raw)) => 19
mem: ((1019 byte) (raw)) => !
run: interpolate/main 39: #\! => ((11 byte))
mem: ((11 byte)): 1044 <= #\!
run: interpolate/main 40: (((13 byte-address)) <- ((index-address)) ((7 string-address) (deref)) ((8 integer)))
mem: ((8 integer)) => 24
array-len: ((1093 string) (raw))
mem: ((1093 integer) (raw)) => 25
run: interpolate/main 40: 1118 => ((13 byte-address))
mem: ((13 byte-address)): 1046 <= 1118
run: interpolate/main 41: (((13 byte-address) (deref)) <- ((copy)) ((11 byte)))
mem: ((11 byte)) => !
run: interpolate/main 41: #\! => ((13 byte-address) (deref))
mem: ((13 byte-address) (deref)): 1118 <= #\!
run: interpolate/main 42: (((9 integer)) <- ((add)) ((9 integer)) ((1 literal)))
mem: ((9 integer)) => 18
run: interpolate/main 42: 19 => ((9 integer))
mem: ((9 integer)): 1042 <= 19
run: interpolate/main 43: (((8 integer)) <- ((add)) ((8 integer)) ((1 literal)))
mem: ((8 integer)) => 24
run: interpolate/main 43: 25 => ((8 integer))
mem: ((8 integer)): 1041 <= 25
run: interpolate/main 44: (((jump)) ((-8 offset)))
run: interpolate/main 37: (((10 boolean)) <- ((greater-or-equal)) ((9 integer)) ((2 integer)))
mem: ((9 integer)) => 19
mem: ((2 integer)) => 19
run: interpolate/main 37: t => ((10 boolean))
mem: ((10 boolean)): 1043 <= t
run: interpolate/main 38: (((jump-if)) ((10 boolean)) ((6 offset)))
mem: ((10 boolean)) => t
run: interpolate/main 45: (((reply)) ((7 string-address)))
mem: ((7 string-address)) => 1093
run: main 4: 1093 => ((5 string-address))
mem: ((5 string-address)): 5 <= 1093
schedule: done with routine nil